rendered paste bodyJava Howto:
Introspectable Intro = (Introspectable)
conn.getRemoteObject(
"org.freedesktop.Hal",
"/org/freedesktop/Hal{,Manager,devices,devices/whatever}",
Introspectable.class);
running against hal_0.5.8.1-3_i386.deb gives:
Hal:
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="data" direction="out" type="s"/>
</method>
</interface>
<node name="Manager"/>
<node name="devices"/>
</node>
Hal.Manager:
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="data" direction="out" type="s"/>
</method>
</interface>
<interface name="org.freedesktop.Hal.Manager">
<method name="GetAllDevices">
<arg name="devices" direction="out" type="ao"/>
</method>
<method name="DeviceExists">
<arg name="does_it_exist" direction="out" type="b"/>
<arg name="udi" direction="in" type="o"/>
</method>
<method name="FindDeviceStringMatch">
<arg name="devices" direction="out" type="ao"/>
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="FindDeviceByCapability">
<arg name="devices" direction="out" type="ao"/>
<arg name="capability" direction="in" type="s"/>
</method>
<method name="NewDevice">
<arg name="temporary_udi" direction="out" type="s"/>
</method>
<method name="Remove">
<arg name="udi" direction="in" type="s"/>
</method>
<method name="CommitToGdl">
<arg name="temporary_udi" direction="in" type="s"/>
<arg name="global_udi" direction="in" type="s"/>
</method>
</interface>
</node>
Hal.devices:
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="data" direction="out" type="s"/>
</method>
</interface>
<node name="acpi_CPU1"/>
<node name="volume_uuid_62BC62F7BC62C55F"/>
<node name="volume_uuid_45a69638_b115_43e7_a37a_9f4df5d7458e"/>
<node name="volume_part3_size_1044610560"/>
<node name="storage_serial_3JX2CD3P"/>
<node name="DVD_GCC_4480B"/>
<node name="storage_model_HL_DT_STDVD_ROM_GDR8163B"/>
<node name="platform_floppy_0_storage"/>
<node name="computer_alsa_timer"/>
<node name="computer_alsa_sequencer"/>
<node name="computer_oss_sequencer_0"/>
<node name="computer_oss_sequencer"/>
<node name="platform_pcspkr_logicaldev_input"/>
<node name="platform_pcspkr"/>
<node name="platform_vesafb_0"/>
<node name="platform_serial8250"/>
<node name="platform_i8042_i8042_Aux_Port"/>
<node name="platform_i8042_i8042_Kbd_Port_logicaldev_input"/>
<node name="platform_i8042_i8042_Kbd_Port"/>
<node name="platform_i8042"/>
<node name="platform_floppy_0"/>
<node name="pci_1106_3116"/>
<node name="pci_1002_5961"/>
<node name="pci_1002_5941"/>
<node name="pci_1106_b091"/>
<node name="net_00_02_b3_d1_05_43"/>
<node name="pci_8086_1229"/>
<node name="usb_device_0_0_0000_00_10_0_if0"/>
<node name="usb_device_5e3_1205_noserial_if0_logicaldev_input"/>
<node name="usb_device_5e3_1205_noserial_if0"/>
<node name="usb_device_5e3_1205_noserial_usbraw"/>
<node name="usb_device_5e3_1205_noserial"/>
<node name="usb_device_0_0_0000_00_10_0_usbraw"/>
<node name="usb_device_0_0_0000_00_10_0"/>
<node name="pci_1106_3038_1"/>
<node name="usb_device_0_0_0000_00_10_1_if0"/>
<node name="usb_device_67b_2303_noserial_if0_serial_usb_0"/>
<node name="usb_device_67b_2303_noserial_if0"/>
<node name="usb_device_67b_2303_noserial_usbraw"/>
<node name="usb_device_67b_2303_noserial"/>
<node name="usb_device_0_0_0000_00_10_1_usbraw"/>
<node name="usb_device_0_0_0000_00_10_1"/>
<node name="pci_1106_3038_0"/>
<node name="usb_device_0_0_0000_00_10_2_if0"/>
<node name="usb_device_0_0_0000_00_10_2_usbraw"/>
<node name="usb_device_0_0_0000_00_10_2"/>
<node name="pci_1106_3038"/>
<node name="usb_device_0_0_0000_00_10_3_if0"/>
<node name="usb_device_0_0_0000_00_10_3_usbraw"/>
<node name="usb_device_0_0_0000_00_10_3"/>
<node name="pci_1106_3104"/>
<node name="pci_1106_3177"/>
<node name="pci_1106_571_ide_0_0"/>
<node name="pci_1106_571_ide_1_0"/>
<node name="pci_1106_571_ide_1_1"/>
<node name="pci_1106_571"/>
<node name="pci_1106_3059_alsa_playback_1"/>
<node name="pci_1106_3059_alsa_capture_1"/>
<node name="pci_1106_3059_oss_pcm_1"/>
<node name="pci_1106_3059_alsa_playback_0"/>
<node name="pci_1106_3059_alsa_capture_0"/>
<node name="pci_1106_3059_oss_pcm_0_0"/>
<node name="pci_1106_3059_oss_pcm_0"/>
<node name="pci_1106_3059_alsa_control__1"/>
<node name="pci_1106_3059_oss_mixer__1"/>
<node name="pci_1106_3059"/>
<node name="net_00_0c_6e_4c_4c_19"/>
<node name="pci_1106_3065"/>
<node name="pnp_PNP0a03"/>
<node name="pnp_PNP0700"/>
<node name="pnp_PNP0501_serial_platform_0"/>
<node name="pnp_PNP0501"/>
<node name="pnp_PNP0401"/>
<node name="pnp_PNPb02f"/>
<node name="pnp_PNP0200"/>
<node name="pnp_PNP0b00"/>
<node name="pnp_PNP0800"/>
<node name="pnp_PNP0c04"/>
<node name="pnp_PNP0303"/>
<node name="computer"/>
</node>
/org/freedesktop/Hal/devices/volume_uuid_A070_C4A5:
(DBus.Introspectable, Hal.Device, Hal.Volume)
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="data" direction="out" type="s"/>
</method>
</interface>
<interface name="org.freedesktop.Hal.Device">
<method name="GetAllProperties">
<arg name="properties" direction="out" type="a{sv}"/>
</method>
<method name="SetMultipleProperties">
<arg name="properties" direction="in" type="a{sv}"/>
</method>
<method name="GetProperty">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="v"/>
</method>
<method name="GetPropertyString">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="s"/>
</method>
<method name="GetPropertyStringList">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="as"/>
</method>
<method name="GetPropertyInteger">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="i"/>
</method>
<method name="GetPropertyBoolean">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="b"/>
</method>
<method name="GetPropertyDouble">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="d"/>
</method>
<method name="SetProperty">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="v"/>
</method>
<method name="SetPropertyString">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="SetPropertyStringList">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="as"/>
</method>
<method name="SetPropertyInteger">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="i"/>
</method>
<method name="SetPropertyBoolean">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="b"/>
</method>
<method name="SetPropertyDouble">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="d"/>
</method>
<method name="RemoveProperty">
<arg name="key" direction="in" type="s"/>
</method>
<method name="GetPropertyType">
<arg name="key" direction="in" type="s"/>
<arg name="type" direction="out" type="i"/>
</method>
<method name="PropertyExists">
<arg name="key" direction="in" type="s"/>
<arg name="does_it_exist" direction="out" type="b"/>
</method>
<method name="AddCapability">
<arg name="capability" direction="in" type="s"/>
</method>
<method name="QueryCapability">
<arg name="capability" direction="in" type="s"/>
<arg name="does_it_have_capability" direction="out" type="b"/>
</method>
<method name="Lock">
<arg name="reason" direction="in" type="s"/>
<arg name="acquired_lock" direction="out" type="b"/>
</method>
<method name="Unlock">
<arg name="released_lock" direction="out" type="b"/>
</method>
<method name="StringListAppend">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="StringListPrepend">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="StringListRemove">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="EmitCondition">
<arg name="condition_name" direction="in" type="s"/>
<arg name="condition_details" direction="in" type="s"/>
<arg name="rc" direction="out" type="b"/>
</method>
<method name="Rescan">
<arg name="call_had_sideeffect" direction="out" type="b"/>
</method>
<method name="Reprobe">
<arg name="call_had_sideeffect" direction="out" type="b"/>
</method>
<method name="ClaimInterface">
<arg name="interface_name" direction="in" type="s"/>
<arg name="introspection_xml" direction="in" type="s"/>
<arg name="rc" direction="out" type="b"/>
</method>
<method name="AddonIsReady">
<arg name="rc" direction="out" type="b"/>
</method>
</interface>
<interface name="org.freedesktop.Hal.Device.Volume">
<method name="Mount">
<arg name="mount_point" direction="in" type="s"/>
<arg name="fstype" direction="in" type="s"/>
<arg name="extra_options" direction="in" type="as"/>
<arg name="return_code" direction="out" type="i"/>
</method>
<method name="Unmount">
<arg name="extra_options" direction="in" type="as"/>
<arg name="return_code" direction="out" type="i"/>
</method>
<method name="Eject">
<arg name="extra_options" direction="in" type="as"/>
<arg name="return_code" direction="out" type="i"/>
</method>
</interface>
</node>
/org/freedesktop/Hal/devices/net_00_02_b3_d1_05_43:
(DBus.Introspectable, Hal.Device)
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="data" direction="out" type="s"/>
</method>
</interface>
<interface name="org.freedesktop.Hal.Device">
<method name="GetAllProperties">
<arg name="properties" direction="out" type="a{sv}"/>
</method>
<method name="SetMultipleProperties">
<arg name="properties" direction="in" type="a{sv}"/>
</method>
<method name="GetProperty">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="v"/>
</method>
<method name="GetPropertyString">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="s"/>
</method>
<method name="GetPropertyStringList">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="as"/>
</method>
<method name="GetPropertyInteger">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="i"/>
</method>
<method name="GetPropertyBoolean">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="b"/>
</method>
<method name="GetPropertyDouble">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="out" type="d"/>
</method>
<method name="SetProperty">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="v"/>
</method>
<method name="SetPropertyString">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="SetPropertyStringList">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="as"/>
</method>
<method name="SetPropertyInteger">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="i"/>
</method>
<method name="SetPropertyBoolean">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="b"/>
</method>
<method name="SetPropertyDouble">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="d"/>
</method>
<method name="RemoveProperty">
<arg name="key" direction="in" type="s"/>
</method>
<method name="GetPropertyType">
<arg name="key" direction="in" type="s"/>
<arg name="type" direction="out" type="i"/>
</method>
<method name="PropertyExists">
<arg name="key" direction="in" type="s"/>
<arg name="does_it_exist" direction="out" type="b"/>
</method>
<method name="AddCapability">
<arg name="capability" direction="in" type="s"/>
</method>
<method name="QueryCapability">
<arg name="capability" direction="in" type="s"/>
<arg name="does_it_have_capability" direction="out" type="b"/>
</method>
<method name="Lock">
<arg name="reason" direction="in" type="s"/>
<arg name="acquired_lock" direction="out" type="b"/>
</method>
<method name="Unlock">
<arg name="released_lock" direction="out" type="b"/>
</method>
<method name="StringListAppend">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="StringListPrepend">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="StringListRemove">
<arg name="key" direction="in" type="s"/>
<arg name="value" direction="in" type="s"/>
</method>
<method name="EmitCondition">
<arg name="condition_name" direction="in" type="s"/>
<arg name="condition_details" direction="in" type="s"/>
<arg name="rc" direction="out" type="b"/>
</method>
<method name="Rescan">
<arg name="call_had_sideeffect" direction="out" type="b"/>
</method>
<method name="Reprobe">
<arg name="call_had_sideeffect" direction="out" type="b"/>
</method>
<method name="ClaimInterface">
<arg name="interface_name" direction="in" type="s"/>
<arg name="introspection_xml" direction="in" type="s"/>
<arg name="rc" direction="out" type="b"/>
</method>
<method name="AddonIsReady">
<arg name="rc" direction="out" type="b"/>
</method>
</interface>
</node>