Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.

2.0.0 Release Candidate 1

Compare
Choose a tag to compare
@mannodermaus mannodermaus released this 28 Sep 07:48
· 14 commits to 2.x since this release

(Compatible with RxJava 2)

The first Release Candidate of RxBonjour 2 is here!

Unlike previous versions, including the Beta releases of 2.0.0, this version replaces many of the fundamental concepts of the library & brings it to new usability levels. Not only is it completely re-architected using Kotlin, but for the first time, you can use RxBonjour in all kinds of Java projects, thanks to its cross-platform nature! Also, you are free to explore the Network Service Discovery implementation that you feel most comfortable with yourself. If you don't want to drag around JmDNS in your Android-based project, you don't have to anymore! The implementations are separate artifacts now.

In order to migrate to the new concepts, please check the following section, as well as the README for further details.

RxBonjour 2 introduces three artifacts which the library is composed of, namely the Core, a Platform and a Driver: You need one of each when building your RxBonjour instance. This also introduces another change compared to previous versions: You don't call RxBonjour statically anymore. Instead, you configure an instance of the RxBonjour class with the components you need, then build it. Ideally, you'd expose the configured instance via your DI container of choice, for example.

The following artifacts are available for consumption. Please check the inline comments for some info, and the README for more details:

// The core library, you always want to include this
implementation "de.mannodermaus.rxjava2:rxbonjour:2.0.0-RC1"

// Platform implementations, providing specific support as necessary.
// Hook one of the following into the RxBonjour.Builder when configuring:
// For Android applications
implementation "de.mannodermaus.rxjava2:rxbonjour-platform-android:2.0.0-RC1"
// For Desktop applications
implementation "de.mannodermaus.rxjava2:rxbonjour-platform-desktop:2.0.0-RC1"

// Driver implementations, which provide access to a Network Service Discovery stack.
// Basically, it's what drives the library under the hood. Again, hook one of the following in:
// Use JmDNS (https://github.com/jmdns/jmdns)
implementation "de.mannodermaus.rxjava2:rxbonjour-driver-jmdns:2.0.0-RC1"
// Use Android's NsdManager API (obviously only works with the AndroidPlatform)
implementation "de.mannodermaus.rxjava2:rxbonjour-driver-nsdmanager:2.0.0-RC1"

I'm really excited to hear your feedback on the new architecture. Make sure to raise issues as necessary in regards to bugs and feature requests.