diff --git a/bundles/org.openhab.core.io.transport.serial.rxtx/src/main/java/org/openhab/core/io/transport/serial/internal/RxTxPortProvider.java b/bundles/org.openhab.core.io.transport.serial.rxtx/src/main/java/org/openhab/core/io/transport/serial/internal/RxTxPortProvider.java index cab788d4cf..4fedde8853 100644 --- a/bundles/org.openhab.core.io.transport.serial.rxtx/src/main/java/org/openhab/core/io/transport/serial/internal/RxTxPortProvider.java +++ b/bundles/org.openhab.core.io.transport.serial.rxtx/src/main/java/org/openhab/core/io/transport/serial/internal/RxTxPortProvider.java @@ -38,7 +38,7 @@ import gnu.io.NoSuchPortException; * @author Wouter Born - Fix serial ports missing when ports are added to system property */ @NonNullByDefault -@Component +@Component(service = SerialPortProvider.class) public class RxTxPortProvider implements SerialPortProvider { private final Logger logger = LoggerFactory.getLogger(RxTxPortProvider.class); diff --git a/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/SerialPortManagerImpl.java b/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/SerialPortManagerImpl.java index 615cfe18f4..676c27da2e 100644 --- a/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/SerialPortManagerImpl.java +++ b/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/SerialPortManagerImpl.java @@ -20,6 +20,7 @@ import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.io.transport.serial.SerialPortIdentifier; import org.openhab.core.io.transport.serial.SerialPortManager; import org.openhab.core.io.transport.serial.SerialPortProvider; +import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; @@ -37,24 +38,15 @@ public class SerialPortManagerImpl implements SerialPortManager { private final Logger logger = LoggerFactory.getLogger(SerialPortManagerImpl.class); - private @NonNullByDefault({}) SerialPortRegistry registry; + private final SerialPortRegistry registry; - @Reference - protected void setSerialportRegistry(SerialPortRegistry registry) { - this.registry = registry; - } - - protected void unsetSerialportRegistry(SerialPortRegistry registry) { + @Activate + public SerialPortManagerImpl(final @Reference SerialPortRegistry registry) { this.registry = registry; } @Override public Stream getIdentifiers() { - if (registry == null) { - logger.warn("SerialPortRegistry is not set; no SerialPortIdentifier found"); - return Stream.empty(); - } - return registry.getPortCreators().stream().flatMap(provider -> { try { return provider.getSerialPortIdentifiers(); @@ -77,10 +69,6 @@ public class SerialPortManagerImpl implements SerialPortManager { @Override public @Nullable SerialPortIdentifier getIdentifier(String name) { - if (registry == null) { - logger.warn("SerialPortRegistry is not set; no SerialPortProvider found for: {}", name); - return null; - } final URI portUri = URI.create(name); for (final SerialPortProvider provider : registry.getPortProvidersForPortName(portUri)) { try { diff --git a/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/console/SerialCommandExtension.java b/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/console/SerialCommandExtension.java index 7c593910af..a055a2a0de 100644 --- a/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/console/SerialCommandExtension.java +++ b/bundles/org.openhab.core.io.transport.serial/src/main/java/org/openhab/core/io/transport/serial/internal/console/SerialCommandExtension.java @@ -42,8 +42,8 @@ public class SerialCommandExtension extends AbstractConsoleCommandExtension { private static final String SUBCMD_IDENTIFIER_NAME = "identifier"; private static final String SUBCMD_PORT_CREATORS = "creators"; - private SerialPortManager serialPortManager; - private SerialPortRegistry serialPortRegistry; + private final SerialPortManager serialPortManager; + private final SerialPortRegistry serialPortRegistry; @Activate public SerialCommandExtension(final @Reference SerialPortManager serialPortManager,