{"id":36606492,"url":"https://github.com/hypfvieh/dbus-java","last_synced_at":"2026-01-12T08:45:51.779Z","repository":{"id":37550016,"uuid":"80993243","full_name":"hypfvieh/dbus-java","owner":"hypfvieh","description":"Improved version of java DBus library provided by freedesktop.org (https://dbus.freedesktop.org/doc/dbus-java/)","archived":false,"fork":false,"pushed_at":"2025-12-23T12:00:58.000Z","size":8819,"stargazers_count":221,"open_issues_count":5,"forks_count":76,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-01-02T23:30:50.990Z","etag":null,"topics":["dbus","dbus-java","java"],"latest_commit_sha":null,"homepage":"https://hypfvieh.github.io/dbus-java/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hypfvieh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"liberapay":"hypfvieh"}},"created_at":"2017-02-05T13:04:45.000Z","updated_at":"2026-01-02T14:41:55.000Z","dependencies_parsed_at":"2024-07-10T20:43:55.178Z","dependency_job_id":"56b50331-b62e-41ec-8bc2-82991ed9c1f9","html_url":"https://github.com/hypfvieh/dbus-java","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/hypfvieh/dbus-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypfvieh%2Fdbus-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypfvieh%2Fdbus-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypfvieh%2Fdbus-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypfvieh%2Fdbus-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypfvieh","download_url":"https://codeload.github.com/hypfvieh/dbus-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypfvieh%2Fdbus-java/sbom","scorecard":{"id":475654,"data":{"date":"2025-08-11","repo":{"name":"github.com/hypfvieh/dbus-java","commit":"e7d8e38ca9f8d13dc88c13b7264f40bb7d0ade91"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 2/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"10 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/maven_jdk17.yml:1","Warn: no topLevel permission defined: .github/workflows/maven_jdk17_deploy.yml:1","Warn: no topLevel permission defined: .github/workflows/maven_jdk21.yml:1","Warn: no topLevel permission defined: .github/workflows/sonarcloud.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk17.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk17.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk17.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk17.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk17_deploy.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk17_deploy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk17_deploy.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk17_deploy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk21.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk21.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_jdk21.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/maven_jdk21.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sonarcloud.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/sonarcloud.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sonarcloud.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/hypfvieh/dbus-java/sonarcloud.yml/master?enable=pin","Info:   0 out of  13 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/maven_jdk17_deploy.yml:11"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: CodeQL","Info: SAST configuration detected: Sonar","Warn: 8 commits out of 11 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T15:13:30.604Z","repository_id":37550016,"created_at":"2025-08-19T15:13:30.605Z","updated_at":"2025-08-19T15:13:30.605Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dbus","dbus-java","java"],"created_at":"2026-01-12T08:45:51.635Z","updated_at":"2026-01-12T08:45:51.766Z","avatar_url":"https://github.com/hypfvieh.png","language":"Java","readme":"[![Maven Build/Test JDK 21](https://github.com/hypfvieh/dbus-java/actions/workflows/maven_jdk21.yml/badge.svg)](https://github.com/hypfvieh/dbus-java/actions/workflows/maven_jdk21.yml)\n[![Maven Build/Test JDK 25](https://github.com/hypfvieh/dbus-java/actions/workflows/maven_jdk25.yml/badge.svg)](https://github.com/hypfvieh/dbus-java/actions/workflows/maven_jdk25.yml)\n\n# dbus-java\n - Legacy 4.x: [![Maven Central](https://img.shields.io/maven-central/v/com.github.hypfvieh/dbus-java-core?versionPrefix=4\u0026color=%2300AA00)](https://search.maven.org/search?q=g:com.github.hypfvieh%20AND%20a:dbus-java-core%20AND%20v:4*)\n - Javadoc 4.x: [![Javadoc](https://img.shields.io/maven-central/v/com.github.hypfvieh/dbus-java-core?versionPrefix=4\u0026label=javadoc)](https://javadoc.io/doc/com.github.hypfvieh/dbus-java-core)\n - Current 5.x: [![Maven Central](https://img.shields.io/maven-central/v/com.github.hypfvieh/dbus-java-core?versionPrefix=5\u0026color=%2300AA00)](https://search.maven.org/search?q=g:com.github.hypfvieh%20AND%20a:dbus-java-core%20AND%20v:5*)\n - Javadoc 5.x: [![Javadoc](https://img.shields.io/maven-central/v/com.github.hypfvieh/dbus-java-core?versionPrefix=5\u0026label=javadoc)](https://javadoc.io/doc/com.github.hypfvieh/dbus-java-core)\n - Site: [Maven Site](https://hypfvieh.github.io/dbus-java/)\n\nImproved version of [Java-DBus library provided by freedesktop.org](https://dbus.freedesktop.org/doc/dbus-java/) with support for Java 21+.\n\n### Important information when updating from older dbus-java versions\n\nUpdating dbus-java to a newer major version may always introduce incompatibilities due to breaking changes in classes, methods or API.\n\nIf you plan to update to a newer version, please check the update guides below.\n\n- [Update from dbus-java 4.x or older to 5.x (or from 5.0.0 \u003e= 5.1.0)](UPGRADE_TO_5x.md)\n- [Update from dbus-java 5.x to 6.x](UPGRADE_TO_6x.md)\n\n### Which Java version for which dbus-java version\n\n|dbus-java version|Required JDK/JRE| Supported | Remarks                                    |\n|-----------------|----------------|-----------|--------------------------------------------|\n| 2.7.x           | JDK 8          | EOL | First forked version with some minor fixes  |\n| 3.x.x           | JDK 8          | EOL | General overhaul version                    |\n| 4.x.x           | JDK 11         | EOL | First version using newer JDK and features (java modules), introduced new artifact names and split between core library and transports|\n| 5.x.x           | JDK 17         | SSP | Lots of cleanups, helper methods and better testing, usage of new JDK features (sealed classes) |\n| 6.x.x           | JDK 21         | Fully supported | Current version |\n\n*EOL* -\u003e End-Of-Life, no longer supported - no bugfixes, no security updates! \u003cbr\u003e\n*SSP* -\u003e Sunset-Period, smaller bugfixes/security fixes only - support will end approx. Winter 2026\n\n### How to use file descriptors?\nIn DBus-Java version below \u003c 4.3.1 file descriptor usage was not supported out of the box and required a third party libary (see below).\nStarting with version 4.3.1 file descriptors are supported when using junixsocket-transport.\n\nWhen trying to use file descriptors in dbus-java 3.x and not providing a implementation for this feature, you may see weird NullPointerExceptions thrown in Message class.\nIn dbus-java \u003c 4.3.1 you should see error messages indicating that file descriptors are not supported.\n\nTo use file descriptors with dbus-java version 4.x before 4.3.1 you have to do the following:\n - Add dbus-java-transport-jnr-unixsocket dependency to your project\n - Remove dbus-java-transport-native-unixsocket if you have used it before\n - Add dependency [com.rm5248:dbus-java-nativefd](https://github.com/rm5248/dbus-java-nativefd) to your classpath\n \nWhen using dbus-java-nativefd, you have to use version 2.x when using dbus-java 4.x/5.x and 1.x if you use dbus-java 3.x.\nDBus-java will automatically detect dbus-java-nativefd and will then provide access to file descriptors.\n\nIf you are using version 4.3.1 or higher, you may simple switch to `dbus-java-transport-junixsocket` (instead of `dbus-java-transport-jnr-unixsocket` or `dbus-java-transport-native-unixsocket`).\nYou do this by adding `dbus-java-transport-junixsocket` to your classpath.\nRemember to remove the other unixsocket implementations because you are not allowed to have multiple implementations of the same protocol at once.\n\n#### Please note: \nWhen adding `dbus-java-transport-junixsocket` to your classpath, you will also pull-in some artifacts of junixsocket project.\nIt is also possible that junixsocket will not work on your platform (depends on which platform and architecture you are using).\nThey provide a lot of ready-to-use artifacts for different platforms and architectures, but certainly not for all possible combinations out there.\nIn case your platform is not supported, you may try `dbus-java-transport-jnr-unixsocket` with [com.rm5248:dbus-java-nativefd](https://github.com/rm5248/dbus-java-nativefd), compile\njunixsocket yourself or open a ticket at [junixsocket](https://github.com/kohlschutter/junixsocket) asking for help.\n\n### Who uses dbus-java?\nSee the list in our [Wiki](https://github.com/hypfvieh/dbus-java/wiki)\n\n### Sponsorship\n[![Logonbox](.github/lb-logo.png \"LogonBox\")](https://www.logonbox.com)  \n\nThis project receives code contributions and donations from [LogonBox](https://www.logonbox.com).     \nHowever [LogonBox](https://www.logonbox.com) is not responsible for this project and does not take influence in the development.  \nThe library will remain open source and MIT licensed and can still be used, forked or modified for free.\n\n#### Changes\n\n##### Changes in 6.0.0 (not released yet):\n   - **Minimum Java version: 21**\n   - **Removed** all methods, members and classes marked as deprecated\n   - Update JUnit to Version 6\n   - Remove `throws IOException` from `AbstractConnectionBase.close()` (Issue #287)\n   - Support usage of `Struct`s as return value (as alternative to `Tuple` with generics) (based on discussion in #285)\n   - Updated dependencies and plugins\n   - Added support to use `Struct` datatypes as return values instead of `Tuple`#\n      - Before this change, only `Tuple` based classes could be returned when multiple values were need as result of a method call\n      - this leads to very long definitions of classes in diamond operators (e.g., `GetCurrentStateTuple\u003cUInt32, List\u003cGetCurrentStateMonitorsStruct\u003e, List\u003cGetCurrentStateLogicalMonitorsStruct\u003e, Map\u003cString, Variant\u003c?\u003e\u003e\u003e`)\n      - with this change, you can also create Structs and use them as return value having something like `GetCurrentStateStruct` instead of using the long Tuple-name\n      - Further details on this in [#285](https://github.com/hypfvieh/dbus-java/issues/285)\n   - Added new commandline option `--disable-tuples` to `InterfaceCodeGenerator` to create `Struct` classes instead of `Tuple`s for multi value return (**Caution** the generated code will only work with dbus-java 6.0.0+)\n\n##### Changes in 5.2.0 (2025-12-21):\n   - removed properties from dbus-java.version which causes issues with reproducable builds ([PR#279](https://github.com/hypfvieh/dbus-java/issues/279)) \n   - Re-Implemented `DBusMatchRule`\n     - The new implementation can be found in `org.freedesktop.dbus.matchrules.DBusMatchRule`, the old `DBusMatchRule` class still exists and is now a subclass\n     of the new implementation but is deprecated.\n     - use `DBusMatchRuleBuilder` to create instances of the new `DBusMatchRule`\n     - the `AbstractConnection.addSigHandler(DBusMatchRule, SigHandler)` is now `public` and can be used to register arbitrary rules\n     - the new implementation supports additional MatchRules as defined by DBus Specification (except eavesdrop)\n     - Extended `EmbeddedDBusDaemon` to properly support MatchRules\n   - Improved `InterfaceCodeGenerator` to properly create Tuple classes and create empty signal classes as well\n   - Dependency updates\n   - Plugin updates\n   - Increased minimum required Maven version from 3.6.3 to 3.9.3\n   - Update site descriptors\n   - Addressed a few PMD findings\n   - Fixed issue when using `DBusPath(\"/\")` in `getRemoteObject` method ([#290](https://github.com/hypfvieh/dbus-java/issues/290))\n\n##### Changes in 5.1.1 (2025-03-14):\n   - Added new Helper class `VariantBuilder` to allow creating Variants which contain Maps or Collections without messing with the required DBus type arguments\n   - Fixed wrong/missing increment when resolving nested structs or deeply nested objects in `Marshalling.getDBusType` ([#265](https://github.com/hypfvieh/dbus-java/issues/265))\n   - Fixed wrong import when generating Tuple containing Struct ([#264](https://github.com/hypfvieh/dbus-java/issues/264))\n   - Added support for argument prefix for methods and constructors in `InterfaceCodeGenerator` (to e. g. allow generating code using similar code style like dbus-java with prefixing every argument with `_`)\n   - Fixed printed version information in `InterfaceCodeGenerator` was always `null`\n   - Smaller code cleanup in `InterfaceCodeGenerator` to prevent creating multiple empty lines\n   - Dependency updates\n   - Added support for `EmitsChangedSignal` ([PR#267](https://github.com/hypfvieh/dbus-java/issues/267)), thanks to [GeVa2072](https://github.com/GeVa2072)\n   - Tighten PMD rules to disallow usage of `var` keyword\n   - Updated Maven plugins\n   - Improved documentation\n   - Fixed issue with arrays, primitive arrays and `Collection` when used in signal constructors ([#268](https://github.com/hypfvieh/dbus-java/issues/268))\n   - Improvements when using library in Kotlin projects ([PR#270](https://github.com/hypfvieh/dbus-java/issues/270)), thanks to [vicr123](https://github.com/vicr123)\n   - Fixed exporting of methods which used a `Tuple` return type caused `ClassCastException` ([#271](https://github.com/hypfvieh/dbus-java/issues/271))\n   - Deprecated `ObjectPath`, use `DBusPath` instead\n   - Added `of(String...)` factory method to `DBusPath`\n   - Smaller refactorings to reduce duplicated code\n   - Added additional `getRemoteObject` methods which uses `DBusPath` as argument\n   - Smaller improvements in empty array creation and other minor Improvements ([PR#276](https://github.com/hypfvieh/dbus-java/issues/276)), thanks to [joerg1985](https://github.com/joerg1985)\n\n##### Changes in 5.1.0 (2024-08-01):\n   - Use Junit BOM thanks to [spannm](https://github.com/spannm) ([PR#248](https://github.com/hypfvieh/dbus-java/issues/248))\n   - More Java 17 syntactic sugar, thanks to [spannm](https://github.com/spannm) ([PR#249](https://github.com/hypfvieh/dbus-java/issues/249))\n   - Added support for custom ClassLoader/ModuleLayer when configuring Transport (allows usage of third party transports when e.g. using JPMS) ([#251](https://github.com/hypfvieh/dbus-java/issues/251))\n   - Improved handling of `@DBusBoundProperty` annotation ([#253](https://github.com/hypfvieh/dbus-java/issues/253)), ([PR#252](https://github.com/hypfvieh/dbus-java/issues/252))\n   - Improved InterfaceCodeGenerator to handle generated struct class names properly ([#254](https://github.com/hypfvieh/dbus-java/issues/254))\n   - Improved InterfaceCodeGenerator to add parameter/argument name to created struct class name (e.g. MyMethod(something) =\u003e MyMethodSomethingStruct)\n   - Added dbus-java-transport-junixsocket to BOM ([#255](https://github.com/hypfvieh/dbus-java/issues/255))\n   - Fixed issues in InterfaceCodeGenerator regarding missing imports or wrong annotation content ([#257](https://github.com/hypfvieh/dbus-java/issues/257))\n   - Fixed issues with `GetAll` on Properites using Annotations ([#258](https://github.com/hypfvieh/dbus-java/issues/258))\n   - Changed behavior of de-serialization on Variants containing Collections (Lists). Collections which contained a object which also has a primitive representation the collection was always converted to an array of primitives (e.g. Variant\u003cList\u003cInteger\u003e\u003e got Variant\u003cint[]\u003e on de-serialization). This is usually not expected. When defining a Variant\u003cList\u003cInteger\u003e\u003e it is expected to return that same type when de-serialized. The wrong behavior also caused issues when using `GetAll` method in `Properties` interface. [More information](https://hypfvieh.github.io/dbus-java/variant-handling.html) \n   - Deprecated `DBusMap` - all methods previously used or returned `DBusMap` will now return a `LinkedHashMap`\n   - Fixed `hashCode()` and `equals()` method in `DBusPath` (`hashCode()` was completely wrong and violating the `hashCode()` contract when e.g. used as key in maps)\n   - Added possibility to use `WeakHashMap` for imported objects (configurable by `DBusConnectionBuilder`), default behavior of using a `ConcurrentHashMap` is not changed (yet) ([#261](https://github.com/hypfvieh/dbus-java/issues/261))\n \n##### Changes in 5.0.0 (2024-01-25):\n   - **Updated minimum required Java version to 17**\n   - Removed all classes and methods marked as deprecated in 4.x\n   - Updated dependencies and maven plugins\n   - Improved handling of listening connections to allow proper bootstrapping the connection before actually starting accepting new connections (thanks to [brett-smith](https://github.com/brett-smith) ([#213](https://github.com/hypfvieh/dbus-java/issues/213)))\n   - Updated export-object documentation ([#236](https://github.com/hypfvieh/dbus-java/issues/236))\n   - Fixed issues with autoConnect option, added method to register to bus by 'Hello' message manually, thanks to [brett-smith](https://github.com/brett-smith) ([#238](https://github.com/hypfvieh/dbus-java/issues/238))\n   - Added feature which allows to annotate setter or getter methods in exported objects to use the DBus Properties interface behind the scenes, thanks to [brett-smith](https://github.com/brett-smith) ([PR#235](https://github.com/hypfvieh/dbus-java/issues/235))\n   - `ExportedObject.isExcluded(Method)` now returns true for bridge, default and synthetic methods, reported by [brett-smith](https://github.com/brett-smith) ([#240](https://github.com/hypfvieh/dbus-java/issues/240))\n   - DBusViewer: Remove DOCTYPE definition in introspection data using a regex which handles line breaks properly\n   - Applied changes found by Sonarcloud static code analysis\n   - Fixed issue with shared connections did not work when underlying transport was disconnected due to end-point (daemon) was stopped/restarted ([#244](https://github.com/hypfvieh/dbus-java/issues/244))\n   - Fixed class cast exception in LoggingHelper ([#247](https://github.com/hypfvieh/dbus-java/issues/247)), reported by [AsamK](https://github.com/AsamK)\n\n##### Older Changes: [See Wiki ChangeLog 4x](https://github.com/hypfvieh/dbus-java/wiki/Changelog-4.x)\n##### Older Changes: [See Wiki ChangeLog 3x](https://github.com/hypfvieh/dbus-java/wiki/Changelog-3.x)\n","funding_links":["https://liberapay.com/hypfvieh"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypfvieh%2Fdbus-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypfvieh%2Fdbus-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypfvieh%2Fdbus-java/lists"}