diff --git a/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java b/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java index f87b341f0..b0d85029f 100644 --- a/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java +++ b/org.jdrupes.vmoperator.vmviewer/src/org/jdrupes/vmoperator/vmviewer/VmViewer.java @@ -123,8 +123,8 @@ public class VmViewer extends FreeMarkerConlet { private static ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); private Class preferredIpVersion = Inet4Address.class; - private Set syncUsers = new HashSet<>(); - private final Set syncRoles = new HashSet<>(); + private Set syncUsers = Collections.emptySet(); + private Set syncRoles = Collections.emptySet(); private boolean deleteConnectionFile = true; /** @@ -173,12 +173,19 @@ public void onConfigurationUpdate(ConfigurationUpdate event) { .filter(v -> v instanceof String).map(v -> (String) v) .map(Boolean::parseBoolean).orElse(true); - // Sync preview for users or roles + // Users or roles for which previews should be synchronized syncUsers = ((List>) c.getOrDefault( "syncPreviewsFor", Collections.emptyList())).stream() - .map(m -> Optional.ofNullable(m.get("user")) - .orElse(m.get("role"))) + .map(m -> m.get("user")) .filter(s -> s != null).collect(Collectors.toSet()); + logger.finest(() -> "Syncing previews for users: " + + syncUsers.toString()); + syncRoles = ((List>) c.getOrDefault( + "syncPreviewsFor", Collections.emptyList())).stream() + .map(m -> m.get("role")) + .filter(s -> s != null).collect(Collectors.toSet()); + logger.finest(() -> "Syncing previews for roles: " + + syncRoles.toString()); } catch (ClassCastException e) { logger.config("Malformed configuration: " + e.getMessage()); }