Class EmbeddedDBusDaemon

java.lang.Object
org.freedesktop.dbus.bin.EmbeddedDBusDaemon
All Implemented Interfaces:
Closeable, AutoCloseable

public class EmbeddedDBusDaemon extends Object implements Closeable
Simple DBusDaemon implementation to use if no DBusDaemon is running on the OS level.
  • Field Details

  • Constructor Details

  • Method Details

    • close

      public void close() throws IOException
      Shutdown the running DBusDaemon instance.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • startInForeground

      public void startInForeground()
      Run the DBusDaemon in foreground.

      This is a blocking operation.

    • startInBackground

      public void startInBackground()
      Start the DBusDaemon in background and returns immediately.

      This method may return before the background thread is ready. To ensure the the background thread is running on return use startInBackgroundAndWait(long).

    • startInBackgroundAndWait

      public void startInBackgroundAndWait(long _maxWaitMillis)
      Starts the DBusDaemon in background.

      Will wait up to the given period of milliseconds for the background thread to get ready. If given wait time exceeded, a RuntimeException is thrown.

      Parameters:
      _maxWaitMillis - maximum wait time in milliseconds
    • isRunning

      public boolean isRunning()
      Whether the DBusDaemon is still running.
      Returns:
      true if running, false otherwise
    • getSaslAuthMode

      public TransportBuilder.SaslAuthMode getSaslAuthMode()
      The currently configured TransportBuilder.SaslAuthMode. When null is returned, the TransportBuilder.SaslAuthMode of the transport provider is used.
      Returns:
      TransportBuilder.SaslAuthMode or null
    • setSaslAuthMode

      public void setSaslAuthMode(TransportBuilder.SaslAuthMode _saslAuthMode)
      Use this to override the default authentication mode which would be used by the transport based on the BusAddress.
      Parameters:
      _saslAuthMode - auth mode, null to use default
    • setUnixSocketOwner

      public void setUnixSocketOwner(String _owner)
      The file owner for the created unix socket.
      Ignored if TCP is used.

      Will only work if currently running JVM process user has suitable permissions to change the owner.
      Parameters:
      _owner - owner to set
    • setUnixSocketGroup

      public void setUnixSocketGroup(String _group)
      The file group for the created unix socket.
      Ignored if TCP is used.

      Will only work if currently running JVM process user has suitable permissions to change the group.
      Parameters:
      _group - group to set
    • setUnixSocketPermissions

      public void setUnixSocketPermissions(PosixFilePermission... _permissions)
      The file permissions for the created unix socket.
      Ignored if TCP is used or if the OS is Windows.

      Will only work if currently running JVM process user has suitable permissions to change the permissions.
      Parameters:
      _permissions - permissions to set
    • setDaemonAndStart

      private void setDaemonAndStart(AbstractTransport _transport)
    • startListening

      private void startListening() throws IOException, DBusException
      Start listening for incoming connections.

      Will throw IllegalArgumentException if a unsupported transport is used.

      Throws:
      IOException - when connection fails
      DBusException - when the provided bus address is wrong