Package org.freedesktop.dbus.bin
Class EmbeddedDBusDaemon
java.lang.Object
org.freedesktop.dbus.bin.EmbeddedDBusDaemon
- All Implemented Interfaces:
Closeable,AutoCloseable
Simple DBusDaemon implementation to use if no DBusDaemon is running on the OS level.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BusAddressprivate final AtomicBooleanprivate final AtomicBooleanprivate DBusDaemonprivate static final org.slf4j.Loggerprivate TransportBuilder.SaslAuthModeprivate Stringprivate Stringprivate PosixFilePermission[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Shutdown the running DBusDaemon instance.The currently configuredTransportBuilder.SaslAuthMode.booleanWhether the DBusDaemon is still running.private voidsetDaemonAndStart(AbstractTransport _transport) voidsetSaslAuthMode(TransportBuilder.SaslAuthMode _saslAuthMode) Use this to override the default authentication mode which would be used by the transport based on theBusAddress.voidsetUnixSocketGroup(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.voidsetUnixSocketOwner(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.voidsetUnixSocketPermissions(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.voidStart the DBusDaemon in background and returns immediately.voidstartInBackgroundAndWait(long _maxWaitMillis) Starts the DBusDaemon in background.voidRun the DBusDaemon in foreground.private voidStart listening for incoming connections.
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
address
-
daemon
-
closed
-
connectionReady
-
saslAuthMode
-
unixSocketFileOwner
-
unixSocketFileGroup
-
unixSocketFilePermissions
-
-
Constructor Details
-
EmbeddedDBusDaemon
-
EmbeddedDBusDaemon
- Throws:
DBusException
-
-
Method Details
-
close
Shutdown the running DBusDaemon instance.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- 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
RuntimeExceptionis 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
The currently configuredTransportBuilder.SaslAuthMode. When null is returned, theTransportBuilder.SaslAuthModeof the transport provider is used.- Returns:
TransportBuilder.SaslAuthModeor null
-
setSaslAuthMode
Use this to override the default authentication mode which would be used by the transport based on theBusAddress.- Parameters:
_saslAuthMode- auth mode, null to use default
-
setUnixSocketOwner
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
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
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
-
startListening
Start listening for incoming connections.Will throw
IllegalArgumentExceptionif a unsupported transport is used.- Throws:
IOException- when connection failsDBusException- when the provided bus address is wrong
-