mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
Add logging to the StartLevelService (#4577)
Signed-off-by: Jörg Sautter <joerg.sautter@gmx.net>
This commit is contained in:
+11
-6
@@ -13,12 +13,14 @@
|
||||
package org.openhab.core.service;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.SequencedMap;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.TreeMap;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
@@ -98,7 +100,7 @@ public class StartLevelService {
|
||||
|
||||
private int openHABStartLevel = 0;
|
||||
|
||||
private Map<Integer, Set<ReadyMarker>> startlevels = Map.of();
|
||||
private SequencedMap<Integer, Set<ReadyMarker>> startlevels = Collections.emptySortedMap();
|
||||
|
||||
@Activate
|
||||
public StartLevelService(BundleContext bundleContext, @Reference ReadyService readyService,
|
||||
@@ -116,9 +118,11 @@ public class StartLevelService {
|
||||
handleOSGiStartlevel();
|
||||
|
||||
if (openHABStartLevel >= 10) {
|
||||
for (Integer level : new TreeSet<>(startlevels.keySet())) {
|
||||
for (Entry<Integer, Set<ReadyMarker>> entry : startlevels.entrySet()) {
|
||||
Integer level = entry.getKey();
|
||||
if (openHABStartLevel < level) {
|
||||
boolean reached = isStartLevelReached(startlevels.get(level));
|
||||
Set<ReadyMarker> markerSet = entry.getValue();
|
||||
boolean reached = isStartLevelReached(level, markerSet);
|
||||
if (reached) {
|
||||
setStartLevel(level);
|
||||
} else {
|
||||
@@ -142,12 +146,13 @@ public class StartLevelService {
|
||||
return openHABStartLevel;
|
||||
}
|
||||
|
||||
private boolean isStartLevelReached(@Nullable Set<ReadyMarker> markerSet) {
|
||||
private boolean isStartLevelReached(Integer level, @Nullable Set<ReadyMarker> markerSet) {
|
||||
if (markerSet == null) {
|
||||
return true;
|
||||
}
|
||||
for (ReadyMarker m : markerSet) {
|
||||
if (!markers.contains(m)) {
|
||||
logger.debug("Missing marker {} for start level {}", m, level);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -173,7 +178,7 @@ public class StartLevelService {
|
||||
trackers.clear();
|
||||
|
||||
// set up trackers and markers
|
||||
startlevels = parseConfig(configuration);
|
||||
startlevels = Collections.unmodifiableSequencedMap(new TreeMap<>(parseConfig(configuration)));
|
||||
startlevels.keySet()
|
||||
.forEach(sl -> slmarker.put(sl, new ReadyMarker(STARTLEVEL_MARKER_TYPE, Integer.toString(sl))));
|
||||
slmarker.put(STARTLEVEL_COMPLETE,
|
||||
|
||||
Reference in New Issue
Block a user