From bb30eab3b9b71b6280692d717473901ecd8c10fd Mon Sep 17 00:00:00 2001 From: Andrew Fiddian-Green Date: Sat, 9 Dec 2023 11:19:51 +0000 Subject: [PATCH] [addon] fix #2204 (#3905) Signed-off-by: Andrew Fiddian-Green --- .../src/main/java/org/openhab/core/addon/AddonInfo.java | 3 +++ .../java/org/openhab/core/addon/AddonInfoRegistry.java | 9 ++++++++- .../addon/internal/xml/AddonInfoAddonsXmlProvider.java | 4 +++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfo.java b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfo.java index 8e45c47c918..0e015645d9c 100644 --- a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfo.java +++ b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfo.java @@ -32,6 +32,9 @@ */ @NonNullByDefault public class AddonInfo implements Identifiable { + + public static final String NA = "n/a"; + private static final Set SUPPORTED_ADDON_TYPES = Set.of("automation", "binding", "misc", "persistence", "transformation", "ui", "voice"); diff --git a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfoRegistry.java b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfoRegistry.java index 338a3cbfad6..897547b9bb1 100644 --- a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfoRegistry.java +++ b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/AddonInfoRegistry.java @@ -97,8 +97,15 @@ public void removeAddonInfoProvider(AddonInfoProvider addonInfoProvider) { return a; } AddonInfo.Builder builder = AddonInfo.builder(a); - if (a.getDescription().isEmpty()) { + if (AddonInfo.NA.equals(a.getName())) { + builder.withName(b.getName()); + } else if (AddonInfo.NA.equals(b.getName())) { + builder.withName(a.getName()); + } + if (AddonInfo.NA.equals(a.getDescription())) { builder.withDescription(b.getDescription()); + } else if (AddonInfo.NA.equals(b.getDescription())) { + builder.withDescription(a.getDescription()); } if (a.getConnection() == null && b.getConnection() != null) { builder.withConnection(b.getConnection()); diff --git a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/internal/xml/AddonInfoAddonsXmlProvider.java b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/internal/xml/AddonInfoAddonsXmlProvider.java index 0bb6c6cb851..e9aa594bb70 100644 --- a/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/internal/xml/AddonInfoAddonsXmlProvider.java +++ b/bundles/org.openhab.core.addon/src/main/java/org/openhab/core/addon/internal/xml/AddonInfoAddonsXmlProvider.java @@ -94,7 +94,9 @@ private void initialize() { try { String xml = Files.readString(f.toPath()); if (xml != null && !xml.isBlank()) { - addonInfos.addAll(reader.readFromXML(xml).getAddons().stream().collect(Collectors.toSet())); + addonInfos.addAll(reader.readFromXML(xml).getAddons().stream() + .map(a -> AddonInfo.builder(a).withName(AddonInfo.NA).withDescription(AddonInfo.NA).build()) + .collect(Collectors.toSet())); } else { logger.warn("File '{}' contents are null or empty", f.getName()); }