mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
[mDNS] Only consider fully qualified discovery results (#5348)
* [mDNS] only consider fully qualified results Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
This commit is contained in:
+7
-1
@@ -190,11 +190,16 @@ public class MDNSDiscoveryService extends AbstractDiscoveryService implements Se
|
||||
|
||||
@Override
|
||||
public void serviceAdded(@NonNullByDefault({}) ServiceEvent serviceEvent) {
|
||||
considerService(serviceEvent);
|
||||
/**
|
||||
* Do nothing when a service is added, as we will get a <code>serviceResolved</code> event afterwards,
|
||||
* which contains the fully resolved ServiceInfo. If we would already create a DiscoveryResult here,
|
||||
* we would not have the necessary full information.
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serviceRemoved(@NonNullByDefault({}) ServiceEvent serviceEvent) {
|
||||
// note: {@link ServiceEvent} JavaDoc says getInfo() result can be null; but seems never to be so here.
|
||||
for (MDNSDiscoveryParticipant participant : participants) {
|
||||
if (participant.getServiceType().equals(serviceEvent.getType())) {
|
||||
removeDiscoveryResult(participant, serviceEvent.getInfo());
|
||||
@@ -204,6 +209,7 @@ public class MDNSDiscoveryService extends AbstractDiscoveryService implements Se
|
||||
|
||||
@Override
|
||||
public void serviceResolved(@NonNullByDefault({}) ServiceEvent serviceEvent) {
|
||||
// note: {@link ServiceEvent} JavaDoc says getInfo() result can be null; but seems never to be so here.
|
||||
considerService(serviceEvent);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -81,11 +81,11 @@ public class MDNSDiscoveryServiceOSGiTest extends JavaOSGiTest {
|
||||
mdnsDiscoveryService.addDiscoveryListener(mockDiscoveryListener);
|
||||
|
||||
mdnsDiscoveryService.serviceAdded(mockServiceEvent);
|
||||
verify(mockDiscoveryListener, timeout(2000).times(1)).thingDiscovered(mdnsDiscoveryService, discoveryResult);
|
||||
verify(mockDiscoveryListener, timeout(2000).times(0)).thingDiscovered(mdnsDiscoveryService, discoveryResult);
|
||||
verifyNoMoreInteractions(mockDiscoveryListener);
|
||||
|
||||
mdnsDiscoveryService.serviceResolved(mockServiceEvent);
|
||||
verify(mockDiscoveryListener, timeout(2000).times(2)).thingDiscovered(mdnsDiscoveryService, discoveryResult);
|
||||
verify(mockDiscoveryListener, timeout(2000).times(1)).thingDiscovered(mdnsDiscoveryService, discoveryResult);
|
||||
verifyNoMoreInteractions(mockDiscoveryListener);
|
||||
|
||||
mdnsDiscoveryService.serviceRemoved(mockServiceEvent);
|
||||
|
||||
Reference in New Issue
Block a user