diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java index 8461a3f95..1c8621133 100644 --- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java +++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.ambientweather.internal.config.BridgeConfig; @@ -128,7 +127,7 @@ public class AmbientWeatherBridgeHandler extends BaseBridgeHandler { */ private boolean hasApplicationKey() { String configApplicationKey = getConfigAs(BridgeConfig.class).applicationKey; - if (StringUtils.isEmpty(configApplicationKey)) { + if (configApplicationKey == null || configApplicationKey.isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Missing application key"); return false; } @@ -141,7 +140,7 @@ public class AmbientWeatherBridgeHandler extends BaseBridgeHandler { */ private boolean hasApiKey() { String configApiKey = getConfigAs(BridgeConfig.class).apiKey; - if (StringUtils.isEmpty(configApiKey)) { + if (configApiKey == null || configApiKey.isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Missing API key"); return false; } diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java index 27ceb2be2..39d54463b 100644 --- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java +++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java @@ -18,7 +18,6 @@ import java.util.Arrays; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.lang.StringUtils; import org.json.JSONObject; import org.openhab.binding.ambientweather.internal.model.DeviceJson; import org.openhab.binding.ambientweather.internal.model.EventDataGenericJson; @@ -318,8 +317,9 @@ public class AmbientWeatherEventListener { logger.debug("Listener: Data: {}", jsonData); try { EventDataGenericJson data = gson.fromJson(jsonData, EventDataGenericJson.class); - if (StringUtils.isNotEmpty(data.macAddress)) { - sendWeatherDataToHandler(data.macAddress, jsonData); + String macAddress = data == null ? null : data.macAddress; + if (macAddress != null && !macAddress.isEmpty()) { + sendWeatherDataToHandler(macAddress, jsonData); } } catch (JsonSyntaxException e) { logger.info("Listener: Exception parsing subscribed event: {}", e.getMessage()); diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java index ad27bdb7f..2e06df173 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java @@ -34,7 +34,7 @@ import java.util.concurrent.locks.ReentrantLock; import javax.measure.quantity.Angle; -import org.apache.commons.lang.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateFormatUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.astro.internal.action.AstroActions; diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java index 1ace958cb..b4a5b8ee8 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java @@ -16,7 +16,7 @@ import static java.util.Arrays.asList; import static java.util.Calendar.SECOND; import static java.util.Collections.singletonList; import static java.util.stream.Collectors.toList; -import static org.apache.commons.lang.time.DateUtils.truncatedEquals; +import static org.apache.commons.lang3.time.DateUtils.truncatedEquals; import static org.openhab.binding.astro.internal.AstroBindingConstants.*; import static org.openhab.binding.astro.internal.util.DateTimeUtils.*; diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java index 140e8c154..6e18febb2 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java @@ -16,7 +16,7 @@ import java.util.Calendar; import java.util.Date; import java.util.regex.Pattern; -import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.lang3.time.DateUtils; import org.openhab.binding.astro.internal.config.AstroChannelConfig; import org.openhab.binding.astro.internal.model.Range; import org.slf4j.Logger; diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java index 30e37717f..b80a02c66 100644 --- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java +++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java @@ -25,7 +25,6 @@ import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; -import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.Request; @@ -288,17 +287,17 @@ public class AutelisHandler extends BaseThingHandler { String username = configuration.user; String password = configuration.password; - if (StringUtils.isBlank(username)) { + if (username == null || username.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "username must not be empty"); return; } - if (StringUtils.isBlank(password)) { + if (password == null || password.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "password must not be empty"); return; } - if (StringUtils.isBlank(host)) { + if (host == null || host.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "hostname must not be empty"); return; } @@ -443,7 +442,7 @@ public class AutelisHandler extends BaseThingHandler { } } - if (StringUtils.isEmpty((value))) { + if (value == null || value.isEmpty()) { continue; } diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java index 647572c28..74b1dc7a7 100644 --- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java +++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.bigassfan.internal; -import org.apache.commons.lang.StringUtils; - /** * The {@link BigAssFanConfig} is responsible for storing the BigAssFan thing configuration. * @@ -60,13 +58,13 @@ public class BigAssFanConfig { } public boolean isValid() { - if (StringUtils.isBlank(label)) { + if (label == null || label.isBlank()) { return false; } - if (StringUtils.isBlank(ipAddress)) { + if (ipAddress == null || ipAddress.isBlank()) { return false; } - if (StringUtils.isBlank(macAddress)) { + if (macAddress == null || macAddress.isBlank()) { return false; } return true; diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java index 4c2bf94b7..eacc428f2 100644 --- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java +++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java @@ -40,7 +40,6 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.bigassfan.internal.BigAssFanConfig; import org.openhab.binding.bigassfan.internal.utils.BigAssFanConverter; import org.openhab.core.common.ThreadPoolManager; @@ -668,7 +667,7 @@ public class BigAssFanHandler extends BaseThingHandler { } private void processMessage(String incomingMessage) { - if (StringUtils.isEmpty(incomingMessage)) { + if (incomingMessage == null || incomingMessage.isEmpty()) { return; } @@ -742,11 +741,11 @@ public class BigAssFanHandler extends BaseThingHandler { private boolean isMe(String idFromDevice) { // Check match on MAC address - if (StringUtils.equalsIgnoreCase(idFromDevice, macAddress)) { + if (macAddress.equalsIgnoreCase(idFromDevice)) { return true; } // Didn't match MAC address, check match for label - if (StringUtils.equalsIgnoreCase(idFromDevice, label)) { + if (label.equalsIgnoreCase(idFromDevice)) { return true; } return false; diff --git a/bundles/org.openhab.binding.bluetooth.am43/src/main/java/org/openhab/binding/bluetooth/am43/internal/command/AM43Command.java b/bundles/org.openhab.binding.bluetooth.am43/src/main/java/org/openhab/binding/bluetooth/am43/internal/command/AM43Command.java index 92ce6cc0e..1204e11b6 100644 --- a/bundles/org.openhab.binding.bluetooth.am43/src/main/java/org/openhab/binding/bluetooth/am43/internal/command/AM43Command.java +++ b/bundles/org.openhab.binding.bluetooth.am43/src/main/java/org/openhab/binding/bluetooth/am43/internal/command/AM43Command.java @@ -18,7 +18,7 @@ import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java index deb1cce32..c1602e52d 100644 --- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java +++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java @@ -19,7 +19,6 @@ import java.util.concurrent.locks.ReentrantLock; import javax.measure.quantity.Power; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.bluetooth.BluetoothDevice.ConnectionState; @@ -193,7 +192,7 @@ public class BeaconBluetoothHandler extends BaseThingHandler implements Bluetoot if (device != null) { BluetoothAdapter adapter = device.getAdapter(); String location = adapter.getLocation(); - if (location != null || StringUtils.isBlank(location)) { + if (location != null && !location.isBlank()) { updateState(BluetoothBindingConstants.CHANNEL_TYPE_ADAPTER_LOCATION, new StringType(location)); } else { updateState(BluetoothBindingConstants.CHANNEL_TYPE_ADAPTER_LOCATION, UnDefType.NULL); diff --git a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/TestUtils.java b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/TestUtils.java index fc2bbd8fc..c87ebec3a 100644 --- a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/TestUtils.java +++ b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/TestUtils.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.bluetooth; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingUID; diff --git a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryServiceTest.java b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryServiceTest.java index 141146d49..b05b6e4e4 100644 --- a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryServiceTest.java +++ b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryServiceTest.java @@ -23,7 +23,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiConsumer; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java index d11958018..84c5a40e3 100644 --- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java +++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java @@ -15,7 +15,7 @@ package org.openhab.binding.bosesoundtouch.internal; import java.util.HashMap; import java.util.Map; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.openhab.core.types.StateOption; import com.google.gson.annotations.Expose; diff --git a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/api/BsbLanApiCaller.java b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/api/BsbLanApiCaller.java index 62946ffd7..50214b067 100644 --- a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/api/BsbLanApiCaller.java +++ b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/api/BsbLanApiCaller.java @@ -12,16 +12,15 @@ */ package org.openhab.binding.bsblan.internal.api; -import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.*; +import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.API_TIMEOUT; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; -import java.util.HashSet; import java.util.Set; +import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.bsblan.internal.api.dto.BsbLanApiContentDTO; @@ -50,17 +49,14 @@ public class BsbLanApiCaller { } public @Nullable BsbLanApiParameterQueryResponseDTO queryParameter(Integer parameterId) { - Set parameters = new HashSet<>(); - - parameters.add(parameterId); - return queryParameters(parameters); + return queryParameters(Set.of(parameterId)); } public @Nullable BsbLanApiParameterQueryResponseDTO queryParameters(Set parameterIds) { // note: make the request even if parameterIds is empty as // thing OFFLINE/ONLINE detection relies on a response - - String apiPath = String.format("/JQ=%s", StringUtils.join(parameterIds, ",")); + String apiPath = String.format("/JQ=%s", + parameterIds.stream().map(String::valueOf).collect(Collectors.joining(","))); return makeRestCall(BsbLanApiParameterQueryResponseDTO.class, "GET", apiPath, null); } @@ -96,21 +92,21 @@ public class BsbLanApiCaller { } private String createApiBaseUrl() { - final String host = StringUtils.trimToEmpty(bridgeConfig.host); - final String username = StringUtils.trimToEmpty(bridgeConfig.username); - final String password = StringUtils.trimToEmpty(bridgeConfig.password); - final String passkey = StringUtils.trimToEmpty(bridgeConfig.passkey); + final String host = bridgeConfig.host == null ? "" : bridgeConfig.host.trim(); + final String username = bridgeConfig.username == null ? "" : bridgeConfig.username.trim(); + final String password = bridgeConfig.password == null ? "" : bridgeConfig.password.trim(); + final String passkey = bridgeConfig.passkey == null ? "" : bridgeConfig.passkey.trim(); StringBuilder url = new StringBuilder(); url.append("http://"); - if (StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password)) { + if (!username.isBlank() && !password.isBlank()) { url.append(username).append(":").append(password).append("@"); } url.append(host); if (bridgeConfig.port != 80) { url.append(":").append(bridgeConfig.port); } - if (StringUtils.isNotBlank(passkey)) { + if (!passkey.isBlank()) { url.append("/").append(passkey); } return url.toString(); @@ -134,7 +130,7 @@ public class BsbLanApiCaller { if (request != null) { String content = BsbLanApiContentConverter.toJson(request); logger.trace("api request content: '{}'", content); - if (StringUtils.isNotBlank(content)) { + if (!content.isBlank()) { contentStream = new ByteArrayInputStream(content.getBytes(Charset.forName("UTF-8"))); contentType = "application/json"; } diff --git a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/handler/BsbLanBridgeHandler.java b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/handler/BsbLanBridgeHandler.java index 0c81607a6..b07b76f0e 100644 --- a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/handler/BsbLanBridgeHandler.java +++ b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/handler/BsbLanBridgeHandler.java @@ -18,9 +18,8 @@ import java.util.HashSet; import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import java.util.stream.*; +import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.bsblan.internal.api.BsbLanApiCaller; @@ -78,7 +77,8 @@ public class BsbLanBridgeHandler extends BaseBridgeHandler { bridgeConfig = getConfigAs(BsbLanBridgeConfiguration.class); // validate 'host' configuration - if (StringUtils.isBlank(bridgeConfig.host)) { + String host = bridgeConfig.host; + if (host == null || host.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Parameter 'host' is mandatory and must be configured"); return; @@ -128,8 +128,10 @@ public class BsbLanBridgeHandler extends BaseBridgeHandler { BsbLanApiCaller apiCaller = new BsbLanApiCaller(bridgeConfig); // refresh all parameters - Set parameterIds = things.stream().filter(thing -> thing instanceof BsbLanParameterHandler) - .map(thing -> (BsbLanParameterHandler) thing).map(thing -> thing.getParameterId()) + Set parameterIds = things.stream() // + .filter(thing -> thing instanceof BsbLanParameterHandler) // + .map(thing -> (BsbLanParameterHandler) thing) // + .map(thing -> thing.getParameterId()) // .collect(Collectors.toSet()); cachedParameterQueryResponse = apiCaller.queryParameters(parameterIds); diff --git a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/helper/BsbLanParameterConverter.java b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/helper/BsbLanParameterConverter.java index a0d285a3e..e9d24f19c 100644 --- a/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/helper/BsbLanParameterConverter.java +++ b/bundles/org.openhab.binding.bsblan/src/main/java/org/openhab/binding/bsblan/internal/helper/BsbLanParameterConverter.java @@ -14,10 +14,11 @@ package org.openhab.binding.bsblan.internal.helper; import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.*; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.bsblan.internal.api.dto.BsbLanApiParameterDTO; +import org.openhab.binding.bsblan.internal.handler.BsbLanParameterHandler; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.StringType; @@ -74,7 +75,7 @@ public class BsbLanParameterConverter { } private static State getStateForUnitChannel(BsbLanApiParameterDTO parameter) { - String value = StringEscapeUtils.unescapeHtml(parameter.unit); + String value = StringEscapeUtils.unescapeHtml4(parameter.unit); return new StringType(value); } @@ -110,7 +111,7 @@ public class BsbLanParameterConverter { /** * Converts a Command back to a value which is sent to the BSB-LAN device afterwards. - * + * * @param channelId * @param command * @return null if conversion fails or channel is readonly. diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java index 025e675bc..8fcca8329 100644 --- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java +++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java @@ -26,7 +26,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.buienradar.internal.buienradarapi.BuienradarPredictionAPI; import org.openhab.binding.buienradar.internal.buienradarapi.Prediction; @@ -81,7 +80,7 @@ public class BuienradarHandler extends BaseThingHandler { this.config = getConfigAs(BuienradarConfiguration.class); boolean configValid = true; - if (StringUtils.trimToNull(config.location) == null) { + if (config.location == null || config.location.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "@text/offline.conf-error-missing-location"); configValid = false; diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java index 8a2a44623..9fdfc069b 100644 --- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java +++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java @@ -14,7 +14,6 @@ package org.openhab.binding.denonmarantz.internal; import java.math.BigDecimal; -import org.apache.commons.lang.StringUtils; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.PercentType; @@ -184,7 +183,7 @@ public class DenonMarantzState { } public void setNowPlayingArtist(String artist) { - StringType newVal = StringUtils.isBlank(artist) ? StringType.EMPTY : StringType.valueOf(artist); + StringType newVal = artist == null || artist.isBlank() ? StringType.EMPTY : StringType.valueOf(artist); if (!newVal.equals(this.artist)) { this.artist = newVal; handler.stateChanged(DenonMarantzBindingConstants.CHANNEL_NOW_PLAYING_ARTIST, this.artist); @@ -192,7 +191,7 @@ public class DenonMarantzState { } public void setNowPlayingAlbum(String album) { - StringType newVal = StringUtils.isBlank(album) ? StringType.EMPTY : StringType.valueOf(album); + StringType newVal = album == null || album.isBlank() ? StringType.EMPTY : StringType.valueOf(album); if (!newVal.equals(this.album)) { this.album = newVal; handler.stateChanged(DenonMarantzBindingConstants.CHANNEL_NOW_PLAYING_ALBUM, this.album); @@ -200,7 +199,7 @@ public class DenonMarantzState { } public void setNowPlayingTrack(String track) { - StringType newVal = StringUtils.isBlank(track) ? StringType.EMPTY : StringType.valueOf(track); + StringType newVal = track == null || track.isBlank() ? StringType.EMPTY : StringType.valueOf(track); if (!newVal.equals(this.track)) { this.track = newVal; handler.stateChanged(DenonMarantzBindingConstants.CHANNEL_NOW_PLAYING_TRACK, this.track); diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java index dbee97969..f43745c1d 100644 --- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java +++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java @@ -34,7 +34,6 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.util.StreamReaderDelegate; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.Response; @@ -169,7 +168,7 @@ public class DenonMarantzHttpConnector extends DenonMarantzConnector { @Override protected void internalSendCommand(String command) { logger.debug("Sending command '{}'", command); - if (StringUtils.isBlank(command)) { + if (command == null || command.isBlank()) { logger.warn("Trying to send empty command"); return; } @@ -306,7 +305,7 @@ public class DenonMarantzHttpConnector extends DenonMarantzConnector { String result = HttpUtil.executeUrl("GET", uri, REQUEST_TIMEOUT_MS); logger.trace("result of getDocument for uri '{}':\r\n{}", uri, result); - if (StringUtils.isNotBlank(result)) { + if (result != null && !result.isBlank()) { JAXBContext jc = JAXBContext.newInstance(response); XMLInputFactory xif = XMLInputFactory.newInstance(); xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); @@ -341,7 +340,7 @@ public class DenonMarantzHttpConnector extends DenonMarantzConnector { ByteArrayInputStream inputStream = new ByteArrayInputStream(sw.toString().getBytes(StandardCharsets.UTF_8)); String result = HttpUtil.executeUrl("POST", uri, inputStream, CONTENT_TYPE_XML, REQUEST_TIMEOUT_MS); - if (StringUtils.isNotBlank(result)) { + if (result != null && !result.isBlank()) { JAXBContext jcResponse = JAXBContext.newInstance(response); @SuppressWarnings("unchecked") diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClientThread.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClientThread.java index 9eee0775b..6062c1ea7 100644 --- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClientThread.java +++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClientThread.java @@ -20,7 +20,6 @@ import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketTimeoutException; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.denonmarantz.internal.config.DenonMarantzConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,7 +73,7 @@ public class DenonMarantzTelnetClientThread extends Thread { break; } logger.trace("Received from {}: {}", config.getHost(), line); - if (!StringUtils.isBlank(line)) { + if (!line.isBlank()) { listener.receivedLine(line); } } catch (SocketTimeoutException e) { diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java index da729e4ca..fbdb8d666 100644 --- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java +++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java @@ -20,7 +20,7 @@ import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.denonmarantz.internal.DenonMarantzState; import org.openhab.binding.denonmarantz.internal.config.DenonMarantzConfiguration; import org.openhab.binding.denonmarantz.internal.connector.DenonMarantzConnector; @@ -263,7 +263,7 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement @Override protected void internalSendCommand(String command) { logger.debug("Sending command '{}'", command); - if (StringUtils.isBlank(command)) { + if (command == null || command.isBlank()) { logger.warn("Trying to send empty command"); return; } diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java index eb90b60d0..011e75c56 100644 --- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java +++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java @@ -14,7 +14,7 @@ package org.openhab.binding.denonmarantz.internal.xml.adapters; import javax.xml.bind.annotation.adapters.XmlAdapter; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; /** * Adapter to clean up string values diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java index 6fa388fe7..6b4d2dc48 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java @@ -18,7 +18,6 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.discovery.DiscoveryServiceManager; import org.openhab.binding.digitalstrom.internal.handler.BridgeHandler; import org.openhab.binding.digitalstrom.internal.handler.CircuitHandler; @@ -139,8 +138,9 @@ public class DigitalSTROMHandlerFactory extends BaseThingHandlerFactory { private ThingUID getDeviceUID(ThingTypeUID thingTypeUID, ThingUID thingUID, Configuration configuration, ThingUID bridgeUID) { - if (thingUID == null && StringUtils.isNotBlank((String) configuration.get(DEVICE_DSID))) { - return new ThingUID(thingTypeUID, bridgeUID, configuration.get(DEVICE_DSID).toString()); + String id = (String) configuration.get(DEVICE_DSID); + if (thingUID == null && id != null && !id.isBlank()) { + return new ThingUID(thingTypeUID, bridgeUID, id); } return thingUID; } @@ -208,7 +208,8 @@ public class DigitalSTROMHandlerFactory extends BaseThingHandlerFactory { return thingUID; } String dSID; - if (StringUtils.isBlank((String) configuration.get(DS_ID))) { + String configValue = (String) configuration.get(DS_ID); + if (configValue == null || configValue.isBlank()) { dSID = getDSSid(configuration); if (dSID != null) { configuration.put(DS_ID, dSID); @@ -225,13 +226,15 @@ public class DigitalSTROMHandlerFactory extends BaseThingHandlerFactory { private String getDSSid(Configuration configuration) { String dSID = null; - if (StringUtils.isNotBlank((String) configuration.get(HOST))) { - String host = configuration.get(HOST).toString(); + String hostConfigValue = (String) configuration.get(HOST); + if (hostConfigValue != null && !hostConfigValue.isBlank()) { + String host = hostConfigValue; String applicationToken = null; String user = null; String pw = null; - if (StringUtils.isNotBlank((String) configuration.get(APPLICATION_TOKEN))) { + String atConfigValue = (String) configuration.get(APPLICATION_TOKEN); + if (atConfigValue != null && !atConfigValue.isBlank()) { applicationToken = configuration.get(APPLICATION_TOKEN).toString(); } @@ -249,8 +252,9 @@ public class DigitalSTROMHandlerFactory extends BaseThingHandlerFactory { } private boolean checkUserPassword(Configuration configuration) { - return StringUtils.isNotBlank((String) configuration.get(USER_NAME)) - && StringUtils.isNotBlank((String) configuration.get(PASSWORD)); + String userName = (String) configuration.get(USER_NAME); + String password = (String) configuration.get(PASSWORD); + return userName != null && !userName.isBlank() && password != null && !password.isBlank(); } @Override diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java index d713dd3d1..820dcf126 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java @@ -21,16 +21,17 @@ import java.util.HashSet; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.handler.BridgeHandler; import org.openhab.binding.digitalstrom.internal.lib.structure.devices.Circuit; import org.openhab.binding.digitalstrom.internal.lib.structure.devices.Device; import org.openhab.binding.digitalstrom.internal.lib.structure.devices.GeneralDeviceInformation; +import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.constants.OutputModeEnum; import org.openhab.binding.digitalstrom.internal.providers.DsDeviceThingTypeProvider; import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.DiscoveryResult; import org.openhab.core.config.discovery.DiscoveryResultBuilder; +import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingTypeUID; import org.openhab.core.thing.ThingUID; import org.slf4j.Logger; @@ -126,10 +127,8 @@ public class DeviceDiscoveryService extends AbstractDiscoveryService { if (thingUID != null) { Map properties = new HashMap<>(1); properties.put(DigitalSTROMBindingConstants.DEVICE_DSID, device.getDSID().getValue()); - String deviceName = null; - if (StringUtils.isNotBlank(device.getName())) { - deviceName = device.getName(); - } else { + String deviceName = device.getName(); + if (deviceName == null || deviceName.isBlank()) { // if no name is set, the dSID will be used as name deviceName = device.getDSID().getValue(); } diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java index 4d52e673e..83c4251fb 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java @@ -20,9 +20,9 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.handler.BridgeHandler; +import org.openhab.binding.digitalstrom.internal.handler.ZoneTemperatureControlHandler; import org.openhab.binding.digitalstrom.internal.lib.climate.jsonresponsecontainer.impl.TemperatureControlStatus; import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.DiscoveryResult; @@ -103,7 +103,7 @@ public class ZoneTemperatureControlDiscoveryService extends AbstractDiscoverySer Map properties = new HashMap<>(); properties.put(DigitalSTROMBindingConstants.ZONE_ID, tempControlStatus.getZoneID()); String zoneName = tempControlStatus.getZoneName(); - if (StringUtils.isBlank(zoneName)) { + if (zoneName == null || zoneName.isBlank()) { zoneName = tempControlStatus.getZoneID().toString(); } DiscoveryResult discoveryResult = DiscoveryResultBuilder.create(thingUID).withProperties(properties) diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java index 22f81a09a..f13295f33 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java @@ -25,7 +25,6 @@ import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.lib.climate.jsonresponsecontainer.impl.TemperatureControlStatus; import org.openhab.binding.digitalstrom.internal.lib.config.Config; @@ -198,9 +197,10 @@ public class BridgeHandler extends BaseBridgeHandler if (versions != null) { properties.putAll(versions); } - if (StringUtils.isBlank(getThing().getProperties().get(DigitalSTROMBindingConstants.SERVER_CERT)) - && StringUtils.isNotBlank(config.getCert())) { - properties.put(DigitalSTROMBindingConstants.SERVER_CERT, config.getCert()); + String certProperty = getThing().getProperties().get(DigitalSTROMBindingConstants.SERVER_CERT); + String certConfig = config.getCert(); + if ((certProperty == null || certProperty.isBlank()) && (certConfig != null && !certConfig.isBlank())) { + properties.put(DigitalSTROMBindingConstants.SERVER_CERT, certConfig); } logger.debug("update properties"); updateProperties(properties); @@ -235,8 +235,12 @@ public class BridgeHandler extends BaseBridgeHandler } private boolean checkLoginConfig(Config config) { - if ((StringUtils.isNotBlank(config.getUserName()) && StringUtils.isNotBlank(config.getPassword())) - || StringUtils.isNotBlank(config.getAppToken())) { + String userName = config.getUserName(); + String password = config.getPassword(); + String appToken = config.getAppToken(); + + if (((userName != null && !userName.isBlank()) && (password != null && !password.isBlank())) + || (appToken != null && !appToken.isBlank())) { return true; } onConnectionStateChange(CONNECTION_LOST, NO_USER_PASSWORD); @@ -296,8 +300,9 @@ public class BridgeHandler extends BaseBridgeHandler updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, excText + " have to be a number."); return null; } - if (StringUtils.isNotBlank(getThing().getProperties().get(DigitalSTROMBindingConstants.SERVER_CERT))) { - config.setCert(getThing().getProperties().get(DigitalSTROMBindingConstants.SERVER_CERT)); + String servertCert = getThing().getProperties().get(DigitalSTROMBindingConstants.SERVER_CERT); + if (servertCert != null && !servertCert.isBlank()) { + config.setCert(servertCert); } return config; } @@ -307,8 +312,9 @@ public class BridgeHandler extends BaseBridgeHandler this.config = new Config(); } // load and check connection and authorization data - if (StringUtils.isNotBlank((String) thingConfig.get(HOST))) { - config.setHost(thingConfig.get(HOST).toString()); + String host = (String) thingConfig.get(HOST); + if (host != null && !host.isBlank()) { + config.setHost(host); } else { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "The connection to the digitalSTROM-Server can't established, because the host address is missing. Please set the host address."); diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java index ede88d348..625e319aa 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java @@ -16,7 +16,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.lib.listener.DeviceStatusListener; import org.openhab.binding.digitalstrom.internal.lib.structure.devices.Circuit; @@ -77,8 +76,8 @@ public class CircuitHandler extends BaseThingHandler implements DeviceStatusList @Override public void initialize() { logger.debug("Initializing CircuitHandler."); - if (StringUtils.isNotBlank((String) getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID))) { - dSID = getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID).toString(); + dSID = (String) getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID); + if (dSID != null && !dSID.isBlank()) { final Bridge bridge = getBridge(); if (bridge != null) { bridgeStatusChanged(bridge.getStatusInfo()); diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java index a76d75d5d..ee37d31a2 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.lib.GeneralLibConstance; import org.openhab.binding.digitalstrom.internal.lib.config.Config; @@ -108,8 +107,8 @@ public class DeviceHandler extends BaseThingHandler implements DeviceStatusListe @Override public void initialize() { logger.debug("Initializing DeviceHandler."); - if (StringUtils.isNotBlank((String) getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID))) { - dSID = getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID).toString(); + dSID = (String) getConfig().get(DigitalSTROMBindingConstants.DEVICE_DSID); + if (dSID != null && !dSID.isBlank()) { final Bridge bridge = getBridge(); if (bridge != null) { bridgeStatusChanged(bridge.getStatusInfo()); diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java index e12f4e0c8..dd6f002dc 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java @@ -14,7 +14,6 @@ package org.openhab.binding.digitalstrom.internal.lib.manager.impl; import java.net.HttpURLConnection; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.lib.config.Config; import org.openhab.binding.digitalstrom.internal.lib.listener.ConnectionListener; import org.openhab.binding.digitalstrom.internal.lib.manager.ConnectionManager; @@ -286,8 +285,9 @@ public class ConnectionManagerImpl implements ConnectionManager { @Override public String getNewSessionToken() { if (this.genAppToken) { - if (StringUtils.isNotBlank(config.getAppToken())) { - sessionToken = this.digitalSTROMClient.loginApplication(config.getAppToken()); + String token = config.getAppToken(); + if (token != null && !token.isBlank()) { + sessionToken = this.digitalSTROMClient.loginApplication(token); } else if (codeIsAuthentificationFaild()) { onNotAuthenticated(); } @@ -379,8 +379,9 @@ public class ConnectionManagerImpl implements ConnectionManager { private void onNotAuthenticated() { String applicationToken = null; boolean isAuthenticated = false; - if (StringUtils.isNotBlank(config.getAppToken())) { - sessionToken = digitalSTROMClient.loginApplication(config.getAppToken()); + String token = config.getAppToken(); + if (token != null && !token.isBlank()) { + sessionToken = digitalSTROMClient.loginApplication(token); if (sessionToken != null) { isAuthenticated = true; } else { @@ -425,7 +426,7 @@ public class ConnectionManagerImpl implements ConnectionManager { logger.debug( "no application-token for application {} found, generate a application-token {}", config.getApplicationName(), applicationToken); - if (StringUtils.isNotBlank(applicationToken)) { + if (applicationToken != null && !applicationToken.isBlank()) { // enable applicationToken if (!digitalSTROMClient.enableApplicationToken(applicationToken, digitalSTROMClient.login(config.getUserName(), config.getPassword()))) { @@ -464,10 +465,9 @@ public class ConnectionManagerImpl implements ConnectionManager { } private boolean checkUserPassword() { - if (StringUtils.isNotBlank(config.getUserName()) && StringUtils.isNotBlank(config.getPassword())) { - return true; - } - return false; + String userName = config.getUserName(); + String password = config.getPassword(); + return userName != null && !userName.isBlank() && password != null && !password.isBlank(); } /** @@ -509,8 +509,9 @@ public class ConnectionManagerImpl implements ConnectionManager { @Override public boolean removeApplicationToken() { - if (StringUtils.isNotBlank(config.getAppToken())) { - return digitalSTROMClient.revokeToken(config.getAppToken(), null); + String token = config.getAppToken(); + if (token != null && !token.isBlank()) { + return digitalSTROMClient.revokeToken(token, null); } return true; } diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java index 2e78f85ab..1da43ca30 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.lib.GeneralLibConstance; import org.openhab.binding.digitalstrom.internal.lib.climate.jsonresponsecontainer.BaseSensorValues; import org.openhab.binding.digitalstrom.internal.lib.climate.jsonresponsecontainer.impl.AssignedSensors; @@ -134,12 +133,13 @@ public class DsAPIImpl implements DsAPI { } private boolean checkRequiredZone(Integer zoneID, String zoneName) { - return zoneID != null && zoneID > -1 || StringUtils.isNotBlank(zoneName); + return zoneID != null && zoneID > -1 || (zoneName != null && !zoneName.isBlank()); } private boolean checkRequiredDevice(DSID dsid, String dSUID, String name) { - return StringUtils.isNotBlank(SimpleRequestBuilder.objectToString(dsid)) || StringUtils.isNotBlank(name) - || StringUtils.isNotBlank(dSUID); + String objectString = SimpleRequestBuilder.objectToString(dsid); + return (objectString != null && !objectString.isBlank()) || (name != null && !name.isBlank()) + || (dSUID != null && !dSUID.isBlank()); } @Override @@ -411,7 +411,7 @@ public class DsAPIImpl implements DsAPI { @Override public boolean subscribeEvent(String token, String name, Integer subscriptionID, int connectionTimeout, int readTimeout) { - if (StringUtils.isNotBlank(name) && SimpleRequestBuilder.objectToString(subscriptionID) != null) { + if ((name != null && !name.isBlank()) && SimpleRequestBuilder.objectToString(subscriptionID) != null) { String response; response = transport.execute( SimpleRequestBuilder.buildNewJsonRequest(ClassKeys.EVENT).addFunction(FunctionKeys.SUBSCRIBE) @@ -428,7 +428,7 @@ public class DsAPIImpl implements DsAPI { @Override public boolean unsubscribeEvent(String token, String name, Integer subscriptionID, int connectionTimeout, int readTimeout) { - if (StringUtils.isNotBlank(name) && SimpleRequestBuilder.objectToString(subscriptionID) != null) { + if (name != null && !name.isBlank() && SimpleRequestBuilder.objectToString(subscriptionID) != null) { String response; response = transport.execute( SimpleRequestBuilder.buildNewJsonRequest(ClassKeys.EVENT).addFunction(FunctionKeys.UNSUBSCRIBE) @@ -586,7 +586,7 @@ public class DsAPIImpl implements DsAPI { @Override public String loginApplication(String loginToken) { - if (StringUtils.isNotBlank(loginToken)) { + if (loginToken != null && !loginToken.isBlank()) { String response = transport.execute(SimpleRequestBuilder.buildNewRequest(InterfaceKeys.JSON) .addRequestClass(ClassKeys.SYSTEM).addFunction(FunctionKeys.LOGIN_APPLICATION) .addParameter(ParameterKeys.LOGIN_TOKEN, loginToken).buildRequestString()); diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java index b22a31aa1..f8a736976 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java @@ -43,7 +43,7 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.digitalstrom.internal.lib.config.Config; import org.openhab.binding.digitalstrom.internal.lib.manager.ConnectionManager; import org.openhab.binding.digitalstrom.internal.lib.serverconnection.HttpTransport; @@ -194,13 +194,14 @@ public class HttpTransportImpl implements HttpTransport { if (config != null) { cert = config.getCert(); logger.debug("generate SSLcontext from config cert"); - if (StringUtils.isNotBlank(cert)) { + if (cert != null && !cert.isBlank()) { sslSocketFactory = generateSSLContextFromPEMCertString(cert); } else { - if (StringUtils.isNotBlank(config.getTrustCertPath())) { + String trustCertPath = config.getTrustCertPath(); + if (trustCertPath != null && !trustCertPath.isBlank()) { logger.debug("generate SSLcontext from config cert path"); - cert = readPEMCertificateStringFromFile(config.getTrustCertPath()); - if (StringUtils.isNotBlank(cert)) { + cert = readPEMCertificateStringFromFile(trustCertPath); + if (cert != null && !cert.isBlank()) { sslSocketFactory = generateSSLContextFromPEMCertString(cert); } } else { @@ -355,7 +356,7 @@ public class HttpTransportImpl implements HttpTransport { private HttpsURLConnection getConnection(String request, int connectTimeout, int readTimeout) throws IOException { String correctedRequest = request; - if (StringUtils.isNotBlank(correctedRequest)) { + if (correctedRequest != null && !correctedRequest.isBlank()) { correctedRequest = fixRequest(correctedRequest); URL url = new URL(this.uri + correctedRequest); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); @@ -415,7 +416,7 @@ public class HttpTransportImpl implements HttpTransport { } private String readPEMCertificateStringFromFile(String path) { - if (StringUtils.isBlank(path)) { + if (path == null || path.isBlank()) { logger.error("Path is empty."); } else { File dssCert = new File(path); @@ -446,9 +447,9 @@ public class HttpTransportImpl implements HttpTransport { @Override public String writePEMCertFile(String path) { - String correctedPath = StringUtils.trimToEmpty(path); + String correctedPath = path == null ? "" : path.trim(); File certFilePath; - if (StringUtils.isNotBlank(correctedPath)) { + if (!correctedPath.isBlank()) { certFilePath = new File(correctedPath); boolean pathExists = certFilePath.exists(); if (!pathExists) { @@ -485,7 +486,7 @@ public class HttpTransportImpl implements HttpTransport { } private SSLSocketFactory generateSSLContextFromPEMCertString(String pemCert) { - if (StringUtils.isNotBlank(pemCert) && pemCert.startsWith(BEGIN_CERT)) { + if (pemCert != null && !pemCert.isBlank() && pemCert.startsWith(BEGIN_CERT)) { try { InputStream certInputStream = IOUtils.toInputStream(pemCert); final X509Certificate trustedCert = (X509Certificate) CertificateFactory.getInstance("X.509") diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java index 6adc3a15e..3ba616192 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java @@ -15,7 +15,6 @@ package org.openhab.binding.digitalstrom.internal.lib.serverconnection.simpledsr import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.lang.NullArgumentException; import org.openhab.binding.digitalstrom.internal.lib.serverconnection.simpledsrequestbuilder.constants.ExeptionConstants; import org.openhab.binding.digitalstrom.internal.lib.serverconnection.simpledsrequestbuilder.constants.InterfaceKeys; import org.openhab.binding.digitalstrom.internal.lib.serverconnection.simpledsrequestbuilder.constants.ParameterKeys; @@ -61,7 +60,7 @@ public class SimpleRequestBuilder { * @return simpleRequestBuilder with chosen interface * @throws NullArgumentException if the interfaceKey is null */ - public static SimpleRequestBuilder buildNewRequest(String interfaceKey) throws NullArgumentException { + public static SimpleRequestBuilder buildNewRequest(String interfaceKey) throws IllegalArgumentException { if (builder == null) { builder = new SimpleRequestBuilder(); } @@ -78,14 +77,13 @@ public class SimpleRequestBuilder { * @throws IllegalArgumentException if a requestClass is already chosen * @throws NullArgumentException if the requestClassKey is null */ - public static SimpleRequestBuilder buildNewJsonRequest(String requestClassKey) - throws NullArgumentException, IllegalArgumentException { + public static SimpleRequestBuilder buildNewJsonRequest(String requestClassKey) throws IllegalArgumentException { return buildNewRequest(InterfaceKeys.JSON).addRequestClass(requestClassKey); } private SimpleRequestBuilder buildNewRequestInt(String interfaceKey) { if (interfaceKey == null) { - throw new NullArgumentException("interfaceKey"); + throw new IllegalArgumentException("interfaceKey is null"); } request = "/" + interfaceKey + "/"; classIsChosen = false; @@ -102,8 +100,7 @@ public class SimpleRequestBuilder { * @throws IllegalArgumentException if a requestClass is already chosen * @throws NullArgumentException if the requestClassKey is null */ - public SimpleRequestBuilder addRequestClass(String requestClassKey) - throws IllegalArgumentException, NullArgumentException { + public SimpleRequestBuilder addRequestClass(String requestClassKey) throws IllegalArgumentException { return builder.addRequestClassInt(requestClassKey); } @@ -115,7 +112,7 @@ public class SimpleRequestBuilder { if (!classIsChosen) { throw new IllegalArgumentException(ExeptionConstants.CLASS_ALREADY_ADDED); } else { - throw new NullArgumentException("requestClassKey"); + throw new IllegalArgumentException("requestClassKey is null"); } } return this; @@ -129,7 +126,7 @@ public class SimpleRequestBuilder { * @throws IllegalArgumentException if a function is already chosen * @throws NullArgumentException if the functionKey is null */ - public SimpleRequestBuilder addFunction(String functionKey) throws IllegalArgumentException, NullArgumentException { + public SimpleRequestBuilder addFunction(String functionKey) throws IllegalArgumentException { return builder.addFunctionInt(functionKey); } @@ -142,7 +139,7 @@ public class SimpleRequestBuilder { functionIsChosen = true; request = request + functionKey; } else { - throw new NullArgumentException("functionKey"); + throw new IllegalArgumentException("functionKey is null"); } } else { throw new IllegalArgumentException(ExeptionConstants.FUNCTION_ALLREADY_ADDED); @@ -160,7 +157,7 @@ public class SimpleRequestBuilder { * @throws NullArgumentException if the parameterKey is null */ public SimpleRequestBuilder addParameter(String parameterKey, String parameterValue) - throws IllegalArgumentException, NullArgumentException { + throws IllegalArgumentException { return builder.addParameterInt(parameterKey, parameterValue); } @@ -175,7 +172,7 @@ public class SimpleRequestBuilder { * @throws NullArgumentException if the parameterKey is null */ public SimpleRequestBuilder addDefaultZoneParameter(String sessionToken, Integer zoneID, String zoneName) - throws IllegalArgumentException, NullArgumentException { + throws IllegalArgumentException { return addParameter(ParameterKeys.TOKEN, sessionToken).addParameter(ParameterKeys.ID, objectToString(zoneID)) .addParameter(ParameterKeys.NAME, zoneName); } @@ -191,7 +188,7 @@ public class SimpleRequestBuilder { * @throws NullArgumentException if the parameterKey is null */ public SimpleRequestBuilder addDefaultGroupParameter(String sessionToken, Short groupID, String groupName) - throws IllegalArgumentException, NullArgumentException { + throws IllegalArgumentException { return addParameter(ParameterKeys.TOKEN, sessionToken) .addParameter(ParameterKeys.GROUP_ID, objectToString(groupID)) .addParameter(ParameterKeys.GROUP_NAME, groupName); @@ -210,7 +207,7 @@ public class SimpleRequestBuilder { * @throws NullArgumentException if the parameterKey is null */ public SimpleRequestBuilder addDefaultZoneGroupParameter(String sessionToken, Integer zoneID, String zoneName, - Short groupID, String groupName) throws IllegalArgumentException, NullArgumentException { + Short groupID, String groupName) throws IllegalArgumentException { return addDefaultZoneParameter(sessionToken, zoneID, zoneName) .addParameter(ParameterKeys.GROUP_ID, objectToString(groupID)) .addParameter(ParameterKeys.GROUP_NAME, groupName); @@ -228,7 +225,7 @@ public class SimpleRequestBuilder { * @throws NullArgumentException if the parameterKey is null */ public SimpleRequestBuilder addDefaultDeviceParameter(String sessionToken, DSID dsid, String dSUID, String name) - throws IllegalArgumentException, NullArgumentException { + throws IllegalArgumentException { return addParameter(ParameterKeys.TOKEN, sessionToken).addParameter(ParameterKeys.DSID, objectToString(dsid)) .addParameter(ParameterKeys.DSUID, dSUID).addParameter(ParameterKeys.NAME, name); } @@ -236,7 +233,7 @@ public class SimpleRequestBuilder { private SimpleRequestBuilder addParameterInt(String parameterKey, String parameterValue) { if (allRight()) { if (parameterKey == null) { - throw new NullArgumentException("parameterKey"); + throw new IllegalArgumentException("parameterKey is null"); } if (parameterValue != null) { if (!parameterIsAdded) { diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java index 2f5096b2b..4f7969ca8 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.DigitalSTROMBindingConstants; import org.openhab.binding.digitalstrom.internal.lib.GeneralLibConstance; import org.openhab.binding.digitalstrom.internal.lib.config.Config; @@ -1695,7 +1694,7 @@ public class DeviceImpl extends AbstractGeneralDeviceInformations implements Dev short sceneID = Short.parseShort((String) key .subSequence(DigitalSTROMBindingConstants.DEVICE_SCENE.length(), key.length())); sceneSave = propertries.get(key); - if (StringUtils.isNotBlank(sceneSave)) { + if (sceneSave != null && !sceneSave.isBlank()) { logger.debug("Find saved scene configuration for device with dSID {} and sceneID {}", dsid, key); String[] sceneParm = sceneSave.replace(" ", "").split(","); diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java index 2bd98d08d..430271a59 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java @@ -16,7 +16,6 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.digitalstrom.internal.lib.listener.SceneStatusListener; import org.openhab.binding.digitalstrom.internal.lib.structure.devices.Device; import org.openhab.binding.digitalstrom.internal.lib.structure.scene.constants.SceneTypes; @@ -71,7 +70,7 @@ public class InternalScene { this.zoneID = zoneID; } this.internalSceneID = this.zoneID + "-" + this.groupID + "-" + this.sceneID; - if (StringUtils.isBlank(sceneName)) { + if (sceneName == null || sceneName.isBlank()) { this.sceneName = this.internalSceneID; } else { this.sceneName = sceneName; diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java index d8046cc73..64057c1a9 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java @@ -13,8 +13,9 @@ package org.openhab.binding.digitalstrom.internal.providers; import java.util.Locale; +import java.util.stream.Collectors; +import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.openhab.core.i18n.TranslationProvider; import org.osgi.framework.Bundle; import org.osgi.service.component.ComponentContext; @@ -132,6 +133,9 @@ public abstract class BaseDsI18n { * @return key */ public static String buildIdentifier(Object... parts) { - return StringUtils.join(parts, SEPERATOR).toLowerCase(); + return Stream.of(parts) // + .map(Object::toString) // + .map(String::toLowerCase) // + .collect(Collectors.joining(SEPERATOR)); } } diff --git a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeApi.java b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeApi.java index 9252bfc3c..93c28d5e3 100644 --- a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeApi.java +++ b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeApi.java @@ -26,7 +26,7 @@ import java.util.Properties; import java.util.Set; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; diff --git a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeAuth.java b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeAuth.java index e3aa18532..06958b89d 100644 --- a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeAuth.java +++ b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/api/EcobeeAuth.java @@ -18,8 +18,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -133,8 +132,9 @@ public class EcobeeAuth { logger.debug("EcobeeAuth: Got null authorize response from Ecobee API"); setState(EcobeeAuthState.NEED_PIN); } else { - if (StringUtils.isNotEmpty(authResponse.error)) { - throw new EcobeeAuthException(authResponse.error + ": " + authResponse.errorDescription); + String error = authResponse.error; + if (error != null && !error.isEmpty()) { + throw new EcobeeAuthException(error + ": " + authResponse.errorDescription); } code = authResponse.code; writeLogMessage(authResponse.pin, authResponse.expiresIn); @@ -172,8 +172,9 @@ public class EcobeeAuth { setState(isPinExpired() ? EcobeeAuthState.NEED_PIN : EcobeeAuthState.NEED_TOKEN); return; } - if (StringUtils.isNotEmpty(tokenResponse.error)) { - throw new EcobeeAuthException(tokenResponse.error + ": " + tokenResponse.errorDescription); + String error = tokenResponse.error; + if (error != null && !error.isEmpty()) { + throw new EcobeeAuthException(error + ": " + tokenResponse.errorDescription); } AccessTokenResponse accessTokenResponse = new AccessTokenResponse(); accessTokenResponse.setRefreshToken(tokenResponse.refreshToken); diff --git a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeSensorThingHandler.java b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeSensorThingHandler.java index 7168910c1..760248fc8 100644 --- a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeSensorThingHandler.java +++ b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeSensorThingHandler.java @@ -17,7 +17,7 @@ import static org.openhab.binding.ecobee.internal.EcobeeBindingConstants.*; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.lang.WordUtils; +import org.apache.commons.lang3.text.WordUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.ecobee.internal.config.EcobeeSensorConfiguration; import org.openhab.binding.ecobee.internal.dto.thermostat.RemoteSensorCapabilityDTO; diff --git a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeThermostatBridgeHandler.java b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeThermostatBridgeHandler.java index 76541af49..f6b399bf6 100644 --- a/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeThermostatBridgeHandler.java +++ b/bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeThermostatBridgeHandler.java @@ -25,7 +25,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import javax.measure.Unit; -import org.apache.commons.lang.WordUtils; +import org.apache.commons.lang3.text.WordUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.ecobee.internal.action.EcobeeActions; diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java index 16573c982..71cd20646 100644 --- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java +++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java @@ -17,7 +17,7 @@ import java.util.ArrayList; import java.util.List; import java.util.TooManyListenersException; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.openhab.core.io.transport.serial.PortInUseException; import org.openhab.core.io.transport.serial.SerialPort; import org.openhab.core.io.transport.serial.SerialPortEvent; diff --git a/bundles/org.openhab.binding.enigma2/src/main/java/org/openhab/binding/enigma2/internal/Enigma2Client.java b/bundles/org.openhab.binding.enigma2/src/main/java/org/openhab/binding/enigma2/internal/Enigma2Client.java index b695105c2..f636b1d9d 100644 --- a/bundles/org.openhab.binding.enigma2/src/main/java/org/openhab/binding/enigma2/internal/Enigma2Client.java +++ b/bundles/org.openhab.binding.enigma2/src/main/java/org/openhab/binding/enigma2/internal/Enigma2Client.java @@ -24,7 +24,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.util.UrlEncoded; @@ -94,7 +93,7 @@ public class Enigma2Client { } catch (ParserConfigurationException e) { logger.warn("Failed setting parser features against XXE attacks!", e); } - if (StringUtils.isNotEmpty(user) && StringUtils.isNotEmpty(password)) { + if (user != null && !user.isEmpty() && password != null && !password.isEmpty()) { this.host = "http://" + user + ":" + password + "@" + host; } else { this.host = "http://" + host; diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java index b4fed2ccb..736b37be2 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java @@ -23,7 +23,6 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.function.Predicate; -import org.apache.commons.lang3.NotImplementedException; import org.openhab.binding.enocean.internal.config.EnOceanBaseConfig; import org.openhab.binding.enocean.internal.eep.EEP; import org.openhab.binding.enocean.internal.eep.EEPFactory; @@ -135,7 +134,7 @@ public class EnOceanBaseSensorHandler extends EnOceanBaseThingHandler implements } protected void sendRequestResponse() { - throw new NotImplementedException("Sensor cannot send responses"); + throw new UnsupportedOperationException("Sensor cannot send responses"); } @Override diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java index 15ff8fbd7..2a701eaba 100644 --- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java +++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -95,14 +94,15 @@ public class EnturNoHandler extends BaseThingHandler { logger.debug("Stop place id: {}", stopId); boolean configValid = true; - if (StringUtils.trimToNull(stopId) == null) { + if (stopId == null || stopId.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "@text/offline.conf-error-missing-stopId"); configValid = false; } - logger.debug("Line code: {}", config.getLineCode()); - if (StringUtils.trimToNull(config.getLineCode()) == null) { + String lineCode = config.getLineCode(); + logger.debug("Line code: {}", lineCode); + if (lineCode == null || lineCode.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "@text/offline.conf-error-missing-lineCode"); configValid = false; diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java index 6f852ac30..c5c65bcb9 100644 --- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java +++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java @@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -96,9 +96,9 @@ public class EnturNoConnection { */ public synchronized List getEnturTimeTable(@Nullable String stopPlaceId, @Nullable String lineCode) throws JsonSyntaxException, EnturConfigurationException, EnturCommunicationException { - if (StringUtils.isBlank(stopPlaceId)) { + if (stopPlaceId == null || stopPlaceId.isBlank()) { throw new EnturConfigurationException("Stop place id cannot be empty or null"); - } else if (lineCode == null || StringUtils.isBlank(lineCode)) { + } else if (lineCode == null || lineCode.isBlank()) { throw new EnturConfigurationException("Line code cannot be empty or null"); } @@ -115,8 +115,9 @@ public class EnturNoConnection { private Map getRequestParams(EnturNoConfiguration config) { Map params = new HashMap<>(); - params.put(PARAM_STOPID, StringUtils.trimToEmpty(config.getStopPlaceId())); - params.put(PARAM_START_DATE_TIME, StringUtils.trimToEmpty(LocalDateTime.now(ZoneId.of(TIME_ZONE)).toString())); + String stopPlaceId = config.getStopPlaceId(); + params.put(PARAM_STOPID, stopPlaceId == null ? "" : stopPlaceId.trim()); + params.put(PARAM_START_DATE_TIME, LocalDateTime.now(ZoneId.of(TIME_ZONE)).toString()); return params; } @@ -141,7 +142,7 @@ public class EnturNoConnection { int httpStatus = contentResponse.getStatus(); String content = contentResponse.getContentAsString(); - String errorMessage = StringUtils.EMPTY; + String errorMessage = ""; logger.trace("Entur response: status = {}, content = '{}'", httpStatus, content); switch (httpStatus) { case OK_200: diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java index e3255b4ba..f959c01d8 100644 --- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java +++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.evohome.internal.handler; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.evohome.internal.api.models.v2.response.Locations; import org.openhab.binding.evohome.internal.configuration.EvohomeThingConfiguration; import org.openhab.core.thing.Bridge; @@ -132,7 +131,7 @@ public abstract class BaseEvohomeHandler extends BaseThingHandler { if (configuration == null) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Configuration is missing or corrupted"); - } else if (StringUtils.isEmpty(configuration.id)) { + } else if (configuration.id == null || configuration.id.isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Id not configured"); } } diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java index 06e563f77..5c64f717a 100644 --- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java +++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java @@ -22,7 +22,6 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.client.HttpClient; import org.openhab.binding.evohome.internal.RunnableWithTimeout; import org.openhab.binding.evohome.internal.api.EvohomeApiClient; @@ -190,9 +189,9 @@ public class EvohomeAccountBridgeHandler extends BaseBridgeHandler { if (configuration == null) { errorMessage = "Configuration is missing or corrupted"; - } else if (StringUtils.isEmpty(configuration.username)) { + } else if (configuration.username == null || configuration.username.isEmpty()) { errorMessage = "Username not configured"; - } else if (StringUtils.isEmpty(configuration.password)) { + } else if (configuration.password == null || configuration.password.isEmpty()) { errorMessage = "Password not configured"; } else { return true; diff --git a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java index 33c70ce16..10d700467 100644 --- a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java +++ b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java @@ -29,7 +29,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.exec.internal.ExecWhitelistWatchService; diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java index 61d95b998..48e12ed58 100644 --- a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java +++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java @@ -25,7 +25,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -156,7 +155,7 @@ public class FoobotApiConnector { apiKeyLimitRemaining = API_RATE_LIMIT_EXCEEDED; throw new FoobotApiException(response.getStatus(), API_RATE_LIMIT_EXCEEDED_MESSAGE); case HttpStatus.OK_200: - if (StringUtils.trimToNull(content) == null) { + if (content == null || content.isBlank()) { throw new FoobotApiException(0, "No data returned"); } return content; diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java index 4684b7456..0bece5240 100644 --- a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java +++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java @@ -15,12 +15,14 @@ package org.openhab.binding.foobot.internal.handler; import static org.openhab.binding.foobot.internal.FoobotBindingConstants.*; import java.time.Duration; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.foobot.internal.FoobotApiConnector; @@ -93,10 +95,12 @@ public class FoobotAccountHandler extends BaseBridgeHandler { final FoobotAccountConfiguration accountConfig = getConfigAs(FoobotAccountConfiguration.class); final List missingParams = new ArrayList<>(); - if (StringUtils.trimToNull(accountConfig.apiKey) == null) { + String apiKey = accountConfig.apiKey; + if (apiKey.isBlank()) { missingParams.add("'apikey'"); } - if (StringUtils.trimToNull(accountConfig.username) == null) { + String username = accountConfig.username; + if (username.isBlank()) { missingParams.add("'username'"); } @@ -104,13 +108,13 @@ public class FoobotAccountHandler extends BaseBridgeHandler { final boolean oneParam = missingParams.size() == 1; final String errorMsg = String.format( "Parameter%s [%s] %s mandatory and must be configured and not be empty", oneParam ? "" : "s", - StringUtils.join(missingParams, ", "), oneParam ? "is" : "are"); + String.join(", ", missingParams), oneParam ? "is" : "are"); updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, errorMsg); return; } - username = accountConfig.username; - connector.setApiKey(accountConfig.apiKey); + this.username = username; + connector.setApiKey(apiKey); refreshInterval = accountConfig.refreshInterval; if (this.refreshInterval < MINIMUM_REFRESH_PERIOD_MINUTES) { logger.warn( @@ -118,8 +122,7 @@ public class FoobotAccountHandler extends BaseBridgeHandler { accountConfig.refreshInterval, MINIMUM_REFRESH_PERIOD_MINUTES, DEFAULT_REFRESH_PERIOD_MINUTES); refreshInterval = DEFAULT_REFRESH_PERIOD_MINUTES; } - logger.debug("Foobot Account bridge starting... user: {}, refreshInterval: {}", accountConfig.username, - refreshInterval); + logger.debug("Foobot Account bridge starting... user: {}, refreshInterval: {}", username, refreshInterval); updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.NONE, "Wait to get associated devices"); diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java index 46302f7ca..a9855e146 100644 --- a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java +++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java @@ -21,7 +21,6 @@ import java.util.Map; import javax.measure.Unit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.foobot.internal.FoobotApiConnector; @@ -93,7 +92,7 @@ public class FoobotDeviceHandler extends BaseThingHandler { logger.debug("Initializing Foobot handler."); uuid = (String) getConfig().get(FoobotBindingConstants.CONFIG_UUID); - if (StringUtils.trimToNull(uuid) == null) { + if (uuid.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Parameter 'uuid' is mandatory and must be configured"); return; diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java index 16662d873..274157f0a 100644 --- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java +++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java @@ -18,7 +18,6 @@ import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.fronius.internal.FroniusBridgeConfiguration; import org.openhab.core.io.net.http.HttpUtil; import org.openhab.core.thing.Bridge; @@ -62,10 +61,13 @@ public class FroniusBridgeHandler extends BaseBridgeHandler { boolean validConfig = true; String errorMsg = null; - if (StringUtils.trimToNull(config.hostname) == null) { + + String hostname = config.hostname; + if (hostname == null || hostname.isBlank()) { errorMsg = "Parameter 'hostname' is mandatory and must be configured"; validConfig = false; } + if (config.refreshInterval != null && config.refreshInterval <= 0) { errorMsg = "Parameter 'refresh' must be at least 1 second"; validConfig = false; diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusMeterHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusMeterHandler.java index 22e62e870..9e590f0f7 100644 --- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusMeterHandler.java +++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusMeterHandler.java @@ -14,7 +14,7 @@ package org.openhab.binding.fronius.internal.handler; import java.util.Map; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.fronius.internal.FroniusBaseDeviceConfiguration; import org.openhab.binding.fronius.internal.FroniusBindingConstants; import org.openhab.binding.fronius.internal.FroniusBridgeConfiguration; diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java index e156d7d9b..ff8592f8d 100644 --- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java +++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.fronius.internal.handler; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.fronius.internal.FroniusBaseDeviceConfiguration; import org.openhab.binding.fronius.internal.FroniusBindingConstants; import org.openhab.binding.fronius.internal.FroniusBridgeConfiguration; diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java index a24cb7f04..548d00a95 100644 --- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java +++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java @@ -18,7 +18,6 @@ import static org.openhab.binding.fsinternetradio.internal.FSInternetRadioBindin import java.math.BigDecimal; import java.util.concurrent.ScheduledFuture; -import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.client.HttpClient; import org.openhab.binding.fsinternetradio.internal.radio.FrontierSiliconRadio; import org.openhab.core.library.types.DecimalType; @@ -128,7 +127,7 @@ public class FSInternetRadioHandler extends BaseThingHandler { final BigDecimal port = (BigDecimal) getThing().getConfiguration().get(CONFIG_PROPERTY_PORT); final String pin = (String) getThing().getConfiguration().get(CONFIG_PROPERTY_PIN); - if (ip == null || StringUtils.isEmpty(pin) || port.intValue() == 0) { + if (ip == null || pin == null || pin.isEmpty() || port.intValue() == 0) { // configuration incomplete updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Configuration incomplete"); } else { diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java index 479ff037e..0b28a407a 100644 --- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java +++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java @@ -21,9 +21,12 @@ import static org.openhab.binding.fsinternetradio.internal.FSInternetRadioBindin import java.io.IOException; import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.servlet.ServletHolder; @@ -818,7 +821,7 @@ public class FSInternetRadioHandlerJavaTest extends JavaTest { BigDecimal port = (BigDecimal) config.get(FSInternetRadioBindingConstants.CONFIG_PROPERTY_PORT.toString()); String pin = (String) config.get(FSInternetRadioBindingConstants.CONFIG_PROPERTY_PIN.toString()); - if (ip == null || port.compareTo(BigDecimal.ZERO) == 0 || StringUtils.isEmpty(pin)) { + if (ip == null || port.compareTo(BigDecimal.ZERO) == 0 || pin == null || pin.isEmpty()) { return false; } return true; diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java index 8990d0ec7..21dd1e83b 100644 --- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java +++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java @@ -18,7 +18,6 @@ import java.util.Collections; import java.util.Dictionary; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.apache.ftpserver.DataConnectionConfigurationFactory; import org.apache.ftpserver.FtpServerConfigurationException; import org.apache.ftpserver.ftplet.FtpException; @@ -98,7 +97,7 @@ public class FtpUploadHandlerFactory extends BaseThingHandlerFactory { if (properties.get("port") != null) { String strPort = properties.get("port").toString(); - if (StringUtils.isNotEmpty(strPort)) { + if (!strPort.isEmpty()) { try { port = Integer.valueOf(strPort); } catch (NumberFormatException e) { @@ -109,7 +108,7 @@ public class FtpUploadHandlerFactory extends BaseThingHandlerFactory { if (properties.get("idleTimeout") != null) { String strIdleTimeout = properties.get("idleTimeout").toString(); - if (StringUtils.isNotEmpty(strIdleTimeout)) { + if (!strIdleTimeout.isEmpty()) { try { idleTimeout = Integer.valueOf(strIdleTimeout); } catch (NumberFormatException e) { diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java index 986b6db1c..119fb83d0 100644 --- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java +++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java @@ -36,7 +36,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.openhab.binding.globalcache.internal.GlobalCacheBindingConstants.CommandType; import org.openhab.binding.globalcache.internal.command.CommandGetstate; @@ -252,7 +251,7 @@ public class GlobalCacheHandler extends BaseThingHandler { } String mapFile = (String) thing.getConfiguration().get(THING_CONFIG_MAP_FILENAME); - if (StringUtils.isEmpty(mapFile)) { + if (mapFile == null || mapFile.isEmpty()) { logger.warn("MAP file is not defined in configuration of thing {}", thingID()); return null; } @@ -266,14 +265,13 @@ public class GlobalCacheHandler extends BaseThingHandler { String code; try { code = transformService.transform(mapFile, command.toString()); - } catch (TransformationException e) { logger.error("Failed to transform {} for thing {} using map file '{}', exception={}", command, thingID(), mapFile, e.getMessage()); return null; } - if (StringUtils.isEmpty(code)) { + if (code == null || code.isEmpty()) { logger.warn("No entry for {} in map file '{}' for thing {}", command, mapFile, thingID()); return null; } @@ -638,7 +636,7 @@ public class GlobalCacheHandler extends BaseThingHandler { private String getIPAddress() { String ipAddress = ((GlobalCacheHandler) thing.getHandler()).getIP(); - if (StringUtils.isEmpty(ipAddress)) { + if (ipAddress == null || ipAddress.isEmpty()) { logger.debug("Handler for thing {} could not get IP address from config", thingID()); markThingOfflineWithError(ThingStatusDetail.OFFLINE.CONFIGURATION_ERROR, "IP address not set"); } @@ -912,7 +910,7 @@ public class GlobalCacheHandler extends BaseThingHandler { if (Boolean.TRUE.equals(enableTwoWay)) { // Get the end of message delimiter from the config, URL decode it, and convert it to a byte array String endOfMessageString = (String) thing.getConfiguration().get(endOfMessageDelimiterConfig); - if (StringUtils.isNotEmpty(endOfMessageString)) { + if (endOfMessageString != null && !endOfMessageString.isEmpty()) { logger.debug("End of message is {} for thing {} {}", endOfMessageString, thingID(), serialDevice); byte[] endOfMessage; try { diff --git a/bundles/org.openhab.binding.goecharger/src/main/java/org/openhab/binding/goecharger/internal/handler/GoEChargerHandler.java b/bundles/org.openhab.binding.goecharger/src/main/java/org/openhab/binding/goecharger/internal/handler/GoEChargerHandler.java index 6b54975a0..39dfd9fdb 100644 --- a/bundles/org.openhab.binding.goecharger/src/main/java/org/openhab/binding/goecharger/internal/handler/GoEChargerHandler.java +++ b/bundles/org.openhab.binding.goecharger/src/main/java/org/openhab/binding/goecharger/internal/handler/GoEChargerHandler.java @@ -45,7 +45,7 @@ import java.util.stream.Collectors; import javax.measure.quantity.ElectricCurrent; import javax.measure.quantity.Energy; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java index 43013400b..eb974d0f7 100644 --- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java +++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java @@ -25,7 +25,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.harmonyhub.internal.HarmonyHubHandlerFactory; @@ -263,9 +262,9 @@ public class HarmonyHubHandler extends BaseBridgeHandler implements HarmonyClien // earlier versions required a name and used network discovery to find the hub and retrieve the host, // this section is to not break that and also update older configurations to use the host configuration // option instead of name - if (StringUtils.isBlank(host)) { + if (host == null || host.isBlank()) { host = getThing().getProperties().get(HUB_PROPERTY_HOST); - if (StringUtils.isNotBlank(host)) { + if (host != null && !host.isBlank()) { Configuration genericConfig = getConfig(); genericConfig.put(HUB_PROPERTY_HOST, host); updateConfiguration(genericConfig); diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java index 417ee7a36..79b114d45 100644 --- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java +++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.hdanywhere.internal.handler; -import static org.apache.commons.lang.StringUtils.isNotBlank; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -93,27 +91,25 @@ public class Mhub4K431Handler extends BaseThingHandler { String content = "{tag:ptn}"; InputStream stream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)); - if (isNotBlank(httpMethod) && isNotBlank(url)) { - String response = HttpUtil.executeUrl(httpMethod, url, null, stream, null, timeout); - response = response.trim(); - response = response.substring(1, response.length() - 1); + String response = HttpUtil.executeUrl(httpMethod, url, null, stream, null, timeout); + response = response.trim(); + response = response.substring(1, response.length() - 1); - if (response != null) { - updateStatus(ThingStatus.ONLINE); + if (response != null) { + updateStatus(ThingStatus.ONLINE); - java.lang.reflect.Type type = new TypeToken>() { - }.getType(); - Map map = gson.fromJson(response, type); + java.lang.reflect.Type type = new TypeToken>() { + }.getType(); + Map map = gson.fromJson(response, type); - String inputChannel = map.get("Inputchannel"); + String inputChannel = map.get("Inputchannel"); - for (int i = 0; i < numberOfPorts; i++) { - DecimalType decimalType = new DecimalType(String.valueOf(inputChannel.charAt(i))); - updateState(new ChannelUID(getThing().getUID(), Port.get(i + 1).channelID()), decimalType); - } - } else { - updateStatus(ThingStatus.OFFLINE); + for (int i = 0; i < numberOfPorts; i++) { + DecimalType decimalType = new DecimalType(String.valueOf(inputChannel.charAt(i))); + updateState(new ChannelUID(getThing().getUID(), Port.get(i + 1).channelID()), decimalType); } + } else { + updateStatus(ThingStatus.OFFLINE); } } catch (Exception e) { logger.debug("An exception occurred while polling the HDanwywhere matrix: '{}'", e.getMessage()); diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java index 70a4672d5..a2cdc8c95 100644 --- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java +++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.hdanywhere.internal.handler; -import static org.apache.commons.lang.StringUtils.isNotBlank; - import java.io.IOException; import java.math.BigDecimal; import java.util.concurrent.ScheduledFuture; @@ -69,24 +67,22 @@ public class MultiroomPlusHandler extends BaseThingHandler { String httpMethod = "GET"; String url = "http://" + host + "/status_show.shtml"; - if (isNotBlank(httpMethod) && isNotBlank(url)) { - String response = HttpUtil.executeUrl(httpMethod, url, null, null, null, timeout); + String response = HttpUtil.executeUrl(httpMethod, url, null, null, null, timeout); - if (response != null) { - updateStatus(ThingStatus.ONLINE); + if (response != null) { + updateStatus(ThingStatus.ONLINE); - for (int i = 1; i <= numberOfPorts; i++) { - Pattern p = Pattern.compile("var out" + i + "var = (.*);"); - Matcher m = p.matcher(response); + for (int i = 1; i <= numberOfPorts; i++) { + Pattern p = Pattern.compile("var out" + i + "var = (.*);"); + Matcher m = p.matcher(response); - while (m.find()) { - DecimalType decimalType = new DecimalType(m.group(1)); - updateState(new ChannelUID(getThing().getUID(), Port.get(i).channelID()), decimalType); - } + while (m.find()) { + DecimalType decimalType = new DecimalType(m.group(1)); + updateState(new ChannelUID(getThing().getUID(), Port.get(i).channelID()), decimalType); } - } else { - updateStatus(ThingStatus.OFFLINE); } + } else { + updateStatus(ThingStatus.OFFLINE); } } catch (Exception e) { logger.warn("An exception occurred while polling the HDanwywhere matrix: '{}'", e.getMessage()); diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosThingBaseHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosThingBaseHandler.java index ce625122f..afa7ea927 100644 --- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosThingBaseHandler.java +++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosThingBaseHandler.java @@ -14,9 +14,9 @@ package org.openhab.binding.heos.internal.handler; import static org.openhab.binding.heos.internal.HeosBindingConstants.*; import static org.openhab.binding.heos.internal.handler.FutureUtil.cancel; -import static org.openhab.binding.heos.internal.json.dto.HeosCommandGroup.GROUP; -import static org.openhab.binding.heos.internal.json.dto.HeosCommandGroup.PLAYER; +import static org.openhab.binding.heos.internal.json.dto.HeosCommandGroup.*; import static org.openhab.binding.heos.internal.json.dto.HeosCommunicationAttribute.*; +import static org.openhab.binding.heos.internal.resources.HeosConstants.*; import static org.openhab.core.thing.ThingStatus.*; import java.io.IOException; @@ -30,7 +30,6 @@ import java.util.concurrent.TimeUnit; import javax.measure.quantity.Time; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.heos.internal.HeosChannelHandlerFactory; @@ -38,15 +37,31 @@ import org.openhab.binding.heos.internal.api.HeosFacade; import org.openhab.binding.heos.internal.exception.HeosFunctionalException; import org.openhab.binding.heos.internal.exception.HeosNotConnectedException; import org.openhab.binding.heos.internal.exception.HeosNotFoundException; -import org.openhab.binding.heos.internal.json.dto.*; +import org.openhab.binding.heos.internal.json.dto.HeosCommandTuple; +import org.openhab.binding.heos.internal.json.dto.HeosCommunicationAttribute; +import org.openhab.binding.heos.internal.json.dto.HeosError; +import org.openhab.binding.heos.internal.json.dto.HeosEvent; +import org.openhab.binding.heos.internal.json.dto.HeosEventObject; +import org.openhab.binding.heos.internal.json.dto.HeosObject; +import org.openhab.binding.heos.internal.json.dto.HeosResponseObject; import org.openhab.binding.heos.internal.json.payload.Media; import org.openhab.binding.heos.internal.json.payload.Player; import org.openhab.binding.heos.internal.resources.HeosEventListener; import org.openhab.binding.heos.internal.resources.Telnet.ReadException; import org.openhab.core.io.net.http.HttpUtil; -import org.openhab.core.library.types.*; +import org.openhab.core.library.types.OnOffType; +import org.openhab.core.library.types.PercentType; +import org.openhab.core.library.types.PlayPauseType; +import org.openhab.core.library.types.QuantityType; +import org.openhab.core.library.types.RawType; +import org.openhab.core.library.types.StringType; import org.openhab.core.library.unit.Units; -import org.openhab.core.thing.*; +import org.openhab.core.thing.Bridge; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.Thing; +import org.openhab.core.thing.ThingStatus; +import org.openhab.core.thing.ThingStatusDetail; +import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.types.UnDefType; import org.slf4j.Logger; @@ -474,16 +489,17 @@ public abstract class HeosThingBaseHandler extends BaseThingHandler implements H } private void handleImageUrl(Media info) { - if (StringUtils.isNotBlank(info.imageUrl)) { + String imageUrl = info.imageUrl; + if (imageUrl != null && !imageUrl.isBlank()) { try { - URL url = new URL(info.imageUrl); // checks if String is proper URL + URL url = new URL(imageUrl); // checks if String is proper URL RawType cover = HttpUtil.downloadImage(url.toString()); if (cover != null) { updateState(CH_ID_COVER, cover); return; } } catch (MalformedURLException e) { - logger.debug("Cover can't be loaded. No proper URL: {}", info.imageUrl, e); + logger.debug("Cover can't be loaded. No proper URL: {}", imageUrl, e); } } updateState(CH_ID_COVER, UnDefType.NULL); diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java index ea64e615f..932d88846 100644 --- a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java +++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java @@ -16,11 +16,14 @@ import static org.openhab.binding.hydrawise.internal.HydrawiseBindingConstants.* import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.hydrawise.internal.api.HydrawiseAuthenticationException; @@ -210,8 +213,9 @@ public abstract class HydrawiseHandler extends BaseThingHandler { updateGroupState(group, CHANNEL_ZONE_TYPE, new DecimalType(r.type)); updateGroupState(group, CHANNEL_ZONE_TIME, r.runTimeSeconds != null ? new DecimalType(r.runTimeSeconds) : UnDefType.UNDEF); - if (StringUtils.isNotBlank(r.icon)) { - updateGroupState(group, CHANNEL_ZONE_ICON, new StringType(BASE_IMAGE_URL + r.icon)); + String icon = r.icon; + if (icon != null && !icon.isBlank()) { + updateGroupState(group, CHANNEL_ZONE_ICON, new StringType(BASE_IMAGE_URL + icon)); } if (r.time >= MAX_RUN_TIME) { updateGroupState(group, CHANNEL_ZONE_NEXT_RUN_TIME_TIME, UnDefType.UNDEF); diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java index 50ed769d6..c928bd6d0 100644 --- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java +++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java @@ -32,7 +32,6 @@ import java.util.concurrent.TimeUnit; import javax.measure.Unit; import javax.measure.quantity.Temperature; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -268,7 +267,7 @@ public class IAqualinkHandler extends BaseThingHandler { String confSerialId = configuration.serialId; String confApiKey = configuration.apiKey; - if (StringUtils.isNotBlank(confApiKey)) { + if (confApiKey != null && !confApiKey.isBlank()) { this.apiKey = confApiKey; } else { this.apiKey = DEFAULT_API_KEY; @@ -291,7 +290,7 @@ public class IAqualinkHandler extends BaseThingHandler { return; } - if (StringUtils.isNotBlank(confSerialId)) { + if (confSerialId != null && !confSerialId.isBlank()) { serialNumber = confSerialId.replaceAll("[^a-zA-Z0-9]", "").toLowerCase(); if (!Arrays.stream(devices).anyMatch(device -> device.getSerialNumber().equals(serialNumber))) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, @@ -438,8 +437,7 @@ public class IAqualinkHandler extends BaseThingHandler { */ private State toState(String name, @Nullable String type, @Nullable String value) { try { - // @nullable checker does not recognize isBlank as checking null here, so must use == null to make happy - if (value == null || StringUtils.isBlank(value)) { + if (value == null || value.isBlank()) { return UnDefType.UNDEF; } diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java index 0ca762a59..e8b3fd52e 100644 --- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java +++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java @@ -19,7 +19,6 @@ import java.util.List; import java.util.Set; import java.util.function.Predicate; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.ihc.internal.config.ChannelParams; import org.openhab.binding.ihc.internal.ws.exeptions.ConversionException; import org.openhab.core.config.core.Configuration; @@ -214,16 +213,16 @@ public class ChannelUtils { private static String createDescription(String name1, String name2, String name3, String name4) { String description = ""; - if (StringUtils.isNotEmpty(name1)) { + if (name1 != null && !name1.isEmpty()) { description = name1; } - if (StringUtils.isNotEmpty(name2)) { + if (name2 != null && !name2.isEmpty()) { description += String.format(" - %s", name2); } - if (StringUtils.isNotEmpty(name3)) { + if (name3 != null && !name3.isEmpty()) { description += String.format(" - %s", name3); } - if (StringUtils.isNotEmpty(name4)) { + if (name4 != null && !name4.isEmpty()) { description += String.format(" - %s", name4); } return description; diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java index 8f7b7a8eb..93439b0aa 100644 --- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java +++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java @@ -20,7 +20,6 @@ import java.util.Set; import javax.xml.xpath.XPathExpressionException; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.ihc.internal.ws.datatypes.XPathUtils; import org.openhab.binding.ihc.internal.ws.exeptions.IhcExecption; import org.openhab.binding.ihc.internal.ws.http.IhcConnectionPool; @@ -92,12 +91,12 @@ public class IhcResourceInteractionService extends IhcBaseService { // parse resource id String resourceId = XPathUtils.getSpeficValueFromNode(n, "ns1:resourceID"); - if (StringUtils.isNotBlank(resourceId)) { + if (resourceId != null && !resourceId.isBlank()) { int id = Integer.parseInt(resourceId); // Parse floating point value String floatingPointValue = getValue(n, "floatingPointValue"); - if (StringUtils.isNotBlank(floatingPointValue)) { + if (floatingPointValue != null && !floatingPointValue.isBlank()) { String min = getValue(n, "minimumValue"); String max = getValue(n, "maximumValue"); return new WSFloatingPointValue(id, Double.valueOf(floatingPointValue), Double.valueOf(min), @@ -106,13 +105,13 @@ public class IhcResourceInteractionService extends IhcBaseService { // Parse boolean value String value = getValue(n, "value"); - if (StringUtils.isNotBlank(value)) { + if (value != null && !value.isBlank()) { return new WSBooleanValue(id, Boolean.valueOf(value)); } // Parse integer value String integer = getValue(n, "integer"); - if (StringUtils.isNotBlank(integer)) { + if (integer != null && !integer.isBlank()) { String min = getValue(n, "minimumValue"); String max = getValue(n, "maximumValue"); return new WSIntegerValue(id, Integer.valueOf(integer), Integer.valueOf(min), Integer.valueOf(max)); @@ -120,13 +119,13 @@ public class IhcResourceInteractionService extends IhcBaseService { // Parse timer value String milliseconds = getValue(n, "milliseconds"); - if (StringUtils.isNotBlank(milliseconds)) { + if (milliseconds != null && !milliseconds.isBlank()) { return new WSTimerValue(id, Integer.valueOf(milliseconds)); } // Parse time value String hours = getValue(n, "hours"); - if (StringUtils.isNotBlank(hours)) { + if (hours != null && !hours.isBlank()) { String minutes = getValue(n, "minutes"); String seconds = getValue(n, "seconds"); return new WSTimeValue(id, Integer.valueOf(hours), Integer.valueOf(minutes), Integer.valueOf(seconds)); @@ -134,7 +133,7 @@ public class IhcResourceInteractionService extends IhcBaseService { // Parse date value String year = getValue(n, "year"); - if (StringUtils.isNotBlank(year)) { + if (year != null && !year.isBlank()) { String month = getValue(n, "month"); String day = getValue(n, "day"); return new WSDateValue(id, Short.valueOf(year), Byte.valueOf(month), Byte.valueOf(day)); @@ -142,7 +141,7 @@ public class IhcResourceInteractionService extends IhcBaseService { // Parse enum value String definitionTypeID = getValue(n, "definitionTypeID"); - if (StringUtils.isNotBlank(definitionTypeID)) { + if (definitionTypeID != null && !definitionTypeID.isBlank()) { String enumValueID = getValue(n, "enumValueID"); String enumName = getValue(n, "enumName"); return new WSEnumValue(id, Integer.valueOf(definitionTypeID), Integer.valueOf(enumValueID), enumName); @@ -150,7 +149,7 @@ public class IhcResourceInteractionService extends IhcBaseService { // Parse week day value value = getValue(n, "weekdayNumber"); - if (StringUtils.isNotBlank(value)) { + if (value != null && !value.isBlank()) { return new WSWeekdayValue(id, Integer.valueOf(value)); } diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java index 3a841962a..484d99add 100644 --- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java +++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java @@ -16,13 +16,14 @@ import static org.openhab.binding.innogysmarthome.internal.client.Constants.*; import java.io.IOException; import java.net.URI; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -180,7 +181,8 @@ public class InnogyClient { } catch (OAuthException | OAuthResponseException e) { throw new AuthenticationException("Error fetching access token: " + e.getMessage()); } - if (accessTokenResponse == null || StringUtils.isBlank(accessTokenResponse.getAccessToken())) { + if (accessTokenResponse == null || accessTokenResponse.getAccessToken() == null + || accessTokenResponse.getAccessToken().isBlank()) { throw new AuthenticationException("No innogy accesstoken. Is this thing authorized?"); } return accessTokenResponse; diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java index a9e74b1b7..65943b322 100644 --- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java +++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java @@ -20,11 +20,19 @@ import java.net.SocketTimeoutException; import java.net.URI; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; -import java.util.*; -import java.util.concurrent.*; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -183,7 +191,7 @@ public class InnogyBridgeHandler extends BaseBridgeHandler * @return true if success */ private boolean checkOnAuthCode() { - if (StringUtils.isNotBlank(bridgeConfiguration.authcode)) { + if (!bridgeConfiguration.authcode.isBlank()) { logger.debug("Trying to get access and refresh tokens"); try { oAuthService.getAccessTokenResponseByAuthorizationCode(bridgeConfiguration.authcode, @@ -868,7 +876,7 @@ public class InnogyBridgeHandler extends BaseBridgeHandler /** * Sends the command to start or stop moving the rollershutter (ISR2) in a specified direction - * + * * @param deviceId * @param action */ @@ -970,7 +978,7 @@ public class InnogyBridgeHandler extends BaseBridgeHandler /** * Checks if the job is already (re-)scheduled. - * + * * @param job job to check * @return true, when the job is already (re-)scheduled, otherwise false */ diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java index a209af76c..d2ea1079a 100644 --- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java +++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java @@ -14,7 +14,7 @@ package org.openhab.binding.irtrans.internal.handler; import static org.openhab.binding.irtrans.internal.IRtransBindingConstants.CHANNEL_IO; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.irtrans.internal.IRtransBindingConstants.Led; import org.openhab.binding.irtrans.internal.IrCommand; import org.openhab.core.library.types.StringType; diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java index 4a70874e3..4e0aae384 100644 --- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java +++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java @@ -35,7 +35,7 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.openhab.binding.irtrans.internal.IRtransBindingConstants; import org.openhab.binding.irtrans.internal.IRtransBindingConstants.Led; diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java index d7a39f554..9befda896 100644 --- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java +++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java @@ -21,7 +21,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.jeelink.internal.JeeLinkSensorHandler; import org.openhab.binding.jeelink.internal.ReadingPublisher; import org.openhab.binding.jeelink.internal.RollingAveragePublisher; diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LgwSensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LgwSensorHandler.java index 7074f1d57..fcba0f17a 100644 --- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LgwSensorHandler.java +++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LgwSensorHandler.java @@ -18,7 +18,7 @@ import static org.openhab.core.library.unit.MetricPrefix.*; import java.math.BigDecimal; import java.math.RoundingMode; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.jeelink.internal.JeeLinkSensorHandler; import org.openhab.binding.jeelink.internal.ReadingPublisher; diff --git a/bundles/org.openhab.binding.kaleidescape/src/main/java/org/openhab/binding/kaleidescape/internal/communication/KaleidescapeFormatter.java b/bundles/org.openhab.binding.kaleidescape/src/main/java/org/openhab/binding/kaleidescape/internal/communication/KaleidescapeFormatter.java index 1c6cd46a6..0dbe8727f 100644 --- a/bundles/org.openhab.binding.kaleidescape/src/main/java/org/openhab/binding/kaleidescape/internal/communication/KaleidescapeFormatter.java +++ b/bundles/org.openhab.binding.kaleidescape/src/main/java/org/openhab/binding/kaleidescape/internal/communication/KaleidescapeFormatter.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.kaleidescape.internal.communication; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.eclipse.jdt.annotation.NonNullByDefault; /** @@ -48,8 +48,8 @@ public class KaleidescapeFormatter { // I.e. characters with accent, umlaut, etc., they need to be restored to the correct character // example: Noel (with umlaut 'o') comes in as N\d246el input = input.replaceAll("(?i)\\\\d([0-9]{3})", "\\&#$1;"); // first convert to html escaped codes - // then convert with unescapeHtml, not sure how to do this without the Apache libraries :( - return StringEscapeUtils.unescapeHtml(input); + // then convert with unescapeHtml4, not sure how to do this without the Apache libraries :( + return StringEscapeUtils.unescapeHtml4(input); } } return input; diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java index 42f48c577..8280827d8 100644 --- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java +++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java @@ -15,7 +15,7 @@ package org.openhab.binding.keba.internal; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingTypeUID; diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java index 36f789e49..29b93acc3 100644 --- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java +++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java @@ -32,7 +32,7 @@ import javax.measure.quantity.Energy; import javax.measure.quantity.Power; import javax.measure.quantity.Time; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.keba.internal.KebaBindingConstants.KebaSeries; import org.openhab.binding.keba.internal.KebaBindingConstants.KebaType; import org.openhab.core.cache.ExpiringCacheMap; diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java index dfb9af331..35261b4ff 100644 --- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java +++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java @@ -23,7 +23,6 @@ import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.slf4j.Logger; @@ -131,8 +130,8 @@ public class KM200Cryption { * @author Markus Eckhardt */ public void recreateKeys() { - if (StringUtils.isNotBlank(remoteDevice.getGatewayPassword()) - && StringUtils.isNotBlank(remoteDevice.getPrivatePassword()) && remoteDevice.getMD5Salt().length > 0) { + if (!remoteDevice.getGatewayPassword().isBlank() && !remoteDevice.getPrivatePassword().isBlank() + && remoteDevice.getMD5Salt().length > 0) { byte[] md5K1 = null; byte[] md5K2Init = null; byte[] md5K2Private = null; diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java index aefc94246..91d5d2dcd 100644 --- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java +++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java @@ -19,8 +19,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -84,7 +83,7 @@ public class KM200Device { } public Boolean isConfigured() { - return StringUtils.isNotBlank(ip4Address) && cryptKeyPriv.length > 0; + return !ip4Address.isBlank() && cryptKeyPriv.length > 0; } public String getIP4Address() { diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java index 8b11ac6e5..3a125dd15 100644 --- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java +++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java @@ -30,7 +30,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -177,7 +176,7 @@ public class KM200GatewayHandler extends BaseBridgeHandler { switch (key) { case "ip4Address": String ip = (String) configuration.get("ip4Address"); - if (StringUtils.isNotBlank(ip)) { + if (ip != null && !ip.isBlank()) { try { InetAddress.getByName(ip); } catch (UnknownHostException e) { @@ -190,25 +189,25 @@ public class KM200GatewayHandler extends BaseBridgeHandler { break; case "privateKey": String privateKey = (String) configuration.get("privateKey"); - if (StringUtils.isNotBlank(privateKey)) { + if (privateKey != null && !privateKey.isBlank()) { getDevice().setCryptKeyPriv(privateKey); } break; case "md5Salt": String md5Salt = (String) configuration.get("md5Salt"); - if (StringUtils.isNotBlank(md5Salt)) { + if (md5Salt != null && !md5Salt.isBlank()) { getDevice().setMD5Salt(md5Salt); } break; case "gatewayPassword": String gatewayPassword = (String) configuration.get("gatewayPassword"); - if (StringUtils.isNotBlank(gatewayPassword)) { + if (gatewayPassword != null && !gatewayPassword.isBlank()) { getDevice().setGatewayPassword(gatewayPassword); } break; case "privatePassword": String privatePassword = (String) configuration.get("privatePassword"); - if (StringUtils.isNotBlank(privatePassword)) { + if (privatePassword != null && !privatePassword.isBlank()) { getDevice().setPrivatePassword(privatePassword); } break; diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java index 887a7dbbf..026076918 100644 --- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java +++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java @@ -25,7 +25,6 @@ import java.util.concurrent.TimeUnit; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.lametrictime.api.Configuration; import org.openhab.binding.lametrictime.api.LaMetricTime; import org.openhab.binding.lametrictime.api.local.ApplicationActivationException; @@ -360,12 +359,12 @@ public class LaMetricTimeHandler extends ConfigStatusBridgeHandler { String host = config.host; String apiKey = config.apiKey; - if (StringUtils.isEmpty(host)) { + if (host == null || host.isEmpty()) { configStatusMessages.add(ConfigStatusMessage.Builder.error(HOST) .withMessageKeySuffix(LaMetricTimeConfigStatusMessage.HOST_MISSING).withArguments(HOST).build()); } - if (StringUtils.isEmpty(apiKey)) { + if (apiKey == null || apiKey.isEmpty()) { configStatusMessages.add(ConfigStatusMessage.Builder.error(API_KEY) .withMessageKeySuffix(LaMetricTimeConfigStatusMessage.API_KEY_MISSING).withArguments(API_KEY) .build()); diff --git a/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/config/IPBridgeConfig.java b/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/config/IPBridgeConfig.java index 4a1a3ce45..5bde94ae0 100644 --- a/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/config/IPBridgeConfig.java +++ b/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/config/IPBridgeConfig.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.lutron.internal.config; -import org.openhab.binding.lutron.internal.StringUtils; +import java.util.Objects; /** * Configuration settings for an {@link org.openhab.binding.lutron.internal.handler.IPBridgeHandler}. @@ -30,8 +30,8 @@ public class IPBridgeConfig { public int delay = 0; public boolean sameConnectionParameters(IPBridgeConfig config) { - return StringUtils.equals(ipAddress, config.ipAddress) && StringUtils.equals(user, config.user) - && StringUtils.equals(password, config.password) && (reconnect == config.reconnect) + return Objects.equals(ipAddress, config.ipAddress) && Objects.equals(user, config.user) + && Objects.equals(password, config.password) && (reconnect == config.reconnect) && (heartbeat == config.heartbeat) && (delay == config.delay); } } diff --git a/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/handler/IPBridgeHandler.java b/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/handler/IPBridgeHandler.java index e564ee522..61c6cf4e9 100644 --- a/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/handler/IPBridgeHandler.java +++ b/bundles/org.openhab.binding.lutron/src/main/java/org/openhab/binding/lutron/internal/handler/IPBridgeHandler.java @@ -25,7 +25,6 @@ import java.util.regex.MatchResult; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.openhab.binding.lutron.internal.StringUtils; import org.openhab.binding.lutron.internal.config.IPBridgeConfig; import org.openhab.binding.lutron.internal.discovery.LutronDeviceDiscoveryService; import org.openhab.binding.lutron.internal.net.TelnetSession; @@ -156,7 +155,8 @@ public class IPBridgeHandler extends LutronBridgeHandler { return false; } - if (StringUtils.isEmpty(config.ipAddress)) { + String ipAddress = config.ipAddress; + if (ipAddress == null || ipAddress.isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "bridge address not specified"); return false; diff --git a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/MCommand.java b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/MCommand.java index 9bcf43a95..96a71d69f 100644 --- a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/MCommand.java +++ b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/MCommand.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.max.internal.Utils; import org.openhab.binding.max.internal.device.Device; diff --git a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/TCommand.java b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/TCommand.java index 8927ac272..c5ac9eed0 100644 --- a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/TCommand.java +++ b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/command/TCommand.java @@ -16,7 +16,7 @@ import java.util.ArrayList; import java.util.Base64; import java.util.List; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.max.internal.Utils; diff --git a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/message/CMessage.java b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/message/CMessage.java index a90f9aaaa..a4b326e38 100644 --- a/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/message/CMessage.java +++ b/bundles/org.openhab.binding.max/src/main/java/org/openhab/binding/max/internal/message/CMessage.java @@ -25,7 +25,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.max.internal.Utils; import org.openhab.binding.max.internal.device.DeviceType; @@ -278,7 +278,7 @@ public final class CMessage extends Message { logger.debug("RoomID: {}", roomId); for (String key : properties.keySet()) { if (!key.startsWith("Unknown")) { - String propertyName = StringUtils.join(StringUtils.splitByCharacterTypeCamelCase(key), ' '); + String propertyName = String.join(" ", StringUtils.splitByCharacterTypeCamelCase(key)); logger.debug("{}: {}", propertyName, properties.get(key)); } else { logger.debug("{}: {}", key, properties.get(key)); diff --git a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/MeteoBlueConfiguration.java b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/MeteoBlueConfiguration.java index dbfe3d764..212525809 100644 --- a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/MeteoBlueConfiguration.java +++ b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/MeteoBlueConfiguration.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.meteoblue.internal; -import org.apache.commons.lang.StringUtils; - /** * Model for the meteoblue binding configuration. * @@ -64,15 +62,15 @@ public class MeteoBlueConfiguration { String a2 = split.length > 1 ? split[1] : null; String a3 = split.length > 2 ? split[2] : null; - if (!StringUtils.isBlank(a1)) { + if (a1 != null && !a1.isBlank()) { latitude = tryGetDouble(a1); } - if (!StringUtils.isBlank(a2)) { + if (a2 != null && !a2.isBlank()) { longitude = tryGetDouble(a2); } - if (!StringUtils.isBlank(a3)) { + if (a3 != null && !a3.isBlank()) { altitude = tryGetDouble(a3); } } diff --git a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueBridgeHandler.java b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueBridgeHandler.java index beae44764..c74cbbb19 100644 --- a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueBridgeHandler.java +++ b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueBridgeHandler.java @@ -17,7 +17,6 @@ import static org.openhab.binding.meteoblue.internal.MeteoBlueBindingConstants.T import java.util.Collections; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.meteoblue.internal.MeteoBlueBridgeConfig; import org.openhab.core.io.net.http.HttpUtil; import org.openhab.core.thing.Bridge; @@ -55,7 +54,7 @@ public class MeteoBlueBridgeHandler extends BaseBridgeHandler { MeteoBlueBridgeConfig config = getConfigAs(MeteoBlueBridgeConfig.class); String apiKeyTemp = config.getApiKey(); - if (StringUtils.isBlank(apiKeyTemp)) { + if (apiKeyTemp == null || apiKeyTemp.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Cannot initialize meteoblue bridge. No apiKey provided."); return; diff --git a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueHandler.java b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueHandler.java index c35212c19..eb62fa856 100644 --- a/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueHandler.java +++ b/bundles/org.openhab.binding.meteoblue/src/main/java/org/openhab/binding/meteoblue/internal/handler/MeteoBlueHandler.java @@ -27,7 +27,6 @@ import java.util.concurrent.TimeUnit; import javax.imageio.ImageIO; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.meteoblue.internal.Forecast; import org.openhab.binding.meteoblue.internal.MeteoBlueConfiguration; import org.openhab.binding.meteoblue.internal.json.JsonData; @@ -97,13 +96,13 @@ public class MeteoBlueHandler extends BaseThingHandler { MeteoBlueConfiguration config = getConfigAs(MeteoBlueConfiguration.class); - if (StringUtils.isBlank(config.serviceType)) { + if (config.serviceType == null || config.serviceType.isBlank()) { config.serviceType = MeteoBlueConfiguration.SERVICETYPE_NONCOMM; logger.debug("Using default service type ({}).", config.serviceType); return; } - if (StringUtils.isBlank(config.location)) { + if (config.location == null || config.location.isBlank()) { flagBadConfig("The location was not configured."); return; } @@ -315,7 +314,7 @@ public class MeteoBlueHandler extends BaseThingHandler { if (config.altitude != null) { builder.append("&asl=" + config.altitude); } - if (StringUtils.isNotBlank(config.timeZone)) { + if (config.timeZone != null && !config.timeZone.isBlank()) { builder.append("&tz=" + config.timeZone); } url = url.replace("#FORMAT_PARAMS#", builder.toString()); diff --git a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/discovery/MieleApplianceDiscoveryService.java b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/discovery/MieleApplianceDiscoveryService.java index a82acc26b..b85ce8e11 100644 --- a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/discovery/MieleApplianceDiscoveryService.java +++ b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/discovery/MieleApplianceDiscoveryService.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.miele.internal.handler.ApplianceStatusListener; import org.openhab.binding.miele.internal.handler.MieleApplianceHandler; import org.openhab.binding.miele.internal.handler.MieleBridgeHandler; @@ -46,6 +45,9 @@ import com.google.gson.JsonElement; */ public class MieleApplianceDiscoveryService extends AbstractDiscoveryService implements ApplianceStatusListener { + private static final String MIELE_APPLIANCE_CLASS = "com.miele.xgw3000.gateway.hdm.deviceclasses.MieleAppliance"; + private static final String MIELE_CLASS = "com.miele.xgw3000.gateway.hdm.deviceclasses.Miele"; + private final Logger logger = LoggerFactory.getLogger(MieleApplianceDiscoveryService.class); private static final int SEARCH_TIME = 60; @@ -103,10 +105,9 @@ public class MieleApplianceDiscoveryService extends AbstractDiscoveryService imp properties.put(APPLIANCE_ID, appliance.getApplianceId()); for (JsonElement dc : appliance.DeviceClasses) { - if (dc.getAsString().contains("com.miele.xgw3000.gateway.hdm.deviceclasses.Miele") - && !dc.getAsString().equals("com.miele.xgw3000.gateway.hdm.deviceclasses.MieleAppliance")) { - properties.put(DEVICE_CLASS, StringUtils.right(dc.getAsString(), dc.getAsString().length() - - new String("com.miele.xgw3000.gateway.hdm.deviceclasses.Miele").length())); + String dcStr = dc.getAsString(); + if (dcStr.contains(MIELE_CLASS) && !dcStr.equals(MIELE_APPLIANCE_CLASS)) { + properties.put(DEVICE_CLASS, dcStr.substring(MIELE_CLASS.length())); break; } } @@ -145,17 +146,16 @@ public class MieleApplianceDiscoveryService extends AbstractDiscoveryService imp String modelID = null; for (JsonElement dc : appliance.DeviceClasses) { - if (dc.getAsString().contains("com.miele.xgw3000.gateway.hdm.deviceclasses.Miele") - && !dc.getAsString().equals("com.miele.xgw3000.gateway.hdm.deviceclasses.MieleAppliance")) { - modelID = StringUtils.right(dc.getAsString(), dc.getAsString().length() - - new String("com.miele.xgw3000.gateway.hdm.deviceclasses.Miele").length()); + String dcStr = dc.getAsString(); + if (dcStr.contains(MIELE_CLASS) && !dcStr.equals(MIELE_APPLIANCE_CLASS)) { + modelID = dcStr.substring(MIELE_CLASS.length()); break; } } if (modelID != null) { ThingTypeUID thingTypeUID = new ThingTypeUID(BINDING_ID, - StringUtils.lowerCase(modelID.replaceAll("[^a-zA-Z0-9_]", "_"))); + modelID.replaceAll("[^a-zA-Z0-9_]", "_").toLowerCase()); if (getSupportedThingTypes().contains(thingTypeUID)) { ThingUID thingUID = new ThingUID(thingTypeUID, bridgeUID, appliance.getId()); diff --git a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleApplianceHandler.java b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleApplianceHandler.java index 8f0db9dd3..87aa75fdf 100644 --- a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleApplianceHandler.java +++ b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleApplianceHandler.java @@ -20,7 +20,7 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.miele.internal.handler.MieleBridgeHandler.DeviceClassObject; import org.openhab.binding.miele.internal.handler.MieleBridgeHandler.DeviceMetaData; import org.openhab.binding.miele.internal.handler.MieleBridgeHandler.DeviceOperation; diff --git a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleBridgeHandler.java b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleBridgeHandler.java index 730639300..6a992a125 100644 --- a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleBridgeHandler.java +++ b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/MieleBridgeHandler.java @@ -44,7 +44,7 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.core.common.NamedThreadFactory; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.ChannelUID; diff --git a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/WashingMachineChannelSelector.java b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/WashingMachineChannelSelector.java index 810a317cf..7f1e43fee 100644 --- a/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/WashingMachineChannelSelector.java +++ b/bundles/org.openhab.binding.miele/src/main/java/org/openhab/binding/miele/internal/handler/WashingMachineChannelSelector.java @@ -18,7 +18,7 @@ import java.util.Date; import java.util.Map.Entry; import java.util.TimeZone; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.miele.internal.handler.MieleBridgeHandler.DeviceMetaData; import org.openhab.core.library.types.DateTimeType; import org.openhab.core.library.types.DecimalType; diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java index 878a01d83..88138a9c0 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/ChannelState.java @@ -21,7 +21,6 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.mqtt.generic.values.TextValue; @@ -78,7 +77,7 @@ public class ChannelState implements MqttMessageSubscriber { this.channelStateUpdateListener = channelStateUpdateListener; this.channelUID = channelUID; this.cachedValue = cachedValue; - this.readOnly = StringUtils.isBlank(config.commandTopic); + this.readOnly = config.commandTopic.isBlank(); } public boolean isReadOnly() { @@ -242,7 +241,7 @@ public class ChannelState implements MqttMessageSubscriber { */ public CompletableFuture<@Nullable Void> stop() { final MqttBrokerConnection connection = this.connection; - if (connection != null && StringUtils.isNotBlank(config.stateTopic)) { + if (connection != null && !config.stateTopic.isBlank()) { return connection.unsubscribe(config.stateTopic, this).thenRun(this::internalStop); } else { internalStop(); @@ -297,7 +296,7 @@ public class ChannelState implements MqttMessageSubscriber { this.connection = connection; - if (StringUtils.isBlank(config.stateTopic)) { + if (config.stateTopic.isBlank()) { return CompletableFuture.completedFuture(null); } diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java index 3a991d947..8cc05429e 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/internal/handler/GenericMQTTThingHandler.java @@ -21,7 +21,7 @@ import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.mqtt.generic.AbstractMQTTThingHandler; @@ -164,9 +164,8 @@ public class GenericMQTTThingHandler extends AbstractMQTTThingHandler implements Value value = ValueFactory.createValueState(channelConfig, channelTypeUID.getId()); ChannelState channelState = createChannelState(channelConfig, channel.getUID(), value); channelStateByChannelUID.put(channel.getUID(), channelState); - StateDescription description = value - .createStateDescription(StringUtils.isBlank(channelConfig.commandTopic)).build() - .toStateDescription(); + StateDescription description = value.createStateDescription(channelConfig.commandTopic.isBlank()) + .build().toStateDescription(); if (description != null) { stateDescProvider.setDescription(channel.getUID(), description); } diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java index 9b5f3aab6..1e4ffa3c0 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/TextValue.java @@ -12,12 +12,13 @@ */ package org.openhab.binding.mqtt.generic.values; +import static java.util.function.Predicate.not; + import java.util.Collections; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.library.CoreItemFactory; @@ -45,7 +46,7 @@ public class TextValue extends Value { */ public TextValue(String[] states) { super(CoreItemFactory.STRING, Collections.singletonList(StringType.class)); - Set s = Stream.of(states).filter(e -> StringUtils.isNotBlank(e)).collect(Collectors.toSet()); + Set s = Stream.of(states).filter(not(String::isBlank)).collect(Collectors.toSet()); if (!s.isEmpty()) { this.states = s; } else { diff --git a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java index ff8002c07..57e593e7b 100644 --- a/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java +++ b/bundles/org.openhab.binding.mqtt.generic/src/main/java/org/openhab/binding/mqtt/generic/values/ValueFactory.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.mqtt.generic.values; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.mqtt.generic.ChannelConfig; import org.openhab.binding.mqtt.generic.internal.MqttBindingConstants; @@ -35,7 +34,7 @@ public class ValueFactory { Value value; switch (channelTypeID) { case MqttBindingConstants.STRING: - value = StringUtils.isBlank(config.allowedStates) ? new TextValue() + value = config.allowedStates.isBlank() ? new TextValue() : new TextValue(config.allowedStates.split(",")); break; case MqttBindingConstants.DATETIME: diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java index 8961fe602..f8862fc7d 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/generic/internal/MqttThingHandlerFactory.java @@ -16,7 +16,6 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.mqtt.generic.MqttChannelTypeProvider; @@ -54,8 +53,8 @@ public class MqttThingHandlerFactory extends BaseThingHandlerFactory implements } private boolean isHomeassistantDynamicType(ThingTypeUID thingTypeUID) { - return StringUtils.equals(MqttBindingConstants.BINDING_ID, thingTypeUID.getBindingId()) - && StringUtils.startsWith(thingTypeUID.getId(), MqttBindingConstants.HOMEASSISTANT_MQTT_THING.getId()); + return MqttBindingConstants.BINDING_ID.equals(thingTypeUID.getBindingId()) + && thingTypeUID.getId().startsWith(MqttBindingConstants.HOMEASSISTANT_MQTT_THING.getId()); } @Activate diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/BaseChannelConfiguration.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/BaseChannelConfiguration.java index 854de33b8..bb17b0353 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/BaseChannelConfiguration.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/BaseChannelConfiguration.java @@ -16,7 +16,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.thing.Thing; @@ -103,9 +102,9 @@ public abstract class BaseChannelConfiguration { protected @Nullable String name; protected @Nullable String sw_version; - @Nullable - public String getId() { - return StringUtils.join(identifiers, "_"); + public @Nullable String getId() { + List identifiers = this.identifiers; + return identifiers == null ? null : String.join("_", identifiers); } } diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/CChannel.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/CChannel.java index 4eca5244e..cffc7027d 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/CChannel.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/CChannel.java @@ -16,7 +16,6 @@ import java.net.URI; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ScheduledExecutorService; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.mqtt.generic.ChannelConfigBuilder; @@ -149,9 +148,9 @@ public class CChannel { public Builder stateTopic(@Nullable String state_topic, @Nullable String... templates) { this.state_topic = state_topic; - if (StringUtils.isNotBlank(state_topic)) { + if (state_topic != null && !state_topic.isBlank()) { for (String template : templates) { - if (StringUtils.isNotBlank(template)) { + if (template != null && !template.isBlank()) { this.templateIn = template; break; } @@ -204,7 +203,8 @@ public class CChannel { .withCommandTopic(command_topic).makeTrigger(trigger).build(), channelUID, valueState, channelStateUpdateListener); - if (StringUtils.isBlank(state_topic) || this.trigger) { + String localStateTopic = state_topic; + if (localStateTopic == null || localStateTopic.isBlank() || this.trigger) { type = ChannelTypeBuilder.trigger(channelTypeUID, label) .withConfigDescriptionURI(URI.create(MqttBindingConstants.CONFIG_HA_CHANNEL)).build(); } else { diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ChannelConfigurationTypeAdapterFactory.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ChannelConfigurationTypeAdapterFactory.java index 563e39fe8..5d61e981a 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ChannelConfigurationTypeAdapterFactory.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ChannelConfigurationTypeAdapterFactory.java @@ -15,7 +15,6 @@ package org.openhab.binding.mqtt.homeassistant.internal; import java.io.IOException; import java.lang.reflect.Field; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -119,7 +118,7 @@ public class ChannelConfigurationTypeAdapterFactory implements TypeAdapterFactor final String oldValue = (String) field.get(config); String newValue = oldValue; - if (StringUtils.isNotBlank(oldValue)) { + if (oldValue != null && !oldValue.isBlank()) { if (oldValue.charAt(0) == '~') { newValue = tilde + oldValue.substring(1); } else if (oldValue.charAt(oldValue.length() - 1) == '~') { diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentLock.java b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentLock.java index fb78f5235..aad866a2d 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentLock.java +++ b/bundles/org.openhab.binding.mqtt.homeassistant/src/main/java/org/openhab/binding/mqtt/homeassistant/internal/ComponentLock.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.mqtt.homeassistant.internal; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.mqtt.generic.values.OnOffValue; @@ -46,7 +45,7 @@ public class ComponentLock extends AbstractComponent properties = new HashMap<>(2, 1); properties.put(HOST_PARAMETER, device.getIdentity().getDescriptorURL().getHost()); properties.put(UDN_PARAMETER, device.getIdentity().getUdn().getIdentifierString()); @@ -97,13 +97,12 @@ public class OnkyoUpnpDiscoveryParticipant implements UpnpDiscoveryParticipant { public @Nullable ThingUID getThingUID(RemoteDevice device) { ThingUID result = null; if (isAutoDiscoveryEnabled) { - if (StringUtils.containsIgnoreCase(device.getDetails().getManufacturerDetails().getManufacturer(), - MANUFACTURER)) { - logger.debug("Manufacturer matched: search: {}, device value: {}.", MANUFACTURER, - device.getDetails().getManufacturerDetails().getManufacturer()); - if (StringUtils.containsIgnoreCase(device.getType().getType(), UPNP_DEVICE_TYPE)) { - logger.debug("Device type matched: search: {}, device value: {}.", UPNP_DEVICE_TYPE, - device.getType().getType()); + String manufacturer = device.getDetails().getManufacturerDetails().getManufacturer(); + if (manufacturer != null && manufacturer.toLowerCase().contains(MANUFACTURER.toLowerCase())) { + logger.debug("Manufacturer matched: search: {}, device value: {}.", MANUFACTURER, manufacturer); + String type = device.getType().getType(); + if (type != null && type.toLowerCase().contains(UPNP_DEVICE_TYPE.toLowerCase())) { + logger.debug("Device type matched: search: {}, device value: {}.", UPNP_DEVICE_TYPE, type); String deviceModel = device.getDetails().getModelDetails() != null ? device.getDetails().getModelDetails().getModelName() @@ -143,7 +142,7 @@ public class OnkyoUpnpDiscoveryParticipant implements UpnpDiscoveryParticipant { * @return */ private boolean isSupportedDeviceModel(final @Nullable String deviceModel) { - return StringUtils.isNotBlank(deviceModel) && Arrays.stream(OnkyoModel.values()) + return deviceModel != null && !deviceModel.isBlank() && Arrays.stream(OnkyoModel.values()) .anyMatch(model -> StringUtils.startsWithIgnoreCase(deviceModel, model.getId())); } } diff --git a/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/discovery/SocketDiscoveryService.java b/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/discovery/SocketDiscoveryService.java index 340aec98a..62eb39b16 100644 --- a/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/discovery/SocketDiscoveryService.java +++ b/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/discovery/SocketDiscoveryService.java @@ -17,7 +17,6 @@ import java.util.Collections; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.orvibo.internal.OrviboBindingConstants; import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.DiscoveryResult; @@ -102,7 +101,7 @@ public class SocketDiscoveryService extends AbstractDiscoveryService implements private DiscoveryResult createDiscoveryResult(Socket socket) { ThingUID thingUID = getUID(socket); String label = socket.getLabel(); - if (StringUtils.isBlank(label)) { + if (label == null || label.isBlank()) { label = "S20"; } return DiscoveryResultBuilder.create(thingUID).withLabel(label) diff --git a/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/handler/S20Handler.java b/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/handler/S20Handler.java index add5b3d1e..d8cdfa4b6 100644 --- a/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/handler/S20Handler.java +++ b/bundles/org.openhab.binding.orvibo/src/main/java/org/openhab/binding/orvibo/internal/handler/S20Handler.java @@ -18,7 +18,6 @@ import java.net.SocketException; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.openhab.core.library.types.OnOffType; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; @@ -98,7 +97,7 @@ public class S20Handler extends BaseThingHandler implements SocketStateListener @Override public void socketDidChangeLabel(Socket socket, String label) { - if (!StringUtils.isBlank(label)) { + if (label != null && !label.isBlank()) { logger.debug("Updating thing label to {}", label); thing.setLabel(label); } diff --git a/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairIPBridgeConfig.java b/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairIPBridgeConfig.java index 52eba89e9..28798ec6d 100644 --- a/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairIPBridgeConfig.java +++ b/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairIPBridgeConfig.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.pentair.internal.config; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; /** * Configuration parameters for IP Bridge diff --git a/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairSerialBridgeConfig.java b/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairSerialBridgeConfig.java index 4e5f4d7d0..86ada023a 100644 --- a/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairSerialBridgeConfig.java +++ b/bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/config/PentairSerialBridgeConfig.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.pentair.internal.config; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; /** * Configuration parameters for Serial Bridge diff --git a/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/PHCHelper.java b/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/PHCHelper.java index cd637b52b..f5f20a4d2 100644 --- a/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/PHCHelper.java +++ b/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/PHCHelper.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.phc.internal; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingTypeUID; import org.openhab.core.thing.ThingUID; diff --git a/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/handler/PHCBridgeHandler.java b/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/handler/PHCBridgeHandler.java index 77c1fd304..d4c0ceb14 100644 --- a/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/handler/PHCBridgeHandler.java +++ b/bundles/org.openhab.binding.phc/src/main/java/org/openhab/binding/phc/internal/handler/PHCBridgeHandler.java @@ -24,7 +24,7 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ScheduledThreadPoolExecutor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.phc.internal.PHCBindingConstants; diff --git a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/discovery/PioneerAvrDiscoveryParticipant.java b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/discovery/PioneerAvrDiscoveryParticipant.java index 95d157028..ecafae9e2 100644 --- a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/discovery/PioneerAvrDiscoveryParticipant.java +++ b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/discovery/PioneerAvrDiscoveryParticipant.java @@ -17,7 +17,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.jupnp.model.meta.RemoteDevice; import org.openhab.binding.pioneeravr.internal.PioneerAvrBindingConstants; import org.openhab.core.config.discovery.DiscoveryResult; @@ -58,7 +57,7 @@ public class PioneerAvrDiscoveryParticipant implements UpnpDiscoveryParticipant protected void activate(ComponentContext componentContext) { if (componentContext.getProperties() != null) { String autoDiscoveryPropertyValue = (String) componentContext.getProperties().get("enableAutoDiscovery"); - if (StringUtils.isNotEmpty(autoDiscoveryPropertyValue)) { + if (autoDiscoveryPropertyValue != null && !autoDiscoveryPropertyValue.isEmpty()) { isAutoDiscoveryEnabled = Boolean.valueOf(autoDiscoveryPropertyValue); } } @@ -76,8 +75,8 @@ public class PioneerAvrDiscoveryParticipant implements UpnpDiscoveryParticipant DiscoveryResult result = null; ThingUID thingUid = getThingUID(device); if (thingUid != null) { - String label = StringUtils.isEmpty(device.getDetails().getFriendlyName()) ? device.getDisplayString() - : device.getDetails().getFriendlyName(); + String friendlyName = device.getDetails().getFriendlyName(); + String label = friendlyName == null || friendlyName.isEmpty() ? device.getDisplayString() : friendlyName; Map properties = new HashMap<>(2, 1); properties.put(PioneerAvrBindingConstants.HOST_PARAMETER, device.getIdentity().getDescriptorURL().getHost()); @@ -93,15 +92,16 @@ public class PioneerAvrDiscoveryParticipant implements UpnpDiscoveryParticipant public ThingUID getThingUID(RemoteDevice device) { ThingUID result = null; if (isAutoDiscoveryEnabled) { - if (StringUtils.containsIgnoreCase(device.getDetails().getManufacturerDetails().getManufacturer(), - PioneerAvrBindingConstants.MANUFACTURER)) { + String manufacturer = device.getDetails().getManufacturerDetails().getManufacturer(); + if (manufacturer != null + && manufacturer.toLowerCase().contains(PioneerAvrBindingConstants.MANUFACTURER.toLowerCase())) { logger.debug("Manufacturer matched: search: {}, device value: {}.", - PioneerAvrBindingConstants.MANUFACTURER, - device.getDetails().getManufacturerDetails().getManufacturer()); - if (StringUtils.containsIgnoreCase(device.getType().getType(), - PioneerAvrBindingConstants.UPNP_DEVICE_TYPE)) { + PioneerAvrBindingConstants.MANUFACTURER, manufacturer); + String type = device.getType().getType(); + if (type != null + && type.toLowerCase().contains(PioneerAvrBindingConstants.UPNP_DEVICE_TYPE.toLowerCase())) { logger.debug("Device type matched: search: {}, device value: {}.", - PioneerAvrBindingConstants.UPNP_DEVICE_TYPE, device.getType().getType()); + PioneerAvrBindingConstants.UPNP_DEVICE_TYPE, type); String deviceModel = device.getDetails().getModelDetails() != null ? device.getDetails().getModelDetails().getModelName() @@ -150,7 +150,7 @@ public class PioneerAvrDiscoveryParticipant implements UpnpDiscoveryParticipant * @return */ private boolean isSupportedDeviceModel(String deviceModel, Set supportedDeviceModels) { - return StringUtils.isNotBlank(deviceModel) && supportedDeviceModels.stream() - .anyMatch(input -> StringUtils.startsWithIgnoreCase(deviceModel, input)); + return deviceModel != null && !deviceModel.isBlank() && supportedDeviceModels.stream() + .anyMatch(input -> deviceModel.toLowerCase().startsWith(input.toLowerCase())); } } diff --git a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/ParameterizedCommand.java b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/ParameterizedCommand.java index edf2fd842..8502eef1c 100644 --- a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/ParameterizedCommand.java +++ b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/ParameterizedCommand.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.pioneeravr.internal.protocol; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.pioneeravr.internal.protocol.avr.AvrCommand; import org.openhab.binding.pioneeravr.internal.protocol.avr.AvrConnectionException; @@ -72,7 +71,7 @@ public class ParameterizedCommand extends SimpleCommand { "The parameter of the command " + super.getCommand() + " must not be null."); } - if (StringUtils.isNotEmpty(parameterPattern) && !parameter.matches(parameterPattern)) { + if (parameterPattern != null && !parameterPattern.isEmpty() && !parameter.matches(parameterPattern)) { throw new AvrConnectionException("The parameter value " + parameter + " of the command " + super.getCommand() + " does not match the pattern " + parameterPattern); } diff --git a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/Response.java b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/Response.java index 238ace936..e3b64497b 100644 --- a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/Response.java +++ b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/Response.java @@ -15,7 +15,7 @@ package org.openhab.binding.pioneeravr.internal.protocol; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.pioneeravr.internal.protocol.avr.AvrConnectionException; import org.openhab.binding.pioneeravr.internal.protocol.avr.AvrResponse; @@ -41,11 +41,11 @@ public class Response implements AvrResponse { private String[] responsePrefixZone; - private String parameterPattern; + private @Nullable String parameterPattern; private Pattern[] matchPatternZone; - private ResponseType(String parameterPattern, String... responsePrefixZone) { + private ResponseType(@Nullable String parameterPattern, String... responsePrefixZone) { this.responsePrefixZone = responsePrefixZone; this.parameterPattern = parameterPattern; @@ -53,8 +53,8 @@ public class Response implements AvrResponse { for (int zoneIndex = 0; zoneIndex < responsePrefixZone.length; zoneIndex++) { String responsePrefix = responsePrefixZone[zoneIndex]; - matchPatternZone[zoneIndex] = Pattern.compile(responsePrefix + "(" - + (StringUtils.isNotEmpty(parameterPattern) ? parameterPattern : "") + ")"); + matchPatternZone[zoneIndex] = Pattern + .compile(responsePrefix + "(" + (parameterPattern == null ? "" : parameterPattern) + ")"); } } @@ -65,11 +65,11 @@ public class Response implements AvrResponse { @Override public boolean hasParameter() { - return StringUtils.isNotEmpty(parameterPattern); + return parameterPattern != null && !parameterPattern.isEmpty(); } @Override - public String getParameterPattern() { + public @Nullable String getParameterPattern() { return parameterPattern; } @@ -115,7 +115,7 @@ public class Response implements AvrResponse { private String parameter; public Response(String responseData) throws AvrConnectionException { - if (StringUtils.isEmpty(responseData)) { + if (responseData == null || responseData.isEmpty()) { throw new AvrConnectionException("responseData is empty. Cannot parse the response."); } diff --git a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/avr/AvrResponse.java b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/avr/AvrResponse.java index da90e4617..64cfd0901 100644 --- a/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/avr/AvrResponse.java +++ b/bundles/org.openhab.binding.pioneeravr/src/main/java/org/openhab/binding/pioneeravr/internal/protocol/avr/AvrResponse.java @@ -12,6 +12,7 @@ */ package org.openhab.binding.pioneeravr.internal.protocol.avr; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.pioneeravr.internal.protocol.Response.ResponseType; /** @@ -46,7 +47,7 @@ public interface AvrResponse { * * @return */ - public String getParameterPattern(); + public @Nullable String getParameterPattern(); /** * Return the zone number if the responseData matches a zone of this responseType. diff --git a/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseMessageProcessor.java b/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseMessageProcessor.java index 94660067e..3cfefd888 100644 --- a/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseMessageProcessor.java +++ b/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseMessageProcessor.java @@ -22,7 +22,7 @@ import java.util.TooManyListenersException; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.plugwise.internal.protocol.AcknowledgementMessage; diff --git a/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseUtils.java b/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseUtils.java index c58e42b9c..eb6d7e5cd 100644 --- a/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseUtils.java +++ b/bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/PlugwiseUtils.java @@ -20,8 +20,8 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Map; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.WordUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.WordUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.plugwise.internal.protocol.InformationResponseMessage; diff --git a/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/PulseaudioClient.java b/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/PulseaudioClient.java index 39fa310c2..80c61f6fa 100644 --- a/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/PulseaudioClient.java +++ b/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/PulseaudioClient.java @@ -25,7 +25,6 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.pulseaudio.internal.cli.Parser; import org.openhab.binding.pulseaudio.internal.items.AbstractAudioDeviceConfig; import org.openhab.binding.pulseaudio.internal.items.AbstractAudioDeviceConfig.State; @@ -442,7 +441,7 @@ public class PulseaudioClient { sendRawCommand(CMD_UNLOAD_MODULE + " " + combinedSink.getModule().getId()); // 2. add new combined-sink with same name and all slaves sendRawCommand(CMD_LOAD_MODULE + " " + MODULE_COMBINE_SINK + " sink_name=" + combinedSink.getPaName() - + " slaves=" + StringUtils.join(slaves, ",")); + + " slaves=" + String.join(",", slaves)); // 3. update internal data structure because the combined sink has a new number + other slaves update(); } @@ -533,7 +532,7 @@ public class PulseaudioClient { } // add new combined-sink with same name and all slaves sendRawCommand(CMD_LOAD_MODULE + " " + MODULE_COMBINE_SINK + " sink_name=" + combinedSinkName + " slaves=" - + StringUtils.join(slaves, ",")); + + String.join(",", slaves)); // update internal data structure because the combined sink is new update(); } diff --git a/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/handler/PulseaudioHandler.java b/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/handler/PulseaudioHandler.java index 357523051..1b8f1d63a 100644 --- a/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/handler/PulseaudioHandler.java +++ b/bundles/org.openhab.binding.pulseaudio/src/main/java/org/openhab/binding/pulseaudio/internal/handler/PulseaudioHandler.java @@ -23,7 +23,6 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.pulseaudio.internal.items.AbstractAudioDeviceConfig; import org.openhab.binding.pulseaudio.internal.items.Sink; import org.openhab.binding.pulseaudio.internal.items.SinkInput; @@ -244,8 +243,7 @@ public class PulseaudioHandler extends BaseThingHandler implements DeviceStatusL : new StringType("-")); } if (device instanceof Sink && ((Sink) device).isCombinedSink()) { - updateState(SLAVES_CHANNEL, - new StringType(StringUtils.join(((Sink) device).getCombinedSinkNames(), ","))); + updateState(SLAVES_CHANNEL, new StringType(String.join(",", ((Sink) device).getCombinedSinkNames()))); } } } diff --git a/bundles/org.openhab.binding.rme/src/main/java/org/openhab/binding/rme/internal/handler/RMEThingHandler.java b/bundles/org.openhab.binding.rme/src/main/java/org/openhab/binding/rme/internal/handler/RMEThingHandler.java index 09b7fe731..a95dfd7d1 100644 --- a/bundles/org.openhab.binding.rme/src/main/java/org/openhab/binding/rme/internal/handler/RMEThingHandler.java +++ b/bundles/org.openhab.binding.rme/src/main/java/org/openhab/binding/rme/internal/handler/RMEThingHandler.java @@ -15,7 +15,7 @@ package org.openhab.binding.rme.internal.handler; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.rme.internal.RMEBindingConstants.DataField; import org.openhab.core.io.transport.serial.SerialPortManager; import org.openhab.core.library.types.DecimalType; diff --git a/bundles/org.openhab.binding.robonect/src/main/java/org/openhab/binding/robonect/internal/RobonectClient.java b/bundles/org.openhab.binding.robonect/src/main/java/org/openhab/binding/robonect/internal/RobonectClient.java index c8582ae05..1f3f0e6b9 100644 --- a/bundles/org.openhab.binding.robonect/src/main/java/org/openhab/binding/robonect/internal/RobonectClient.java +++ b/bundles/org.openhab.binding.robonect/src/main/java/org/openhab/binding/robonect/internal/RobonectClient.java @@ -18,7 +18,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.Authentication; import org.eclipse.jetty.client.api.AuthenticationStore; @@ -142,14 +141,17 @@ public class RobonectClient { this.value = value; } + @Override public URI getURI() { return this.uri; } + @Override public void apply(Request request) { request.header(this.header, this.value); } + @Override public String toString() { return String.format("Basic authentication result for %s", this.uri); } @@ -291,7 +293,7 @@ public class RobonectClient { String responseString = null; // jetty uses UTF-8 as default encoding. However, HTTP 1.1 specifies ISO_8859_1 - if (StringUtils.isBlank(response.getEncoding())) { + if (response.getEncoding() == null || response.getEncoding().isBlank()) { responseString = new String(response.getContent(), StandardCharsets.ISO_8859_1); } else { // currently v0.9e Robonect does not specifiy the encoding. But if later versions will diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDeviceDiscoveryService.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDeviceDiscoveryService.java index bb418b666..dc418c9c5 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDeviceDiscoveryService.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDeviceDiscoveryService.java @@ -16,7 +16,7 @@ import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.russound.internal.RussoundHandlerFactory; import org.openhab.binding.russound.internal.net.SocketChannelSession; import org.openhab.binding.russound.internal.net.SocketSession; @@ -148,7 +148,7 @@ public class RioSystemDeviceDiscoveryService extends AbstractDiscoveryService { private void discoverControllers() { for (int c = 1; c < 7; c++) { final String type = sendAndGet("GET C[" + c + "].type", RSP_CONTROLLERNOTIFICATION, 3); - if (StringUtils.isNotEmpty(type)) { + if (type != null && !type.isEmpty()) { logger.debug("Controller #{} found - {}", c, type); final ThingUID thingUID = new ThingUID(RioConstants.BRIDGE_TYPE_CONTROLLER, @@ -172,7 +172,7 @@ public class RioSystemDeviceDiscoveryService extends AbstractDiscoveryService { private void discoverSources() { for (int s = 1; s < 9; s++) { final String type = sendAndGet("GET S[" + s + "].type", RSP_SRCNOTIFICATION, 3); - if (StringUtils.isNotEmpty(type)) { + if (type != null && !type.isEmpty()) { final String name = sendAndGet("GET S[" + s + "].name", RSP_SRCNOTIFICATION, 3); logger.debug("Source #{} - {}/{}", s, type, name); @@ -181,8 +181,8 @@ public class RioSystemDeviceDiscoveryService extends AbstractDiscoveryService { final DiscoveryResult discoveryResult = DiscoveryResultBuilder.create(thingUID) .withProperty(RioSourceConfig.SOURCE, s).withBridge(sysHandler.getThing().getUID()) - .withLabel((StringUtils.isEmpty(name) || name.equalsIgnoreCase("null") ? "Source" : name) + " (" - + s + ")") + .withLabel((name == null || name.isEmpty() || name.equalsIgnoreCase("null") ? "Source" : name) + + " (" + s + ")") .build(); thingDiscovered(discoveryResult); } @@ -207,7 +207,7 @@ public class RioSystemDeviceDiscoveryService extends AbstractDiscoveryService { } for (int z = 1; z < 9; z++) { final String name = sendAndGet("GET C[" + c + "].Z[" + z + "].name", RSP_ZONENOTIFICATION, 4); - if (StringUtils.isNotEmpty(name)) { + if (name != null && !name.isEmpty()) { logger.debug("Controller #{}, Zone #{} found - {}", c, z, name); final ThingUID thingUID = new ThingUID(RioConstants.THING_TYPE_ZONE, controllerUID, String.valueOf(z)); @@ -232,8 +232,8 @@ public class RioSystemDeviceDiscoveryService extends AbstractDiscoveryService { * @throws IllegalArgumentException if message is null or empty, if the pattern is null * @throws IllegalArgumentException if groupNum is less than 0 */ - private String sendAndGet(String message, Pattern respPattern, int groupNum) { - if (StringUtils.isEmpty(message)) { + private @Nullable String sendAndGet(String message, Pattern respPattern, int groupNum) { + if (message == null || message.isEmpty()) { throw new IllegalArgumentException("message cannot be a null or empty string"); } if (respPattern == null) { diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDiscovery.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDiscovery.java index c1efcf390..a34f0b54b 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDiscovery.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/discovery/RioSystemDiscovery.java @@ -26,7 +26,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.apache.commons.net.util.SubnetUtils; import org.openhab.binding.russound.internal.net.SocketChannelSession; import org.openhab.binding.russound.internal.net.SocketSession; @@ -152,7 +151,7 @@ public class RioSystemDiscovery extends AbstractDiscoveryService { * @param ipAddress a possibly null, possibly empty ip address (null/empty addresses will be ignored) */ private void scanAddress(String ipAddress) { - if (StringUtils.isEmpty(ipAddress)) { + if (ipAddress == null || ipAddress.isEmpty()) { return; } @@ -175,7 +174,7 @@ public class RioSystemDiscovery extends AbstractDiscoveryService { continue; } final String type = resp.substring(13, resp.length() - 1); - if (!StringUtils.isBlank(type)) { + if (!type.isBlank()) { logger.debug("Found a RIO type #{}", type); addResult(ipAddress, type); break; @@ -202,10 +201,10 @@ public class RioSystemDiscovery extends AbstractDiscoveryService { * @throws IllegalArgumentException if ipaddress or type is null or empty */ private void addResult(String ipAddress, String type) { - if (StringUtils.isEmpty(ipAddress)) { + if (ipAddress == null || ipAddress.isEmpty()) { throw new IllegalArgumentException("ipAddress cannot be null or empty"); } - if (StringUtils.isEmpty(type)) { + if (type == null || type.isEmpty()) { throw new IllegalArgumentException("type cannot be null or empty"); } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractBridgeHandler.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractBridgeHandler.java index 3cc3cf9ff..2790d065b 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractBridgeHandler.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractBridgeHandler.java @@ -15,7 +15,6 @@ package org.openhab.binding.russound.internal.rio; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.core.library.types.StringType; @@ -165,7 +164,7 @@ public abstract class AbstractBridgeHandler exten if (clazz == null) { throw new IllegalArgumentException("clazz cannot be null"); } - if (StringUtils.isEmpty(channelId)) { + if (channelId == null || channelId.isEmpty()) { throw new IllegalArgumentException("channelId cannot be null or empty"); } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractRioHandlerCallback.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractRioHandlerCallback.java index b7af1c4b6..ee9339f95 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractRioHandlerCallback.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/AbstractRioHandlerCallback.java @@ -14,7 +14,6 @@ package org.openhab.binding.russound.internal.rio; import java.util.concurrent.CopyOnWriteArrayList; -import org.apache.commons.lang.StringUtils; import org.openhab.core.types.State; /** @@ -56,7 +55,7 @@ public abstract class AbstractRioHandlerCallback implements RioHandlerCallback { * @throws IllegalArgumentException if state is null */ protected void fireStateUpdated(String channelId, State state) { - if (StringUtils.isEmpty(channelId)) { + if (channelId == null || channelId.isEmpty()) { throw new IllegalArgumentException("channelId cannot be null or empty)"); } if (state == null) { diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioPresetsProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioPresetsProtocol.java index 20116794f..0b9b5cfae 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioPresetsProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioPresetsProtocol.java @@ -14,13 +14,14 @@ package org.openhab.binding.russound.internal.rio; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.binding.russound.internal.rio.models.GsonUtilities; @@ -258,7 +259,7 @@ public class RioPresetsProtocol extends AbstractRioProtocol { * @throws IllegalArgumentException if source is < 1 or > 8 * @throws IllegalArgumentException if presetJson contains more than one preset */ - public void setZonePresets(int controller, int zone, int source, String presetJson) { + public void setZonePresets(int controller, int zone, int source, @Nullable String presetJson) { if (controller < 1 || controller > 6) { throw new IllegalArgumentException("Controller must be between 1 and 6"); } @@ -271,7 +272,7 @@ public class RioPresetsProtocol extends AbstractRioProtocol { throw new IllegalArgumentException("Source must be between 1 and 8"); } - if (StringUtils.isEmpty(presetJson)) { + if (presetJson == null || presetJson.isEmpty()) { return; } @@ -299,11 +300,11 @@ public class RioPresetsProtocol extends AbstractRioProtocol { // re-retrieve to see if the save/delete worked (saving on a zone that's off - valid won't be set to // true) - if (!StringUtils.equals(myPreset.getName(), presetName) || myPreset.isValid() != presetValid) { + if (!Objects.equals(myPreset.getName(), presetName) || myPreset.isValid() != presetValid) { myPreset.setName(presetName); myPreset.setValid(presetValid); if (presetValid) { - if (StringUtils.isEmpty(presetName)) { + if (presetName == null || presetName.isEmpty()) { sendCommand("EVENT C[" + controller + "].Z[" + zone + "]!savePreset " + presetId); } else { sendCommand("EVENT C[" + controller + "].Z[" + zone + "]!savePreset \"" + presetName @@ -438,8 +439,8 @@ public class RioPresetsProtocol extends AbstractRioProtocol { * @param a possibly null, possibly empty response */ @Override - public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + public void responseReceived(@Nullable String response) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioSystemFavoritesProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioSystemFavoritesProtocol.java index 3fa4dba70..cea05bdb6 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioSystemFavoritesProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/RioSystemFavoritesProtocol.java @@ -14,13 +14,14 @@ package org.openhab.binding.russound.internal.rio; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.binding.russound.internal.rio.models.GsonUtilities; @@ -199,7 +200,7 @@ public class RioSystemFavoritesProtocol extends AbstractRioProtocol { * @throws IllegalArgumentException if controller is < 1 or > 6 * @throws IllegalArgumentException if zone is < 1 or > 8 */ - public void setSystemFavorites(int controller, int zone, String favJson) { + public void setSystemFavorites(int controller, int zone, @Nullable String favJson) { if (controller < 1 || controller > 6) { throw new IllegalArgumentException("Controller must be between 1 and 6"); } @@ -208,7 +209,7 @@ public class RioSystemFavoritesProtocol extends AbstractRioProtocol { throw new IllegalArgumentException("Zone must be between 1 and 8"); } - if (StringUtils.isEmpty(favJson)) { + if (favJson == null || favJson.isEmpty()) { return; } @@ -242,7 +243,7 @@ public class RioSystemFavoritesProtocol extends AbstractRioProtocol { } else { sendCommand("EVENT C[" + controller + "].Z[" + zone + "]!deleteSystemFavorite " + favId); } - } else if (!StringUtils.equals(myFav.getName(), favName)) { + } else if (!Objects.equals(myFav.getName(), favName)) { myFav.setName(favName); sendCommand("SET System.favorite[" + favId + "]." + FAV_NAME + "=\"" + favName + "\""); } @@ -311,8 +312,8 @@ public class RioSystemFavoritesProtocol extends AbstractRioProtocol { * @param a possibly null, possibly empty response */ @Override - public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + public void responseReceived(@Nullable String response) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/StatefulHandlerCallback.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/StatefulHandlerCallback.java index e34fc6d80..e68159458 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/StatefulHandlerCallback.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/StatefulHandlerCallback.java @@ -17,7 +17,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.lang.StringUtils; import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.types.State; @@ -89,7 +88,7 @@ public class StatefulHandlerCallback implements RioHandlerCallback { */ @Override public void stateChanged(String channelId, State newState) { - if (StringUtils.isEmpty(channelId)) { + if (channelId == null || channelId.isEmpty()) { return; } @@ -117,7 +116,7 @@ public class StatefulHandlerCallback implements RioHandlerCallback { * @param channelId the channel id to remove state */ public void removeState(String channelId) { - if (StringUtils.isEmpty(channelId)) { + if (channelId == null || channelId.isEmpty()) { return; } state.remove(channelId); diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/controller/RioControllerProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/controller/RioControllerProtocol.java index e3a006ce9..2913ef687 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/controller/RioControllerProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/controller/RioControllerProtocol.java @@ -15,7 +15,7 @@ package org.openhab.binding.russound.internal.rio.controller; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.binding.russound.internal.rio.AbstractRioProtocol; @@ -155,8 +155,8 @@ class RioControllerProtocol extends AbstractRioProtocol { * @param a possibly null, possibly empty response */ @Override - public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + public void responseReceived(@Nullable String response) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioBank.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioBank.java index 345b5f7be..dfc7eba0d 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioBank.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioBank.java @@ -14,7 +14,7 @@ package org.openhab.binding.russound.internal.rio.models; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; /** * Simple model of a RIO Bank and it's attributes. Please note this class is used to serialize/deserialize to JSON. @@ -50,12 +50,12 @@ public class RioBank { * @param name a possibly null, possibly empty bank name (null or empty will result in a bank name of "Bank "+ id) * @throws IllegalArgumentException if id is < 1 or > 6 */ - public RioBank(int id, String name) { + public RioBank(int id, @Nullable String name) { if (id < 1 || id > 6) { throw new IllegalArgumentException("Bank ID can only be between 1 and 6"); } this.id = id; - this.name.set(StringUtils.isEmpty(name) ? "Bank " + id : name); + this.name.set(name == null || name.isEmpty() ? "Bank " + id : name); } /** @@ -81,7 +81,7 @@ public class RioBank { * * @param bankName a possibly null, possibly empty bank name */ - public void setName(String bankName) { - name.set(StringUtils.isEmpty(bankName) ? "Bank " + getId() : bankName); + public void setName(@Nullable String bankName) { + name.set(bankName == null || bankName.isEmpty() ? "Bank " + getId() : bankName); } } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioFavorite.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioFavorite.java index cc982e4e8..53d3548ba 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioFavorite.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioFavorite.java @@ -15,7 +15,7 @@ package org.openhab.binding.russound.internal.rio.models; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; /** * Simple model of a RIO Favorite (both system and zone) and it's attributes. Please note this class is used to @@ -59,18 +59,14 @@ public class RioFavorite { * @param name a possibly null, possibly empty favorite name * @throws IllegalArgumentException if id < 1 or > 32 */ - public RioFavorite(int id, boolean isValid, String name) { + public RioFavorite(int id, boolean isValid, @Nullable String name) { if (id < 1 || id > 32) { throw new IllegalArgumentException("Favorite ID must be between 1 and 32"); } - if (StringUtils.isEmpty(name)) { - name = "Favorite " + id; - } - this.id = id; this.valid.set(isValid); - this.name.set(name); + this.name.set(name == null || name.isEmpty() ? "Favorite " + id : name); } /** @@ -105,8 +101,8 @@ public class RioFavorite { * * @param favName a possibly null, possibly empty favorite name */ - public void setName(String favName) { - name.set(StringUtils.isEmpty(favName) ? "Favorite " + getId() : favName); + public void setName(@Nullable String favName) { + name.set(favName == null || favName.isEmpty() ? "Favorite " + getId() : favName); } /** diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioPreset.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioPreset.java index a6820696b..96d7b8f25 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioPreset.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/models/RioPreset.java @@ -15,7 +15,7 @@ package org.openhab.binding.russound.internal.rio.models; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; /** * Simple model of a RIO Preset and it's attributes. Please note this class is used to @@ -59,18 +59,14 @@ public class RioPreset { * @param name a possibly null, possibly empty preset name * @throws IllegalArgumentException if id < 1 or > 32 */ - public RioPreset(int id, boolean valid, String name) { + public RioPreset(int id, boolean valid, @Nullable String name) { if (id < 1 || id > 36) { throw new IllegalArgumentException("Preset ID can only be between 1 and 36"); } - if (StringUtils.isEmpty(name)) { - name = "Preset " + id; - } - this.id = id; this.valid.set(valid); - this.name.set(name); + this.name.set(name == null || name.isEmpty() ? "Preset " + id : name); } /** @@ -123,8 +119,8 @@ public class RioPreset { * * @param presetName a possibly null, possibly empty preset name */ - public void setName(String presetName) { - name.set(StringUtils.isEmpty(presetName) ? "Preset " + getId() : presetName); + public void setName(@Nullable String presetName) { + name.set(presetName == null || presetName.isEmpty() ? "Preset " + getId() : presetName); } /** diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceHandler.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceHandler.java index 2ab342eb3..5ca7dc53d 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceHandler.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceHandler.java @@ -16,7 +16,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.rio.AbstractRioHandlerCallback; import org.openhab.binding.russound.internal.rio.AbstractThingHandler; @@ -84,7 +83,7 @@ public class RioSourceHandler extends AbstractThingHandler im @Override public String getName() { final String name = sourceName.get(); - return StringUtils.isEmpty(name) ? ("Source " + getId()) : name; + return name == null || name.isEmpty() ? "Source " + getId() : name; } /** diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceProtocol.java index 4f5b02969..755f987db 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/source/RioSourceProtocol.java @@ -15,14 +15,14 @@ package org.openhab.binding.russound.internal.rio.source; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.NullArgumentException; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; @@ -367,7 +367,7 @@ class RioSourceProtocol extends AbstractRioProtocol { */ Runnable setBanks(String bankJson) { // If null or empty - simply return a do nothing runnable - if (StringUtils.isEmpty(bankJson)) { + if (bankJson == null || bankJson.isEmpty()) { return () -> { }; } @@ -387,7 +387,7 @@ class RioSourceProtocol extends AbstractRioProtocol { } else { final RioBank myBank = banks[bankId - 1]; - if (!StringUtils.equals(myBank.getName(), bank.getName())) { + if (!Objects.equals(myBank.getName(), bank.getName())) { myBank.setName(bank.getName()); sendCommand( "SET S[" + source + "].B[" + bankId + "]." + BANK_NAME + "=\"" + bank.getName() + "\""); @@ -431,8 +431,8 @@ class RioSourceProtocol extends AbstractRioProtocol { * @throws IllegalArgumentException if channelID is null or empty */ private void handleMMChange(String channelId, String value) { - if (StringUtils.isEmpty(channelId)) { - throw new NullArgumentException("channelId cannot be null or empty"); + if (channelId == null || channelId.isEmpty()) { + throw new IllegalArgumentException("channelId cannot be null or empty"); } final AtomicInteger ai = mmSeqNbrs.get(channelId); @@ -688,8 +688,8 @@ class RioSourceProtocol extends AbstractRioProtocol { * @param a possibly null, possibly empty response */ @Override - public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + public void responseReceived(@Nullable String response) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/system/RioSystemProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/system/RioSystemProtocol.java index 2badcb8f5..edd990e1a 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/system/RioSystemProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/system/RioSystemProtocol.java @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.binding.russound.internal.rio.AbstractRioProtocol; @@ -245,8 +245,8 @@ class RioSystemProtocol extends AbstractRioProtocol { * @param a possibly null, possibly empty response */ @Override - public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + public void responseReceived(@Nullable String response) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneHandler.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneHandler.java index 3fcaa5e7f..23832a19d 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneHandler.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneHandler.java @@ -16,7 +16,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.rio.AbstractBridgeHandler; import org.openhab.binding.russound.internal.rio.AbstractRioHandlerCallback; @@ -108,7 +107,7 @@ public class RioZoneHandler extends AbstractThingHandler @Override public String getName() { final String name = zoneName.get(); - return StringUtils.isEmpty(name) ? ("Zone " + getId()) : name; + return name == null || name.isEmpty() ? "Zone " + getId() : name; } /** diff --git a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneProtocol.java b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneProtocol.java index 02e85516e..5749f19b4 100644 --- a/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneProtocol.java +++ b/bundles/org.openhab.binding.russound/src/main/java/org/openhab/binding/russound/internal/rio/zone/RioZoneProtocol.java @@ -14,11 +14,11 @@ package org.openhab.binding.russound.internal.rio.zone; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.russound.internal.net.SocketSession; import org.openhab.binding.russound.internal.net.SocketSessionListener; import org.openhab.binding.russound.internal.rio.AbstractRioProtocol; @@ -529,7 +529,7 @@ class RioZoneProtocol extends AbstractRioProtocol * @return a non-null {@link Runnable} that should be run after the call */ Runnable setZoneFavorites(String favJson) { - if (StringUtils.isEmpty(favJson)) { + if (favJson.isEmpty()) { return () -> { }; } @@ -550,7 +550,7 @@ class RioZoneProtocol extends AbstractRioProtocol final boolean favValid = fav.isValid(); final String favName = fav.getName(); - if (!StringUtils.equals(myFav.getName(), favName) || myFav.isValid() != favValid) { + if (!Objects.equals(myFav.getName(), favName) || myFav.isValid() != favValid) { myFav.setName(favName); myFav.setValid(favValid); if (favValid) { @@ -923,7 +923,7 @@ class RioZoneProtocol extends AbstractRioProtocol */ @Override public void responseReceived(String response) { - if (StringUtils.isEmpty(response)) { + if (response == null || response.isEmpty()) { return; } diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/command/ControlCommand.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/command/ControlCommand.java index c6d449869..bf5a85eda 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/command/ControlCommand.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/command/ControlCommand.java @@ -14,7 +14,6 @@ package org.openhab.binding.satel.internal.command; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.satel.internal.protocol.SatelMessage; -import org.openhab.binding.satel.internal.util.StringUtils; /** * Base class for all commands that return result code in the response. @@ -59,7 +58,7 @@ public abstract class ControlCommand extends SatelCommandBase { } protected static byte[] userCodeToBytes(String userCode) { - if (StringUtils.isEmpty(userCode)) { + if (userCode.isEmpty()) { throw new IllegalArgumentException("User code is empty"); } if (userCode.length() > 8) { diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/Ethm1Config.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/Ethm1Config.java index bb7ff9933..3df0f3e7c 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/Ethm1Config.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/Ethm1Config.java @@ -25,7 +25,7 @@ public class Ethm1Config extends SatelBridgeConfig { public static final String HOST = "host"; - private @Nullable String host; + private String host = ""; private int port; private @Nullable String encryptionKey; @@ -33,8 +33,7 @@ public class Ethm1Config extends SatelBridgeConfig { * @return IP or hostname of the bridge */ public String getHost() { - final String host = this.host; - return host == null ? "" : host; + return host; } /** diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/IntRSConfig.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/IntRSConfig.java index 2b92a2b09..d785d4020 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/IntRSConfig.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/config/IntRSConfig.java @@ -13,7 +13,6 @@ package org.openhab.binding.satel.internal.config; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; /** * The {@link IntRSConfig} contains configuration values for Satel INT-RS bridge. @@ -25,12 +24,12 @@ public class IntRSConfig extends SatelBridgeConfig { public static final String PORT = "port"; - private @Nullable String port; + private String port = ""; /** * @return serial port to which the module is connected */ - public @Nullable String getPort() { + public String getPort() { return port; } } diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/Ethm1BridgeHandler.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/Ethm1BridgeHandler.java index 2d795d6c7..9644f0b2a 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/Ethm1BridgeHandler.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/Ethm1BridgeHandler.java @@ -23,7 +23,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.satel.internal.config.Ethm1Config; import org.openhab.binding.satel.internal.protocol.Ethm1Module; import org.openhab.binding.satel.internal.protocol.SatelModule; -import org.openhab.binding.satel.internal.util.StringUtils; import org.openhab.core.config.core.status.ConfigStatusMessage; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.ThingStatus; @@ -54,7 +53,7 @@ public class Ethm1BridgeHandler extends SatelBridgeHandler { logger.debug("Initializing handler"); Ethm1Config config = getConfigAs(Ethm1Config.class); - if (StringUtils.isNotBlank(config.getHost())) { + if (!config.getHost().isBlank()) { SatelModule satelModule = new Ethm1Module(config.getHost(), config.getPort(), config.getTimeout(), config.getEncryptionKey(), config.hasExtCommandsSupport()); super.initialize(satelModule); @@ -71,7 +70,7 @@ public class Ethm1BridgeHandler extends SatelBridgeHandler { Collection configStatusMessages; // Check whether an IP address is provided - if (StringUtils.isBlank(host)) { + if (host.isBlank()) { configStatusMessages = Collections.singletonList(ConfigStatusMessage.Builder.error(HOST) .withMessageKeySuffix("hostEmpty").withArguments(HOST).build()); } else { diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/IntRSBridgeHandler.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/IntRSBridgeHandler.java index 0718a3234..2489f589d 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/IntRSBridgeHandler.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/IntRSBridgeHandler.java @@ -23,7 +23,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.satel.internal.config.IntRSConfig; import org.openhab.binding.satel.internal.protocol.IntRSModule; import org.openhab.binding.satel.internal.protocol.SatelModule; -import org.openhab.binding.satel.internal.util.StringUtils; import org.openhab.core.config.core.status.ConfigStatusMessage; import org.openhab.core.io.transport.serial.SerialPortManager; import org.openhab.core.thing.Bridge; @@ -59,7 +58,7 @@ public class IntRSBridgeHandler extends SatelBridgeHandler { final IntRSConfig config = getConfigAs(IntRSConfig.class); final String port = config.getPort(); - if (port != null && StringUtils.isNotBlank(port)) { + if (!port.isBlank()) { SatelModule satelModule = new IntRSModule(port, serialPortManager, config.getTimeout(), config.hasExtCommandsSupport()); super.initialize(satelModule); @@ -76,7 +75,7 @@ public class IntRSBridgeHandler extends SatelBridgeHandler { Collection configStatusMessages; // Check whether a serial port is provided - if (StringUtils.isBlank(port)) { + if (port.isBlank()) { configStatusMessages = Collections.singletonList(ConfigStatusMessage.Builder.error(PORT) .withMessageKeySuffix("portEmpty").withArguments(PORT).build()); } else { diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelBridgeHandler.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelBridgeHandler.java index f06ba231c..aca68ab2a 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelBridgeHandler.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelBridgeHandler.java @@ -26,7 +26,6 @@ import org.openhab.binding.satel.internal.event.ConnectionStatusEvent; import org.openhab.binding.satel.internal.event.SatelEventListener; import org.openhab.binding.satel.internal.protocol.SatelModule; import org.openhab.binding.satel.internal.types.IntegraType; -import org.openhab.binding.satel.internal.util.StringUtils; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.ThingStatus; @@ -164,7 +163,7 @@ public abstract class SatelBridgeHandler extends ConfigStatusBridgeHandler imple * @return current user code, either from the configuration or set later using {@link #setUserCode(String)} */ public String getUserCode() { - if (StringUtils.isNotEmpty(userCodeOverride)) { + if (!userCodeOverride.isEmpty()) { return userCodeOverride; } else { return config.getUserCode(); diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelStateThingHandler.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelStateThingHandler.java index 19eedacd0..704b4452c 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelStateThingHandler.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelStateThingHandler.java @@ -25,7 +25,6 @@ import org.openhab.binding.satel.internal.event.ConnectionStatusEvent; import org.openhab.binding.satel.internal.event.IntegraStateEvent; import org.openhab.binding.satel.internal.event.NewStatesEvent; import org.openhab.binding.satel.internal.types.StateType; -import org.openhab.binding.satel.internal.util.StringUtils; import org.openhab.core.thing.Channel; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; @@ -59,7 +58,7 @@ public abstract class SatelStateThingHandler extends SatelThingHandler { this.requiresRefresh.set(true); } else { withBridgeHandlerPresent(bridgeHandler -> { - if (StringUtils.isEmpty(bridgeHandler.getUserCode())) { + if (bridgeHandler.getUserCode().isEmpty()) { logger.info("Cannot control devices without providing valid user code. Command has not been sent."); } else { convertCommand(channelUID, command) diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/protocol/Ethm1Module.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/protocol/Ethm1Module.java index 457f08e86..074d92cbe 100644 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/protocol/Ethm1Module.java +++ b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/protocol/Ethm1Module.java @@ -23,7 +23,6 @@ import java.net.SocketTimeoutException; import java.util.Random; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.binding.satel.internal.util.StringUtils; import org.openhab.core.util.HexUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,17 +66,17 @@ public class Ethm1Module extends SatelModule { @Override protected CommunicationChannel connect() throws ConnectionFailureException { - logger.info("Connecting to ETHM-1 module at {}:{}", this.host, this.port); + logger.info("Connecting to ETHM-1 module at {}:{}", host, port); try { Socket socket = new Socket(); - socket.connect(new InetSocketAddress(this.host, this.port), this.getTimeout()); + socket.connect(new InetSocketAddress(host, port), this.getTimeout()); logger.info("ETHM-1 module connected successfully"); - if (StringUtils.isBlank(this.encryptionKey)) { + if (encryptionKey.isBlank()) { return new TCPCommunicationChannel(socket); } else { - return new EncryptedCommunicationChannel(socket, this.encryptionKey); + return new EncryptedCommunicationChannel(socket, encryptionKey); } } catch (SocketTimeoutException e) { throw new ConnectionFailureException("Connection timeout", e); diff --git a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/util/StringUtils.java b/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/util/StringUtils.java deleted file mode 100644 index 066163286..000000000 --- a/bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/util/StringUtils.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) 2010-2021 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.satel.internal.util; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; - -/** - * Replacement class for Apache's StringUtils. - * - * @author Krzysztof Goworek - Initial contribution - * - */ -@NonNullByDefault -public class StringUtils { - - /** - * Checks if a string is empty or null. - * - * @param str the string to check - * @return true if given string is empty or null - */ - public static boolean isEmpty(@Nullable String str) { - return str == null || str.isEmpty(); - } - - /** - * Checks if a string is not empty and not null. - * - * @param str the string to check - * @return true if given string is not empty and not null - */ - public static boolean isNotEmpty(@Nullable String str) { - return !isEmpty(str); - } - - /** - * Checks if a string is null or empty or all characters are whitespace. - * - * @param str the string to check - * @return true if given string is blank - */ - public static boolean isBlank(@Nullable String str) { - return str == null || str.isBlank(); - } - - /** - * Checks if a string is not null, not empty and contains at least one non-whitespace character. - * - * @param str the string to check - * @return true if given string is not blank - */ - public static boolean isNotBlank(@Nullable String str) { - return !isBlank(str); - } -} diff --git a/bundles/org.openhab.binding.satel/src/test/java/org/openhab/binding/satel/internal/util/StringUtilsTest.java b/bundles/org.openhab.binding.satel/src/test/java/org/openhab/binding/satel/internal/util/StringUtilsTest.java deleted file mode 100644 index 4d35c367b..000000000 --- a/bundles/org.openhab.binding.satel/src/test/java/org/openhab/binding/satel/internal/util/StringUtilsTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2010-2021 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.satel.internal.util; - -import static org.junit.jupiter.api.Assertions.*; - -import org.junit.jupiter.api.Test; - -/** - * @author Krzysztof Goworek - Initial contribution - */ -public class StringUtilsTest { - - @Test - public void testIsEmpty() { - assertFalse(StringUtils.isEmpty("foobar")); - assertFalse(StringUtils.isEmpty(" ")); - assertTrue(StringUtils.isEmpty("")); - assertTrue(StringUtils.isEmpty(null)); - } - - @Test - public void testIsNotEmpty() { - assertTrue(StringUtils.isNotEmpty("foobar")); - assertTrue(StringUtils.isNotEmpty(" ")); - assertFalse(StringUtils.isNotEmpty("")); - assertFalse(StringUtils.isNotEmpty(null)); - } - - @Test - public void testIsBlank() { - assertFalse(StringUtils.isBlank("foobar")); - assertTrue(StringUtils.isBlank(" ")); - assertTrue(StringUtils.isBlank("")); - assertTrue(StringUtils.isBlank(null)); - } - - @Test - public void testIsNotBlank() { - assertTrue(StringUtils.isNotBlank("foobar")); - assertFalse(StringUtils.isNotBlank(" ")); - assertFalse(StringUtils.isNotBlank("")); - assertFalse(StringUtils.isNotBlank(null)); - } -} diff --git a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/handler/SensiboSkyHandler.java b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/handler/SensiboSkyHandler.java index 910eae9dd..9fb8b60a9 100644 --- a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/handler/SensiboSkyHandler.java +++ b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/handler/SensiboSkyHandler.java @@ -31,10 +31,10 @@ import javax.measure.Unit; import javax.measure.UnitConverter; import javax.measure.quantity.Temperature; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.WordUtils; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.apache.commons.lang3.text.WordUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.sensibo.internal.CallbackChannelsTypeProvider; diff --git a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboModel.java b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboModel.java index d8bc7bb1b..0311311bb 100644 --- a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboModel.java +++ b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboModel.java @@ -16,7 +16,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; /** diff --git a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboSky.java b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboSky.java index 8c346a6ff..f94bec4c7 100644 --- a/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboSky.java +++ b/bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/model/SensiboSky.java @@ -22,7 +22,7 @@ import java.util.Optional; import javax.measure.Unit; import javax.measure.quantity.Temperature; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.sensibo.internal.SensiboTemperatureUnitConverter; import org.openhab.binding.sensibo.internal.dto.poddetails.ModeCapabilityDTO; diff --git a/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/config/SleepIQCloudConfiguration.java b/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/config/SleepIQCloudConfiguration.java index cd3820326..a298ea412 100644 --- a/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/config/SleepIQCloudConfiguration.java +++ b/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/config/SleepIQCloudConfiguration.java @@ -12,17 +12,20 @@ */ package org.openhab.binding.sleepiq.internal.config; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * Configuration class for the SleepIQ cloud. * * @author Gregory Moyer - Initial contribution */ +@NonNullByDefault public class SleepIQCloudConfiguration { public static final String USERNAME = "username"; public static final String PASSWORD = "password"; public static final String POLLING_INTERVAL = "pollingInterval"; - public String username; - public String password; + public String username = ""; + public String password = ""; public int pollingInterval; } diff --git a/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/handler/SleepIQCloudHandler.java b/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/handler/SleepIQCloudHandler.java index 3d50c1b3b..1b8a4bf55 100644 --- a/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/handler/SleepIQCloudHandler.java +++ b/bundles/org.openhab.binding.sleepiq/src/main/java/org/openhab/binding/sleepiq/internal/handler/SleepIQCloudHandler.java @@ -25,7 +25,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.sleepiq.api.Configuration; import org.openhab.binding.sleepiq.api.LoginException; import org.openhab.binding.sleepiq.api.SleepIQ; @@ -214,12 +213,12 @@ public class SleepIQCloudHandler extends ConfigStatusBridgeHandler { String username = config.username; String password = config.password; - if (StringUtils.isEmpty(username)) { + if (username.isEmpty()) { configStatusMessages.add(ConfigStatusMessage.Builder.error(USERNAME) .withMessageKeySuffix(SleepIQConfigStatusMessage.USERNAME_MISSING).withArguments(USERNAME).build()); } - if (StringUtils.isEmpty(password)) { + if (password.isEmpty()) { configStatusMessages.add(ConfigStatusMessage.Builder.error(PASSWORD) .withMessageKeySuffix(SleepIQConfigStatusMessage.PASSWORD_MISSING).withArguments(PASSWORD).build()); } diff --git a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/SmartMeterHandler.java b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/SmartMeterHandler.java index 5fdfb36eb..d68872dc0 100644 --- a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/SmartMeterHandler.java +++ b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/SmartMeterHandler.java @@ -25,7 +25,7 @@ import java.util.function.Supplier; import javax.measure.Quantity; import javax.measure.Unit; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.DefaultLocation; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNullByDefault; @@ -92,32 +92,27 @@ public class SmartMeterHandler extends BaseThingHandler { cancelRead(); SmartMeterConfiguration config = getConfigAs(SmartMeterConfiguration.class); - logger.debug("config port = {}", config.port); - boolean validConfig = true; - String errorMsg = null; + String port = config.port; + logger.debug("config port = {}", port); - if (StringUtils.trimToNull(config.port) == null) { - errorMsg = "Parameter 'port' is mandatory and must be configured"; - validConfig = false; - } - - if (validConfig) { + if (port == null || port.isBlank()) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "Parameter 'port' is mandatory and must be configured"); + } else { byte[] pullSequence = config.initMessage == null ? null : HexUtils.hexToBytes(StringUtils.deleteWhitespace(config.initMessage)); int baudrate = config.baudrate == null ? Baudrate.AUTO.getBaudrate() : Baudrate.fromString(config.baudrate).getBaudrate(); this.conformity = config.conformity == null ? Conformity.NONE : Conformity.valueOf(config.conformity); this.smlDevice = MeterDeviceFactory.getDevice(serialPortManagerSupplier, config.mode, - this.thing.getUID().getAsString(), config.port, pullSequence, baudrate, config.baudrateChangeDelay); + this.thing.getUID().getAsString(), port, pullSequence, baudrate, config.baudrateChangeDelay); updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.HANDLER_CONFIGURATION_PENDING, "Waiting for messages from device"); smlDevice.addValueChangeListener(channelTypeProvider); updateOBISValue(); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, errorMsg); } } diff --git a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/helper/SerialParameter.java b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/helper/SerialParameter.java index 686fe272a..f616cd4b2 100644 --- a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/helper/SerialParameter.java +++ b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/helper/SerialParameter.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.smartmeter.internal.helper; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.io.transport.serial.SerialPort; diff --git a/bundles/org.openhab.binding.solaredge/src/main/java/org/openhab/binding/solaredge/internal/config/SolarEdgeConfiguration.java b/bundles/org.openhab.binding.solaredge/src/main/java/org/openhab/binding/solaredge/internal/config/SolarEdgeConfiguration.java index 693e1a5a5..052b31dad 100644 --- a/bundles/org.openhab.binding.solaredge/src/main/java/org/openhab/binding/solaredge/internal/config/SolarEdgeConfiguration.java +++ b/bundles/org.openhab.binding.solaredge/src/main/java/org/openhab/binding/solaredge/internal/config/SolarEdgeConfiguration.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.solaredge.internal.config; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; diff --git a/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaBridgeHandler.java b/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaBridgeHandler.java index cebc4cec9..5822bfc14 100644 --- a/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaBridgeHandler.java +++ b/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaBridgeHandler.java @@ -29,7 +29,6 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -181,7 +180,7 @@ public class SomfyTahomaBridgeHandler extends BaseBridgeHandler { public synchronized void login() { String url; - if (StringUtils.isEmpty(thingConfig.getEmail()) || StringUtils.isEmpty(thingConfig.getPassword())) { + if (thingConfig.getEmail().isEmpty() || thingConfig.getPassword().isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Can not access device as username and/or password are null"); return; @@ -575,7 +574,7 @@ public class SomfyTahomaBridgeHandler extends BaseBridgeHandler { throws InterruptedException, ExecutionException, TimeoutException { logger.trace("Sending {} to url: {} with data: {}", method.asString(), url, urlParameters); Request request = sendRequestBuilder(url, method); - if (StringUtils.isNotEmpty(urlParameters)) { + if (!urlParameters.isEmpty()) { request = request.content(new StringContentProvider(urlParameters), "application/json;charset=UTF-8"); } diff --git a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosEntry.java b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosEntry.java index cd0896764..a539c7153 100644 --- a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosEntry.java +++ b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosEntry.java @@ -14,7 +14,7 @@ package org.openhab.binding.sonos.internal; import java.io.Serializable; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; diff --git a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosXMLParser.java b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosXMLParser.java index 3457e9020..c70bb5933 100644 --- a/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosXMLParser.java +++ b/bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosXMLParser.java @@ -25,7 +25,7 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.slf4j.Logger; diff --git a/bundles/org.openhab.binding.sonyaudio/src/main/java/org/openhab/binding/sonyaudio/internal/discovery/SonyAudioDiscoveryParticipant.java b/bundles/org.openhab.binding.sonyaudio/src/main/java/org/openhab/binding/sonyaudio/internal/discovery/SonyAudioDiscoveryParticipant.java index df0701e95..73744d1b2 100644 --- a/bundles/org.openhab.binding.sonyaudio/src/main/java/org/openhab/binding/sonyaudio/internal/discovery/SonyAudioDiscoveryParticipant.java +++ b/bundles/org.openhab.binding.sonyaudio/src/main/java/org/openhab/binding/sonyaudio/internal/discovery/SonyAudioDiscoveryParticipant.java @@ -22,7 +22,6 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.jupnp.model.meta.RemoteDevice; import org.openhab.binding.sonyaudio.internal.SonyAudioBindingConstants; import org.openhab.core.config.discovery.DiscoveryResult; @@ -61,15 +60,15 @@ public class SonyAudioDiscoveryParticipant implements UpnpDiscoveryParticipant { ThingUID thingUid = getThingUID(device); if (thingUid != null) { - String label = StringUtils.isEmpty(device.getDetails().getFriendlyName()) ? device.getDisplayString() - : device.getDetails().getFriendlyName(); - String host = device.getIdentity().getDescriptorURL().getHost(); - int port = device.getIdentity().getDescriptorURL().getPort(); - String path = device.getIdentity().getDescriptorURL().getPath(); + String friendlyName = device.getDetails().getFriendlyName(); + String label = friendlyName == null || friendlyName.isEmpty() ? device.getDisplayString() : friendlyName; + URL descriptorURL = device.getIdentity().getDescriptorURL(); + String host = descriptorURL.getHost(); + int port = descriptorURL.getPort(); + String path = descriptorURL.getPath(); try { Map properties = getDescription(host, port, path); - properties.put(SonyAudioBindingConstants.HOST_PARAMETER, - device.getIdentity().getDescriptorURL().getHost()); + properties.put(SonyAudioBindingConstants.HOST_PARAMETER, descriptorURL.getHost()); result = DiscoveryResultBuilder.create(thingUid).withLabel(label).withProperties(properties).build(); } catch (IOException e) { return null; @@ -82,18 +81,20 @@ public class SonyAudioDiscoveryParticipant implements UpnpDiscoveryParticipant { public ThingUID getThingUID(RemoteDevice device) { ThingUID result = null; - if (!StringUtils.containsIgnoreCase(device.getDetails().getManufacturerDetails().getManufacturer(), - SonyAudioBindingConstants.MANUFACTURER)) { + String manufacturer = device.getDetails().getManufacturerDetails().getManufacturer(); + if (manufacturer == null + || !manufacturer.toLowerCase().contains(SonyAudioBindingConstants.MANUFACTURER.toLowerCase())) { return result; } logger.debug("Manufacturer matched: search: {}, device value: {}.", SonyAudioBindingConstants.MANUFACTURER, - device.getDetails().getManufacturerDetails().getManufacturer()); - if (!StringUtils.containsIgnoreCase(device.getType().getType(), SonyAudioBindingConstants.UPNP_DEVICE_TYPE)) { + manufacturer); + String type = device.getType().getType(); + if (type == null || !type.toLowerCase().contains(SonyAudioBindingConstants.UPNP_DEVICE_TYPE.toLowerCase())) { return result; } logger.debug("Device type matched: search: {}, device value: {}.", SonyAudioBindingConstants.UPNP_DEVICE_TYPE, - device.getType().getType()); + type); logger.debug("Device services: {}", device.getServices().toString()); String deviceModel = device.getDetails().getModelDetails() != null ? device.getDetails().getModelDetails().getModelName() diff --git a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/SqueezeBoxAudioSink.java b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/SqueezeBoxAudioSink.java index dfb66deb4..89cfc2ae5 100644 --- a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/SqueezeBoxAudioSink.java +++ b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/SqueezeBoxAudioSink.java @@ -16,7 +16,6 @@ import java.util.HashSet; import java.util.Locale; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.squeezebox.internal.handler.SqueezeBoxPlayerHandler; import org.openhab.core.audio.AudioFormat; import org.openhab.core.audio.AudioHTTPServer; @@ -66,8 +65,8 @@ public class SqueezeBoxAudioSink implements AudioSink { this.playerHandler = playerHandler; this.audioHTTPServer = audioHTTPServer; this.callbackUrl = callbackUrl; - if (StringUtils.isNotEmpty(callbackUrl)) { - logger.debug("SqueezeBox AudioSink created with callback URL {}", callbackUrl); + if (callbackUrl != null && !callbackUrl.isEmpty()) { + logger.debug("SqueezeBox AudioSink created with callback URL: {}", callbackUrl); } } @@ -104,7 +103,7 @@ public class SqueezeBoxAudioSink implements AudioSink { // Form the URL for streaming the notification from the OH2 web server // Use the callback URL if it is set in the binding configuration - String host = StringUtils.isEmpty(callbackUrl) ? playerHandler.getHostAndPort() : callbackUrl; + String host = callbackUrl == null || callbackUrl.isEmpty() ? playerHandler.getHostAndPort() : callbackUrl; if (host == null) { logger.warn("Unable to get host/port from which to stream notification"); return; diff --git a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/config/SqueezeBoxServerConfig.java b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/config/SqueezeBoxServerConfig.java index 4f97915ac..6f441b095 100644 --- a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/config/SqueezeBoxServerConfig.java +++ b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/config/SqueezeBoxServerConfig.java @@ -12,6 +12,8 @@ */ package org.openhab.binding.squeezebox.internal.config; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * Configuration of a server. * @@ -19,11 +21,12 @@ package org.openhab.binding.squeezebox.internal.config; * @author Mark Hilbush - Added user ID and password * */ +@NonNullByDefault public class SqueezeBoxServerConfig { /** * Server ip address */ - public String ipAddress; + public String ipAddress = ""; /** * Server web port for REST calls */ @@ -35,13 +38,13 @@ public class SqueezeBoxServerConfig { /** * Language for TTS */ - public String language; + public String language = ""; /* * User ID (when authentication enabled in LMS) */ - public String userId; + public String userId = ""; /* * User ID (when authentication enabled in LMS) */ - public String password; + public String password = ""; } diff --git a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxPlayerHandler.java b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxPlayerHandler.java index aa02f8e47..65ca21692 100644 --- a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxPlayerHandler.java +++ b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxPlayerHandler.java @@ -26,7 +26,6 @@ import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.openhab.binding.squeezebox.internal.SqueezeBoxStateDescriptionOptionsProvider; import org.openhab.binding.squeezebox.internal.config.SqueezeBoxPlayerConfig; @@ -276,7 +275,7 @@ public class SqueezeBoxPlayerHandler extends BaseThingHandler implements Squeeze squeezeBoxServerHandler.playUrl(mac, command.toString()); break; case CHANNEL_SYNC: - if (StringUtils.isBlank(command.toString())) { + if (command.toString().isBlank()) { squeezeBoxServerHandler.unSyncPlayer(mac); } else { squeezeBoxServerHandler.syncPlayer(mac, command.toString()); @@ -444,7 +443,7 @@ public class SqueezeBoxPlayerHandler extends BaseThingHandler implements Squeeze private RawType downloadImage(String mac, String url) { // Only get the image if this is my PlayerHandler instance if (isMe(mac)) { - if (StringUtils.isNotEmpty(url)) { + if (url != null && !url.isEmpty()) { String sanitizedUrl = sanitizeUrl(url); RawType image = IMAGE_CACHE.putIfAbsentAndGet(url, () -> { logger.debug("Trying to download the content of URL {}", sanitizedUrl); diff --git a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxServerHandler.java b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxServerHandler.java index 1f7cbd6d0..fd8e6ae66 100644 --- a/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxServerHandler.java +++ b/bundles/org.openhab.binding.squeezebox/src/main/java/org/openhab/binding/squeezebox/internal/handler/SqueezeBoxServerHandler.java @@ -37,7 +37,6 @@ import java.util.concurrent.Future; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.squeezebox.internal.config.SqueezeBoxServerConfig; import org.openhab.binding.squeezebox.internal.dto.ButtonDTO; import org.openhab.binding.squeezebox.internal.dto.ButtonDTODeserializer; @@ -333,7 +332,7 @@ public class SqueezeBoxServerHandler extends BaseBridgeHandler { * Login to server */ public void login() { - if (StringUtils.isEmpty(userId)) { + if (userId.isEmpty()) { return; } // Create basic auth string for jsonrpc interface @@ -390,7 +389,7 @@ public class SqueezeBoxServerHandler extends BaseBridgeHandler { this.userId = config.userId; this.password = config.password; - if (StringUtils.isEmpty(this.host)) { + if (host.isEmpty()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.OFFLINE.CONFIGURATION_ERROR, "host is not set"); return; } @@ -836,7 +835,7 @@ public class SqueezeBoxServerHandler extends BaseBridgeHandler { private String constructCoverArtUrl(String mac, boolean coverart, String coverid, String artwork_url) { String hostAndPort; - if (StringUtils.isNotEmpty(userId)) { + if (!userId.isEmpty()) { hostAndPort = "http://" + encode(userId) + ":" + encode(password) + "@" + host + ":" + webport; } else { hostAndPort = "http://" + host + ":" + webport; diff --git a/bundles/org.openhab.binding.systeminfo/src/main/java/org/openhab/binding/systeminfo/internal/model/OSHISysteminfo.java b/bundles/org.openhab.binding.systeminfo/src/main/java/org/openhab/binding/systeminfo/internal/model/OSHISysteminfo.java index 42a9fa66e..c95b71657 100644 --- a/bundles/org.openhab.binding.systeminfo/src/main/java/org/openhab/binding/systeminfo/internal/model/OSHISysteminfo.java +++ b/bundles/org.openhab.binding.systeminfo/src/main/java/org/openhab/binding/systeminfo/internal/model/OSHISysteminfo.java @@ -14,7 +14,7 @@ package org.openhab.binding.systeminfo.internal.model; import java.math.BigDecimal; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.library.types.DecimalType; diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiClientThingConfig.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiClientThingConfig.java index 51fa6dfa3..21fd7cc4e 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiClientThingConfig.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiClientThingConfig.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.unifi.internal; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.unifi.internal.handler.UniFiClientThingHandler; /** @@ -42,13 +41,13 @@ public class UniFiClientThingConfig { } public UniFiClientThingConfig tidy() { - cid = StringUtils.lowerCase(StringUtils.strip(cid)); - site = StringUtils.lowerCase(StringUtils.strip(site)); + cid = cid.trim().toLowerCase(); + site = site.trim().toLowerCase(); return this; } public boolean isValid() { - return StringUtils.isNotBlank(cid); + return !cid.isBlank(); } @Override diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiControllerThingConfig.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiControllerThingConfig.java index 4f05ba298..d3d14c154 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiControllerThingConfig.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/UniFiControllerThingConfig.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.unifi.internal; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.unifi.internal.handler.UniFiControllerThingHandler; /** @@ -60,7 +59,7 @@ public class UniFiControllerThingConfig { } public boolean isValid() { - return StringUtils.isNotBlank(host) && StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password); + return !host.isBlank() && !username.isBlank() && !password.isBlank(); } @Override diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/cache/UniFiCache.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/cache/UniFiCache.java index 0880dc272..e5ae0aa7b 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/cache/UniFiCache.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/cache/UniFiCache.java @@ -17,7 +17,6 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +76,7 @@ public abstract class UniFiCache { public final void put(T value) { for (String prefix : prefixes) { String suffix = getSuffix(value, prefix); - if (StringUtils.isNotBlank(suffix)) { + if (suffix != null && !suffix.isBlank()) { String key = prefix + SEPARATOR + suffix; map.put(key, value); } diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiClient.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiClient.java index 02a08ff58..be6df1b32 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiClient.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiClient.java @@ -14,7 +14,6 @@ package org.openhab.binding.unifi.internal.api.model; import java.util.Calendar; -import org.apache.commons.lang.BooleanUtils; import org.openhab.binding.unifi.internal.api.UniFiException; import org.openhab.binding.unifi.internal.api.util.UniFiTidyLowerCaseStringDeserializer; import org.openhab.binding.unifi.internal.api.util.UniFiTimestampDeserializer; @@ -95,7 +94,7 @@ public abstract class UniFiClient { public abstract Boolean isWired(); public final Boolean isWireless() { - return BooleanUtils.negate(isWired()); + return isWired() == null ? null : (isWired().booleanValue() ? Boolean.FALSE : Boolean.TRUE); } protected abstract String getDeviceMac(); diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiController.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiController.java index 0c47a7a3b..6dbdc35c8 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiController.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiController.java @@ -14,7 +14,6 @@ package org.openhab.binding.unifi.internal.api.model; import java.util.Collection; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -135,7 +134,7 @@ public class UniFiController { public @Nullable UniFiSite getSite(@Nullable String id) { UniFiSite site = null; - if (StringUtils.isNotBlank(id)) { + if (id != null && !id.isBlank()) { synchronized (this) { site = sitesCache.get(id); } @@ -150,7 +149,7 @@ public class UniFiController { public @Nullable UniFiDevice getDevice(@Nullable String id) { UniFiDevice device = null; - if (StringUtils.isNotBlank(id)) { + if (id != null && !id.isBlank()) { synchronized (this) { device = devicesCache.get(id); } @@ -165,7 +164,7 @@ public class UniFiController { public @Nullable UniFiClient getClient(@Nullable String id) { UniFiClient client = null; - if (StringUtils.isNotBlank(id)) { + if (id != null && !id.isBlank()) { synchronized (this) { // mgb: first check active clients and fallback to insights if not found client = clientsCache.get(id); diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiDevice.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiDevice.java index ba81b3ab3..2c74ef19a 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiDevice.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiDevice.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.unifi.internal.api.model; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.unifi.internal.api.util.UniFiTidyLowerCaseStringDeserializer; import com.google.gson.annotations.JsonAdapter; @@ -53,7 +52,7 @@ public class UniFiDevice { } public String getName() { - return StringUtils.defaultIfBlank(name, mac); + return name == null || name.isBlank() ? mac : name; } public String getMac() { diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiSite.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiSite.java index c1025fb00..d6597e025 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiSite.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/model/UniFiSite.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.unifi.internal.api.model; -import org.apache.commons.lang.StringUtils; - import com.google.gson.annotations.SerializedName; /** @@ -49,8 +47,7 @@ public class UniFiSite { } public boolean matchesName(String siteName) { - return StringUtils.equalsIgnoreCase(desc, siteName) || StringUtils.equalsIgnoreCase(name, siteName) - || StringUtils.equalsIgnoreCase(id, siteName); + return siteName.equalsIgnoreCase(desc) || siteName.equalsIgnoreCase(name) || siteName.equalsIgnoreCase(id); } @Override diff --git a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/util/UniFiTidyLowerCaseStringDeserializer.java b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/util/UniFiTidyLowerCaseStringDeserializer.java index 25264dff2..ddcf07208 100644 --- a/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/util/UniFiTidyLowerCaseStringDeserializer.java +++ b/bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/api/util/UniFiTidyLowerCaseStringDeserializer.java @@ -14,8 +14,6 @@ package org.openhab.binding.unifi.internal.api.util; import java.lang.reflect.Type; -import org.apache.commons.lang.StringUtils; - import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; @@ -34,6 +32,6 @@ public class UniFiTidyLowerCaseStringDeserializer implements JsonDeserializer getConfigStatus() { Collection status = new ArrayList<>(); VenstarThermostatConfiguration config = getConfigAs(VenstarThermostatConfiguration.class); - if (StringUtils.isBlank(config.username)) { + if (config.username.isBlank()) { log.warn("username is empty"); status.add(ConfigStatusMessage.Builder.error(CONFIG_USERNAME).withMessageKeySuffix(EMPTY_INVALID) .withArguments(CONFIG_USERNAME).build()); } - if (StringUtils.isBlank(config.password)) { + if (config.password.isBlank()) { log.warn("password is empty"); status.add(ConfigStatusMessage.Builder.error(CONFIG_PASSWORD).withMessageKeySuffix(EMPTY_INVALID) .withArguments(CONFIG_PASSWORD).build()); diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java index dd562f285..f147b0a26 100644 --- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java +++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java @@ -16,7 +16,7 @@ import java.io.IOException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpResponseException; diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java index e13fbe9ca..4659d7dbf 100644 --- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java +++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java @@ -26,7 +26,6 @@ import java.util.concurrent.TimeUnit; import javax.imageio.ImageIO; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -120,14 +119,15 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler private boolean isValidLocation() { boolean validLocation = false; - String locationType = getConfigAs(WeatherCompanyForecastConfig.class).locationType; + WeatherCompanyForecastConfig config = getConfigAs(WeatherCompanyForecastConfig.class); + String locationType = config.locationType; if (locationType == null) { return validLocation; } switch (locationType) { case CONFIG_LOCATION_TYPE_POSTAL_CODE: - String postalCode = StringUtils.trimToNull(getConfigAs(WeatherCompanyForecastConfig.class).postalCode); - if (postalCode == null) { + String postalCode = config.postalCode; + if (postalCode == null || postalCode.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Postal code is not set"); } else { locationQueryString = "&postalKey=" + postalCode.replace(" ", ""); @@ -135,8 +135,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler } break; case CONFIG_LOCATION_TYPE_GEOCODE: - String geocode = StringUtils.trimToNull(getConfigAs(WeatherCompanyForecastConfig.class).geocode); - if (geocode == null) { + String geocode = config.geocode; + if (geocode == null || geocode.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Geocode is not set"); } else { locationQueryString = "&geocode=" + geocode.replace(" ", ""); @@ -144,8 +144,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler } break; case CONFIG_LOCATION_TYPE_IATA_CODE: - String iataCode = StringUtils.trimToNull(getConfigAs(WeatherCompanyForecastConfig.class).iataCode); - if (iataCode == null) { + String iataCode = config.iataCode; + if (iataCode == null || iataCode.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "IATA code is not set"); } else { locationQueryString = "&iataCode=" + iataCode.replace(" ", "").toUpperCase(); @@ -160,15 +160,16 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler } private void setLanguage() { - String language = StringUtils.trimToNull(getConfigAs(WeatherCompanyForecastConfig.class).language); - if (language == null) { + WeatherCompanyForecastConfig config = getConfigAs(WeatherCompanyForecastConfig.class); + String language = config.language; + if (language == null || language.isBlank()) { // Nothing in the thing config, so try to get a match from the openHAB locale String derivedLanguage = WeatherCompanyAbstractHandler.lookupLanguage(localeProvider.getLocale()); languageQueryString = "&language=" + derivedLanguage; logger.debug("Language not set in thing config, using {}", derivedLanguage); } else { // Use what is set in the thing config - languageQueryString = "&language=" + language; + languageQueryString = "&language=" + language.trim(); } } diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java index 2d46b4fcc..6bd800032 100644 --- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java +++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java @@ -18,7 +18,6 @@ import java.util.Objects; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; @@ -104,7 +103,9 @@ public class WeatherCompanyObservationsHandler extends WeatherCompanyAbstractHan * Build the URL for requesting the PWS current observations */ private @Nullable String buildPwsUrl() { - if (StringUtils.isEmpty(getConfigAs(WeatherCompanyObservationsConfig.class).pwsStationId)) { + WeatherCompanyObservationsConfig config = getConfigAs(WeatherCompanyObservationsConfig.class); + String pwsStationId = config.pwsStationId; + if (pwsStationId == null || pwsStationId.isEmpty()) { return null; } String apiKey = getApiKey(); @@ -116,7 +117,7 @@ public class WeatherCompanyObservationsHandler extends WeatherCompanyAbstractHan // Set response type as JSON sb.append("&format=json"); // Set PWS station Id from config - sb.append("&stationId=").append(getConfigAs(WeatherCompanyObservationsConfig.class).pwsStationId); + sb.append("&stationId=").append(pwsStationId); // Set API key from config sb.append("&apiKey=").append(apiKey); String url = sb.toString(); diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/discovery/WemoLinkDiscoveryService.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/discovery/WemoLinkDiscoveryService.java index 535661bb1..368bb103c 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/discovery/WemoLinkDiscoveryService.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/discovery/WemoLinkDiscoveryService.java @@ -26,8 +26,8 @@ import java.util.concurrent.TimeUnit; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.handler.WemoBridgeHandler; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.discovery.AbstractDiscoveryService; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCoffeeHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCoffeeHandler.java index 1e000d8db..2e5ebbe1c 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCoffeeHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCoffeeHandler.java @@ -30,8 +30,8 @@ import java.util.concurrent.TimeUnit; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCrockpotHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCrockpotHandler.java index f8699e50b..4ca69f110 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCrockpotHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoCrockpotHandler.java @@ -23,7 +23,7 @@ import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java index a645ed5a2..cfd6fa622 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoDimmerHandler.java @@ -26,7 +26,7 @@ import java.util.TimeZone; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHandler.java index 1f2d34c78..d1fe489b7 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHandler.java @@ -30,7 +30,7 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.net.http.HttpUtil; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHolmesHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHolmesHandler.java index 4ef7c2ebc..0017e9395 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHolmesHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoHolmesHandler.java @@ -29,8 +29,8 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoLightHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoLightHandler.java index f0753be55..59c096968 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoLightHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoLightHandler.java @@ -21,8 +21,8 @@ import java.util.Map; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoMakerHandler.java b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoMakerHandler.java index 03cdbcd95..c8ac1f286 100644 --- a/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoMakerHandler.java +++ b/bundles/org.openhab.binding.wemo/src/main/java/org/openhab/binding/wemo/internal/handler/WemoMakerHandler.java @@ -25,8 +25,8 @@ import java.util.concurrent.TimeUnit; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.wemo.internal.http.WemoHttpCall; import org.openhab.core.config.core.Configuration; import org.openhab.core.io.transport.upnp.UpnpIOParticipant; diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/config/YamahaBridgeConfig.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/config/YamahaBridgeConfig.java index 319c918bc..35df29a30 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/config/YamahaBridgeConfig.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/config/YamahaBridgeConfig.java @@ -14,7 +14,6 @@ package org.openhab.binding.yamahareceiver.internal.config; import java.util.Optional; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -65,7 +64,7 @@ public class YamahaBridgeConfig { public Optional getHostWithPort() { final String str = host; - if (StringUtils.isEmpty(str)) { + if (str == null || str.isEmpty()) { return Optional.empty(); } return Optional.of(str + ":" + port); diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceDescriptorXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceDescriptorXML.java index 38168dc86..ae1e3422b 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceDescriptorXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceDescriptorXML.java @@ -26,7 +26,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Feature; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Zone; import org.openhab.binding.yamahareceiver.internal.config.YamahaUtils; @@ -216,7 +215,7 @@ public class DeviceDescriptorXML { elements.forEach(e -> { String tag = e.getAttribute("YNC_Tag"); - if (StringUtils.isNotEmpty(tag)) { + if (!tag.isEmpty()) { T key = converter.apply(tag); if (key != null) { V value = factory.apply(key, e); diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceInformationXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceInformationXML.java index adc577ab7..81d12cb2f 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceInformationXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/DeviceInformationXML.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.lang.ref.WeakReference; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Feature; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Zone; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; @@ -136,7 +135,7 @@ public class DeviceInformationXML implements DeviceInformation { // Retrieve Main_Zone basic status, from which we will know this AVR supports Zone_B feature. Node basicStatusNode = getZoneResponse(con, Main_Zone, ZONE_BASIC_STATUS_CMD, ZONE_BASIC_STATUS_PATH); String power = getNodeContentOrEmpty(basicStatusNode, "Power_Control/Zone_B_Power_Info"); - if (StringUtils.isNotEmpty(power)) { + if (!power.isEmpty()) { logger.debug("Zone_2 emulation enabled via Zone_B"); state.zones.add(Zone_2); state.features.add(Feature.ZONE_B); diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputConverterXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputConverterXML.java index dec885e73..8d63de8a7 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputConverterXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputConverterXML.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Set; import java.util.stream.Stream; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Zone; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; import org.openhab.binding.yamahareceiver.internal.protocol.InputConverter; @@ -74,7 +73,7 @@ public class InputConverterXML implements InputConverter { private Map createMapFromSetting(String setting) { Map map = new HashMap<>(); - if (!StringUtils.isEmpty(setting)) { + if (setting != null && !setting.isEmpty()) { String[] entries = setting.split(","); // will contain KEY=VALUE entires for (String entry : entries) { String[] keyValue = entry.split("="); // split the KEY=VALUE string diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPlayControlXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPlayControlXML.java index 23bad8df1..fa31fec42 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPlayControlXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPlayControlXML.java @@ -19,7 +19,6 @@ import static org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils. import java.io.IOException; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.config.YamahaBridgeConfig; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; import org.openhab.binding.yamahareceiver.internal.protocol.InputWithPlayControl; @@ -244,8 +243,7 @@ public class InputWithPlayControlXML extends AbstractInputControlXML implements // Spotify and NET RADIO input supports song cover image (at least on RX-S601D) String songImageUrl = getNodeContentOrEmpty(node, "Play_Info/Album_ART/URL"); - msg.songImageUrl = StringUtils.isNotEmpty(songImageUrl) - ? String.format("http://%s%s", con.getHost(), songImageUrl) + msg.songImageUrl = !songImageUrl.isEmpty() ? String.format("http://%s%s", con.getHost(), songImageUrl) : bridgeConfig.getAlbumUrl(); logger.trace("Playback: {}, Station: {}, Artist: {}, Album: {}, Song: {}, SongImageUrl: {}", msg.playbackMode, diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPresetControlXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPresetControlXML.java index 0e6a3a9a4..eb0a81104 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPresetControlXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithPresetControlXML.java @@ -18,8 +18,8 @@ import static org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils. import java.io.IOException; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; import org.openhab.binding.yamahareceiver.internal.protocol.InputWithPresetControl; import org.openhab.binding.yamahareceiver.internal.protocol.ReceivedMessageParseException; @@ -116,7 +116,7 @@ public class InputWithPresetControlXML extends AbstractInputControlXML implement String value = getNodeContentOrDefault(itemNode, "Param", String.valueOf(i)); // For RX-V3900 when a preset slot is not used, this is how it looks - if (StringUtils.isEmpty(title) && "Not Used".equalsIgnoreCase(value)) { + if (title.isEmpty() && "Not Used".equalsIgnoreCase(value)) { continue; } @@ -130,7 +130,7 @@ public class InputWithPresetControlXML extends AbstractInputControlXML implement String presetValue = getNodeContentOrEmpty(response, preset.getPath()); // fall back to second method of obtaining current preset (works for Tuner on RX-V3900) - if (StringUtils.isEmpty(presetValue)) { + if (presetValue.isEmpty()) { try { Node presetResponse = getResponse(con, wrInput(preset.apply(GET_PARAM)), inputElement); presetValue = getNodeContentOrEmpty(presetResponse, preset.getPath()); @@ -146,7 +146,7 @@ public class InputWithPresetControlXML extends AbstractInputControlXML implement } private int convertToPresetNumber(String presetValue) { - if (StringUtils.isNotEmpty(presetValue)) { + if (!presetValue.isEmpty()) { if (StringUtils.isNumeric(presetValue)) { return Integer.parseInt(presetValue); } else { diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithTunerDABControlXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithTunerDABControlXML.java index 18a207301..01eea31e7 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithTunerDABControlXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/InputWithTunerDABControlXML.java @@ -16,7 +16,6 @@ import static org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils. import java.io.IOException; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; import org.openhab.binding.yamahareceiver.internal.protocol.InputWithPresetControl; import org.openhab.binding.yamahareceiver.internal.protocol.InputWithTunerBandControl; @@ -172,7 +171,7 @@ public class InputWithTunerDABControlXML extends AbstractInputControlXML // store last state of band bandState = msgForBand; - if (StringUtils.isEmpty(msgForBand.band)) { + if (msgForBand.band.isEmpty()) { logger.warn("Band is unknown for input {}, therefore preset and playback information will not be available", inputID); } else { diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/XMLConnection.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/XMLConnection.java index e5ae04280..d89e382fb 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/XMLConnection.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/XMLConnection.java @@ -26,7 +26,6 @@ import java.nio.charset.UnsupportedCharsetException; import java.util.Arrays; import java.util.Optional; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -183,7 +182,7 @@ public class XMLConnection extends AbstractConnection { .filter(x -> x.toLowerCase().startsWith(HEADER_CHARSET_PART)) .map(x -> x.substring(HEADER_CHARSET_PART.length() + 1, x.length() - 1)).findFirst(); - if (charsetName.isPresent() && !StringUtils.isEmpty(charsetName.get())) { + if (charsetName.isPresent() && !charsetName.get().isEmpty()) { try { charset = Charset.forName(charsetName.get()); } catch (UnsupportedCharsetException | IllegalCharsetNameException e) { diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/ZoneControlXML.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/ZoneControlXML.java index f8548f988..5a43d6f0e 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/ZoneControlXML.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/protocol/xml/ZoneControlXML.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.lang.ref.WeakReference; import java.util.function.Supplier; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.YamahaReceiverBindingConstants.Zone; import org.openhab.binding.yamahareceiver.internal.config.YamahaZoneConfig; import org.openhab.binding.yamahareceiver.internal.protocol.AbstractConnection; @@ -135,7 +134,7 @@ public class ZoneControlXML implements ZoneControl { ZONE_BASIC_STATUS_PATH); String surroundProgram = getNodeContentOrEmpty(basicStatusNode, "Surr/Pgm_Sel/Pgm"); - if (StringUtils.isNotEmpty(surroundProgram)) { + if (!surroundProgram.isEmpty()) { surroundSelProgram = new CommandTemplate( "Off%s", "Surr/Pgm_Sel/Pgm"); logger.debug("Zone {} - adjusting command to: {}", getZone(), surroundSelProgram); @@ -287,7 +286,7 @@ public class ZoneControlXML implements ZoneControl { value = getNodeContentOrEmpty(statusNode, inputSel.getPath()); state.inputID = inputConverterSupplier.get().fromStateName(value); - if (StringUtils.isBlank(state.inputID)) { + if (state.inputID == null || state.inputID.isBlank()) { throw new ReceivedMessageParseException("Expected inputID. Failed to read Input/Input_Sel"); } diff --git a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/state/NavigationControlState.java b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/state/NavigationControlState.java index 8a620bfa9..3912e28a5 100644 --- a/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/state/NavigationControlState.java +++ b/bundles/org.openhab.binding.yamahareceiver/src/main/java/org/openhab/binding/yamahareceiver/internal/state/NavigationControlState.java @@ -12,7 +12,6 @@ */ package org.openhab.binding.yamahareceiver.internal.state; -import org.apache.commons.lang.StringUtils; import org.openhab.binding.yamahareceiver.internal.protocol.xml.InputWithNavigationControlXML; /** @@ -37,7 +36,7 @@ public class NavigationControlState implements Invalidateable { public String getAllItemLabels() { StringBuilder sb = new StringBuilder(); for (String item : items) { - if (StringUtils.isNotEmpty(item)) { + if (item != null && !item.isEmpty()) { sb.append(item); sb.append(','); } diff --git a/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayBridgeHandler.java b/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayBridgeHandler.java index 5ceb22305..9a9971f5e 100644 --- a/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayBridgeHandler.java +++ b/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayBridgeHandler.java @@ -18,7 +18,6 @@ import java.util.Map; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang3.StringUtils; import org.openhab.binding.zway.internal.config.ZWayBridgeConfiguration; import org.openhab.core.library.types.OnOffType; import org.openhab.core.thing.Bridge; @@ -387,7 +386,8 @@ public class ZWayBridgeHandler extends BaseBridgeHandler implements IZWayApiCall ****************************************/ // Z-Way IP address - if (StringUtils.trimToNull(config.getZWayIpAddress()) == null) { + String zWayIpAddress = config.getZWayIpAddress(); + if (zWayIpAddress == null || zWayIpAddress.isBlank()) { config.setZWayIpAddress("localhost"); // default value } @@ -397,19 +397,22 @@ public class ZWayBridgeHandler extends BaseBridgeHandler implements IZWayApiCall } // Z-Way Protocol - if (StringUtils.trimToNull(config.getZWayProtocol()) == null) { + String zWayProtocol = config.getZWayProtocol(); + if (zWayProtocol == null || zWayProtocol.isBlank()) { config.setZWayProtocol("http"); } // Z-Way Password - if (StringUtils.trimToNull(config.getZWayPassword()) == null) { + String zWayPassword = config.getZWayPassword(); + if (zWayPassword == null || zWayPassword.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "The connection to the Z-Way Server can't established, because the Z-Way password is missing. Please set a Z-Way password."); return null; } // Z-Way Username - if (StringUtils.trimToNull(config.getZWayUsername()) == null) { + String zWayUsername = config.getZWayUsername(); + if (zWayUsername == null || zWayUsername.isBlank()) { config.setZWayUsername("admin"); // default value } diff --git a/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayZAutomationDeviceHandler.java b/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayZAutomationDeviceHandler.java index fa4173ccd..63335021b 100644 --- a/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayZAutomationDeviceHandler.java +++ b/bundles/org.openhab.binding.zway/src/main/java/org/openhab/binding/zway/internal/handler/ZWayZAutomationDeviceHandler.java @@ -19,7 +19,6 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang3.StringUtils; import org.openhab.binding.zway.internal.config.ZWayZAutomationDeviceConfiguration; import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingStatus; @@ -140,7 +139,8 @@ public class ZWayZAutomationDeviceHandler extends ZWayDeviceHandler { private ZWayZAutomationDeviceConfiguration loadAndCheckConfiguration() { ZWayZAutomationDeviceConfiguration config = getConfigAs(ZWayZAutomationDeviceConfiguration.class); - if (StringUtils.trimToNull(config.getDeviceId()) == null) { + String deviceId = config.getDeviceId(); + if (deviceId == null || deviceId.isBlank()) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Z-Wave device couldn't create, because the device id is missing."); return null; diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/SetModeAction.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/SetModeAction.java index 1a650b676..ea090f368 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/SetModeAction.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/SetModeAction.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.action; -import org.apache.commons.lang.StringUtils; import org.openhab.core.events.EventPublisher; import org.openhab.core.items.Item; import org.openhab.core.items.events.ItemCommandEvent; @@ -42,7 +41,8 @@ public class SetModeAction extends Action { if (device.getType() != DeviceType.THERMOSTAT) { return false; } - return StringUtils.isNotBlank(device.getLinks().get("curmode")); + String curmode = device.getLinks().get("curmode"); + return curmode != null && !curmode.isBlank(); } @Override diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/StopShutterAction.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/StopShutterAction.java index f5d43a022..54875b55c 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/StopShutterAction.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/action/StopShutterAction.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.action; -import org.apache.commons.lang.StringUtils; import org.openhab.core.events.EventPublisher; import org.openhab.core.items.Item; import org.openhab.core.items.events.ItemCommandEvent; @@ -39,7 +38,8 @@ public class StopShutterAction extends Action { @Override public boolean supports(AbstractDevice device, Item item) { - return device.getType() == DeviceType.SHUTTER && StringUtils.isNotBlank(device.getLinks().get("stopper")); + String stopper = device.getLinks().get("stopper"); + return device.getType() == DeviceType.SHUTTER && stopper != null && !stopper.isBlank(); } @Override diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/ElectricityDevice.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/ElectricityDevice.java index 5e580fd37..27badd74e 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/ElectricityDevice.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/ElectricityDevice.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.model.device; -import org.apache.commons.lang.StringUtils; import org.openhab.core.items.Item; import org.openhab.core.library.types.DecimalType; import org.openhab.core.types.State; @@ -49,7 +48,7 @@ public class ElectricityDevice extends AbstractNumericValueDevice { public void stateUpdated(Item item, State newState) { super.stateUpdated(item, newState); - DecimalType value = (DecimalType) item.getStateAs(DecimalType.class); + DecimalType value = item.getStateAs(DecimalType.class); if (getLinks().containsKey(LINK_WATTS) || getUnit().equalsIgnoreCase(LINK_KWH)) { addParam(new NumericValueParam(ParamType.KWH, getUnit(), value)); @@ -93,7 +92,8 @@ public class ElectricityDevice extends AbstractNumericValueDevice { } NumericValueParam wattsParam = new NumericValueParam(ParamType.WATTS, valueParam.getUnit(), null); - if (StringUtils.isEmpty(wattsParam.getUnit())) { + String unit = wattsParam.getUnit(); + if (unit == null || unit.isEmpty()) { wattsParam.setUnit("W"); } wattsParam.setValue(valueParam.getValue()); @@ -108,7 +108,8 @@ public class ElectricityDevice extends AbstractNumericValueDevice { } NumericValueParam kwhParam = new NumericValueParam(ParamType.KWH, valueParam.getUnit(), null); - if (StringUtils.isEmpty(kwhParam.getUnit())) { + String unit = kwhParam.getUnit(); + if (unit == null || unit.isEmpty()) { kwhParam.setUnit("KWh"); } kwhParam.setValue(valueParam.getValue()); diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RainDevice.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RainDevice.java index 94e9220ed..00924d657 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RainDevice.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RainDevice.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.model.device; -import org.apache.commons.lang.StringUtils; import org.openhab.core.items.Item; import org.openhab.core.library.types.DecimalType; import org.openhab.core.types.State; @@ -54,7 +53,8 @@ public class RainDevice extends AbstractNumericValueDevice { } NumericValueParam accumParam = new NumericValueParam(ParamType.ACCUMULATION, valueParam.getUnit(), null); - if (StringUtils.isEmpty(accumParam.getUnit())) { + String unit = accumParam.getUnit(); + if (unit == null || unit.isBlank()) { accumParam.setUnit("mm"); } @@ -67,7 +67,7 @@ public class RainDevice extends AbstractNumericValueDevice { public void stateUpdated(Item item, State newState) { super.stateUpdated(item, newState); - DecimalType value = (DecimalType) item.getStateAs(DecimalType.class); + DecimalType value = item.getStateAs(DecimalType.class); addParam(new NumericValueParam(ParamType.RAIN_VALUE, getUnit(), value)); } } diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RgbLightDevice.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RgbLightDevice.java index bba4da698..fc2668ca8 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RgbLightDevice.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/RgbLightDevice.java @@ -14,7 +14,7 @@ package org.openhab.io.imperihome.internal.model.device; import java.math.BigDecimal; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.openhab.core.items.Item; import org.openhab.core.library.types.HSBType; import org.openhab.core.library.types.PercentType; diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/TrippableDevice.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/TrippableDevice.java index 06df992fb..1aa598303 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/TrippableDevice.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/TrippableDevice.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.model.device; -import org.apache.commons.lang.StringUtils; import org.openhab.core.items.Item; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; @@ -44,17 +43,17 @@ public class TrippableDevice extends AbstractDevice { boolean tripped = false; if (item.getStateAs(OpenClosedType.class) != null) { - OpenClosedType state = (OpenClosedType) item.getStateAs(OpenClosedType.class); + OpenClosedType state = item.getStateAs(OpenClosedType.class); tripped = state == OpenClosedType.CLOSED; } else if (item.getStateAs(OnOffType.class) != null) { - OnOffType state = (OnOffType) item.getStateAs(OnOffType.class); + OnOffType state = item.getStateAs(OnOffType.class); tripped = state == OnOffType.ON; } else if (item.getStateAs(DecimalType.class) != null) { - DecimalType state = (DecimalType) item.getStateAs(DecimalType.class); - tripped = state.intValue() != 0; + DecimalType state = item.getStateAs(DecimalType.class); + tripped = state != null && state.intValue() != 0; } else if (item.getStateAs(StringType.class) != null) { - StringType state = (StringType) item.getStateAs(StringType.class); - tripped = StringUtils.isNotBlank(state.toString()) && !state.toString().trim().equals("ok"); + StringType state = item.getStateAs(StringType.class); + tripped = state != null && !state.toString().isBlank() && !state.toString().trim().equals("ok"); } else { logger.debug("Can't interpret state {} as tripped status", item.getState()); } diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/WindDevice.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/WindDevice.java index b65990212..972801376 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/WindDevice.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/model/device/WindDevice.java @@ -12,7 +12,6 @@ */ package org.openhab.io.imperihome.internal.model.device; -import org.apache.commons.lang.StringUtils; import org.openhab.core.items.Item; import org.openhab.core.library.types.DecimalType; import org.openhab.core.types.State; @@ -54,7 +53,8 @@ public class WindDevice extends AbstractNumericValueDevice { } NumericValueParam dirParam = new NumericValueParam(ParamType.DIRECTION, valueParam.getUnit(), null); - if (StringUtils.isEmpty(dirParam.getUnit())) { + String unit = dirParam.getUnit(); + if (unit == null || unit.isEmpty()) { dirParam.setUnit("Degrees"); } @@ -67,7 +67,7 @@ public class WindDevice extends AbstractNumericValueDevice { public void stateUpdated(Item item, State newState) { super.stateUpdated(item, newState); - DecimalType value = (DecimalType) item.getStateAs(DecimalType.class); + DecimalType value = item.getStateAs(DecimalType.class); addParam(new NumericValueParam(ParamType.SPEED, getUnit(), value)); } } diff --git a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/processor/ItemProcessor.java b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/processor/ItemProcessor.java index 04b352913..52143bc2e 100644 --- a/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/processor/ItemProcessor.java +++ b/bundles/org.openhab.io.imperihome/src/main/java/org/openhab/io/imperihome/internal/processor/ItemProcessor.java @@ -20,8 +20,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.apache.commons.lang.BooleanUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.BooleanUtils; import org.openhab.core.items.Item; import org.openhab.core.items.ItemRegistry; import org.openhab.core.items.ItemRegistryChangeListener; @@ -144,11 +143,12 @@ public class ItemProcessor implements ItemRegistryChangeListener { String icon = issTags.get(TagType.ICON).get(0); if (!icon.toLowerCase().startsWith("http")) { - if (StringUtils.isEmpty(config.getRootUrl())) { + String rootUrl = config.getRootUrl(); + if (rootUrl == null || rootUrl.isEmpty()) { logger.error("Can't set icon; 'openhab.rootUrl' not set in configuration"); return; } - icon = config.getRootUrl() + "icon/" + icon; + icon = rootUrl + "icon/" + icon; } device.addParam(new DeviceParam(ParamType.DEFAULT_ICON, icon)); @@ -214,8 +214,9 @@ public class ItemProcessor implements ItemRegistryChangeListener { return issTags.get(TagType.LABEL).get(0); } - if (StringUtils.isNotBlank(item.getLabel())) { - String label = item.getLabel().trim(); + String label = item.getLabel(); + if (label != null && !label.isBlank()) { + label = label.trim(); if (label.matches("\\[.*\\]$")) { label = label.substring(0, label.indexOf('[')); } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/NeeoService.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/NeeoService.java index 86627336d..4e750474d 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/NeeoService.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/NeeoService.java @@ -25,7 +25,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import javax.servlet.ServletException; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.binding.BindingInfoRegistry; @@ -375,8 +374,7 @@ public class NeeoService implements EventSubscriber, NetworkAddressChangeListene * @param brainId the non-empty brain id * @return the servlet for the brainId or null if none */ - @Nullable - public NeeoBrainServlet getServlet(String brainId) { + public @Nullable NeeoBrainServlet getServlet(String brainId) { NeeoUtil.requireNotEmpty(brainId, "brainId cannot be empty"); final String url = NeeoUtil.getServletUrl(brainId); @@ -389,11 +387,10 @@ public class NeeoService implements EventSubscriber, NetworkAddressChangeListene * @param servletUrl a non-null, non-empty servlet URL * @return the servlet for the URL or null if not found */ - @Nullable - private NeeoBrainServlet getServletByUrl(String servletUrl) { + private @Nullable NeeoBrainServlet getServletByUrl(String servletUrl) { NeeoUtil.requireNotEmpty(servletUrl, "ServletURL cannot be empty"); for (NeeoBrainServlet servlet : servlets) { - if (StringUtils.equalsIgnoreCase(servletUrl, servlet.getServletUrl())) { + if (servletUrl.equalsIgnoreCase(servlet.getServletUrl())) { return servlet; } } @@ -410,9 +407,8 @@ public class NeeoService implements EventSubscriber, NetworkAddressChangeListene return Collections.singleton(ItemStateChangedEvent.TYPE); } - @Nullable @Override - public EventFilter getEventFilter() { + public @Nullable EventFilter getEventFilter() { return eventFilter; } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/AbstractServlet.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/AbstractServlet.java index 74f785b1d..4fbc6c674 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/AbstractServlet.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/AbstractServlet.java @@ -23,7 +23,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.events.Event; @@ -55,8 +55,7 @@ public abstract class AbstractServlet extends HttpServlet implements AutoCloseab private final String servletUrl; /** Any event filters */ - @Nullable - private final List eventFilters; + private final @Nullable List eventFilters; /** * Creates a servlet to serve the status/definitions web pages @@ -112,7 +111,7 @@ public abstract class AbstractServlet extends HttpServlet implements AutoCloseab final String pathInfo = NeeoUtil.decodeURIComponent(req.getPathInfo()); // invalid path - probably someone typed the path in manually - if (StringUtils.isEmpty(pathInfo)) { + if (pathInfo.isEmpty()) { return; } @@ -158,8 +157,7 @@ public abstract class AbstractServlet extends HttpServlet implements AutoCloseab * @param paths the non-null, non-empty paths * @return the service that can handle the path or null if none can */ - @Nullable - protected ServletService getService(String[] paths) { + protected @Nullable ServletService getService(String[] paths) { Objects.requireNonNull(paths, "paths cannot be null"); if (paths.length == 0) { throw new IllegalArgumentException("paths cannot be of 0 length"); @@ -213,8 +211,7 @@ public abstract class AbstractServlet extends HttpServlet implements AutoCloseab * * @return the possibly null event filters; */ - @Nullable - public List getEventFilters() { + public @Nullable List getEventFilters() { return eventFilters; } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoApi.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoApi.java index 2baefba2d..9322ca082 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoApi.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoApi.java @@ -29,7 +29,6 @@ import java.util.concurrent.atomic.AtomicReference; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.http.HttpStatus; @@ -521,11 +520,11 @@ public class NeeoApi implements AutoCloseable { } for (NeeoRecipe recipe : GSON.fromJson(resp.getContent(), NeeoRecipe[].class)) { - if (StringUtils.equalsIgnoreCase(recipe.getUid(), deviceKey)) { + if (deviceKey.equalsIgnoreCase(recipe.getUid())) { final NeeoRecipeUrls urls = recipe.getUrls(); final String url = urls == null ? null : (on ? urls.getSetPowerOn() : urls.getSetPowerOff()); - if (url != null && StringUtils.isNotEmpty(url)) { + if (url != null && !url.isEmpty()) { final HttpResponse cmdResp = rqst.sendGetCommand(url); if (cmdResp.getHttpCode() != HttpStatus.OK_200) { throw cmdResp.createException(); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceDefinitions.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceDefinitions.java index 1156915cd..4cbf9420e 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceDefinitions.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceDefinitions.java @@ -24,7 +24,6 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.thing.Thing; @@ -122,7 +121,7 @@ public class NeeoDeviceDefinitions { // filter for only things that are still valid final ThingRegistry thingRegistry = context.getThingRegistry(); for (NeeoDevice device : uidToDevice.values()) { - if (StringUtils.equalsIgnoreCase(NeeoConstants.NEEOIO_BINDING_ID, device.getUid().getBindingId())) { + if (NeeoConstants.NEEOIO_BINDING_ID.equalsIgnoreCase(device.getUid().getBindingId())) { devices.add(device); } else { if (thingRegistry.get(device.getUid().asThingUID()) != null) { @@ -176,7 +175,7 @@ public class NeeoDeviceDefinitions { final List devices = new ArrayList<>(); for (NeeoDevice device : exposeAll || exposeNeeoBinding ? getAllDevices() : uidToDevice.values()) { if (device.getExposedChannels().length > 0 && !NeeoDeviceType.EXCLUDE.equals(device.getType()) - && StringUtils.isNotEmpty(device.getType().toString())) { + && !device.getType().toString().isEmpty()) { devices.add(device); } } @@ -242,7 +241,7 @@ public class NeeoDeviceDefinitions { for (NeeoDevice device : uidToDevice.values()) { if (keys.isBound(device.getUid())) { for (NeeoDeviceChannel channel : device.getExposedChannels()) { - if (itemName == null || StringUtils.equalsIgnoreCase(itemName, channel.getItemName())) { + if (itemName == null || itemName.equalsIgnoreCase(channel.getItemName())) { channels.add(new AbstractMap.SimpleImmutableEntry<>(device, channel)); } } @@ -287,7 +286,7 @@ public class NeeoDeviceDefinitions { public List getAllDevices() { final List devices = new ArrayList<>(); for (Entry entry : uidToDevice.entrySet()) { - if (StringUtils.equalsIgnoreCase(NeeoConstants.NEEOIO_BINDING_ID, entry.getKey().getBindingId())) { + if (NeeoConstants.NEEOIO_BINDING_ID.equalsIgnoreCase(entry.getKey().getBindingId())) { devices.add(entry.getValue()); } else { final Thing thing = context.getThingRegistry().get(entry.getKey().asThingUID()); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceKeys.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceKeys.java index 3fa7e277b..8a8347ec7 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceKeys.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoDeviceKeys.java @@ -20,10 +20,10 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jetty.http.HttpStatus; import org.openhab.core.thing.ThingUID; @@ -178,7 +178,7 @@ public class NeeoDeviceKeys { sb.append("["); sb.append(entry.getKey()); sb.append("="); - sb.append(StringUtils.join(entries.toArray())); + sb.append(entries.stream().map(Object::toString).collect(Collectors.joining())); sb.append("]"); } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoItemValueConverter.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoItemValueConverter.java index 022da5e10..cee7d4ffa 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoItemValueConverter.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoItemValueConverter.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.items.Item; @@ -138,7 +137,7 @@ public class NeeoItemValueConverter { return new NeeoItemValue(convertedState == UpDownType.UP); } else if (convertedState instanceof DecimalType) { - if (StringUtils.isEmpty(format) || channel.getType() == NeeoCapabilityType.SLIDER) { + if (format == null || format.isEmpty() || channel.getType() == NeeoCapabilityType.SLIDER) { return new NeeoItemValue(((DecimalType) convertedState).toBigDecimal()); } } else if (convertedState instanceof UnDefType) { @@ -150,7 +149,7 @@ public class NeeoItemValueConverter { // Formatting must use the actual state (not converted state) to avoid // issues where a decimal converted to string or otherwise String itemValue; - if (format != null && StringUtils.isNotEmpty(format)) { + if (format != null && !format.isEmpty()) { if (state instanceof UnDefType) { itemValue = formatUndefined(format); } else if (state instanceof Type) { @@ -230,7 +229,7 @@ public class NeeoItemValueConverter { Objects.requireNonNull(item, "item cannot be null"); Objects.requireNonNull(eventType, "eventType cannot be null"); - if (actionValue == null || StringUtils.isEmpty(actionValue)) { + if (actionValue == null || actionValue.isEmpty()) { return null; } @@ -265,9 +264,9 @@ public class NeeoItemValueConverter { } break; case "switch": - if (StringUtils.equalsIgnoreCase("true", actionValue)) { + if ("true".equalsIgnoreCase(actionValue)) { return OnOffType.ON; - } else if (StringUtils.equalsIgnoreCase("false", actionValue)) { + } else if ("false".equalsIgnoreCase(actionValue)) { return OnOffType.OFF; } break; diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoUtil.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoUtil.java index 3bee22d7b..db872cf80 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoUtil.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/NeeoUtil.java @@ -24,7 +24,6 @@ import java.util.concurrent.Future; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.items.Item; @@ -210,7 +209,7 @@ public class NeeoUtil { resp.setContentType("application/json"); resp.setCharacterEncoding("UTF-8"); final PrintWriter pw = resp.getWriter(); - if (StringUtils.isEmpty(str)) { + if (str.isEmpty()) { pw.print("{}"); } else { pw.print(str); @@ -267,7 +266,7 @@ public class NeeoUtil { */ public static void requireNotEmpty(String value, String msg) { Objects.requireNonNull(value, msg); - if (StringUtils.isEmpty(value)) { + if (value.isEmpty()) { throw new IllegalArgumentException(msg); } } @@ -318,7 +317,7 @@ public class NeeoUtil { if (cmd.isEnum()) { for (Command cmdEnum : cmd.getEnumConstants()) { - if (StringUtils.equalsIgnoreCase(((Enum) cmdEnum).name(), enumName)) { + if (((Enum) cmdEnum).name().equalsIgnoreCase(enumName)) { return cmdEnum; } } @@ -347,14 +346,14 @@ public class NeeoUtil { public static String getLabel(@Nullable Item item, @Nullable ChannelType channelType) { if (item != null) { final String label = item.getLabel(); - if (label != null && StringUtils.isNotEmpty(label)) { + if (label != null && !label.isEmpty()) { return label; } } if (channelType != null) { final String label = channelType.getLabel(); - if (StringUtils.isNotEmpty(label)) { + if (!label.isEmpty()) { return label; } } @@ -374,8 +373,8 @@ public class NeeoUtil { if (item != null) { final StateDescription sd = item.getStateDescription(); final String format = sd == null ? null : sd.getPattern(); - if (StringUtils.isEmpty(format)) { - if (StringUtils.equalsIgnoreCase("datetime", item.getType())) { + if (format == null || format.isEmpty()) { + if ("datetime".equalsIgnoreCase(item.getType())) { return "%tF % labels, String itemLabel) { Objects.requireNonNull(labels, "labels cannot be null"); - String label = StringUtils.isEmpty(itemLabel) ? "NA" : itemLabel; + String label = itemLabel.isEmpty() ? "NA" : itemLabel; int idx = 0; if (labels.contains(label)) { do { @@ -432,7 +431,7 @@ public class NeeoUtil { if (groupId != null) { for (ChannelGroupDefinition cgd : thingType.getChannelGroupDefinitions()) { - if (StringUtils.equals(groupId, cgd.getId())) { + if (Objects.equals(groupId, cgd.getId())) { return cgd.getLabel(); } } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/OpenHabToDeviceConverter.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/OpenHabToDeviceConverter.java index b1abc54ca..b492f38ae 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/OpenHabToDeviceConverter.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/OpenHabToDeviceConverter.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.items.Item; @@ -101,8 +101,9 @@ class OpenHabToDeviceConverter { .getChannelType(channel.getChannelTypeUID()); NeeoCapabilityType type = NeeoCapabilityType.EXCLUDE; - if (StringUtils.equalsIgnoreCase(NeeoConstants.NEEOBINDING_BINDING_ID, thingUID.getBindingId())) { - if (StringUtils.startsWithIgnoreCase(thingUID.getAsString(), NeeoConstants.NEEOBINDING_DEVICE_ID)) { + if (NeeoConstants.NEEOBINDING_BINDING_ID.equalsIgnoreCase(thingUID.getBindingId())) { + if (thingUID.getAsString().toLowerCase() + .startsWith(NeeoConstants.NEEOBINDING_DEVICE_ID.toLowerCase())) { // all device channels are currently macros - so buttons are appropriate type = NeeoCapabilityType.BUTTON; } else { @@ -127,7 +128,7 @@ class OpenHabToDeviceConverter { return null; } - if (StringUtils.equalsIgnoreCase(NeeoConstants.NEEOBINDING_BINDING_ID, thing.getUID().getBindingId())) { + if (NeeoConstants.NEEOBINDING_BINDING_ID.equalsIgnoreCase(thing.getUID().getBindingId())) { final Map properties = thing.getProperties(); /** The following properties have matches in org.openhab.binding.neeo.NeeoDeviceHandler.java */ String neeoType = properties.get("Type"); @@ -145,7 +146,7 @@ class OpenHabToDeviceConverter { final NeeoDeviceTiming timing = new NeeoDeviceTiming(standbyDelay, switchDelay, shutDownDelay); final String dc = properties.get("Device Capabilities"); - final String[] deviceCapabilities = StringUtils.isEmpty(dc) ? new String[0] : StringUtils.split(dc, ','); + final String[] deviceCapabilities = dc == null || dc.isEmpty() ? new String[0] : StringUtils.split(dc, ','); try { return new NeeoDevice(new NeeoThingUID(thing.getUID()), 0, @@ -174,9 +175,9 @@ class OpenHabToDeviceConverter { * @param value a possibly null, possibly empty value to parse * @return an Integer or null if not a number */ - @Nullable - private static Integer parseInteger(String value) { - if (StringUtils.isEmpty(value)) { + + private static @Nullable Integer parseInteger(String value) { + if (value.isEmpty()) { return null; } try { @@ -194,7 +195,7 @@ class OpenHabToDeviceConverter { */ @Nullable List getNeeoDeviceChannel(String itemName) { - if (StringUtils.isEmpty(itemName)) { + if (itemName.isEmpty()) { return null; } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/ServiceContext.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/ServiceContext.java index 0d7a517bc..0931f2ed4 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/ServiceContext.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/ServiceContext.java @@ -15,7 +15,7 @@ package org.openhab.io.neeo.internal; import java.util.Objects; import java.util.UUID; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.binding.BindingInfoRegistry; import org.openhab.core.events.EventPublisher; diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/TokenSearch.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/TokenSearch.java index 4f8c81ddb..a5f186406 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/TokenSearch.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/TokenSearch.java @@ -19,7 +19,7 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.binding.BindingInfo; @@ -104,7 +104,7 @@ public class TokenSearch { final Thing thing = context.getThingRegistry().get(device.getUid().asThingUID()); if (thing != null) { final String location = thing.getLocation(); - if (location != null && StringUtils.isNotEmpty(location)) { + if (location != null && !location.isEmpty()) { score += search(location, needles); } @@ -160,13 +160,13 @@ public class TokenSearch { int arrayLength = needles.length; for (int i = 0; i < arrayLength; i++) { String needle = needles[i]; - int stringPos = StringUtils.indexOfIgnoreCase(haystack, needle); + int stringPos = haystack.toLowerCase().indexOf(needle.toLowerCase()); int tokenScore = 0; if (stringPos > -1) { if (needle.length() < 2) { tokenScore = 1; } else { - if (StringUtils.equalsIgnoreCase(haystack, needle)) { + if (haystack.equalsIgnoreCase(needle)) { tokenScore = 6; } else if (stringPos == 0) { tokenScore = 2; diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/discovery/MdnsBrainDiscovery.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/discovery/MdnsBrainDiscovery.java index 546ffcbee..674d3f4c2 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/discovery/MdnsBrainDiscovery.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/discovery/MdnsBrainDiscovery.java @@ -36,7 +36,6 @@ import javax.jmdns.ServiceInfo; import javax.jmdns.ServiceListener; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.common.ThreadPoolManager; @@ -142,9 +141,9 @@ public class MdnsBrainDiscovery extends AbstractBrainDiscovery { final String[] ipAddresses = gson.fromJson(json, String[].class); if (ipAddresses != null) { logger.debug("Restoring discovery from {}: {}", file.getAbsolutePath(), - StringUtils.join(ipAddresses, ',')); + String.join(",", ipAddresses)); for (String ipAddress : ipAddresses) { - if (StringUtils.isNotBlank(ipAddress)) { + if (!ipAddress.isBlank()) { addDiscovered(ipAddress, false); } } @@ -184,7 +183,7 @@ public class MdnsBrainDiscovery extends AbstractBrainDiscovery { @Nullable private Entry getNeeoBrainInfo(ServiceInfo info) { Objects.requireNonNull(info, "info cannot be null"); - if (!StringUtils.equals("neeo", info.getApplication())) { + if (!"neeo".equals(info.getApplication())) { logger.debug("A non-neeo application was found for the NEEO MDNS: {}", info); return null; } @@ -338,7 +337,7 @@ public class MdnsBrainDiscovery extends AbstractBrainDiscovery { systemsLock.lock(); try { final Optional sysInfo = systems.keySet().stream() - .filter(e -> StringUtils.equals(servletUrl, NeeoUtil.getServletUrl(e.getHostname()))).findFirst(); + .filter(e -> servletUrl.equals(NeeoUtil.getServletUrl(e.getHostname()))).findFirst(); if (sysInfo.isPresent()) { systems.remove(sysInfo.get()); fireRemoved(sysInfo.get()); @@ -371,7 +370,7 @@ public class MdnsBrainDiscovery extends AbstractBrainDiscovery { try { NeeoSystemInfo foundInfo = null; for (NeeoSystemInfo existingSysInfo : systems.keySet()) { - if (StringUtils.equals(existingSysInfo.getHostname(), brainInfo.getKey())) { + if (existingSysInfo.getHostname().equals(brainInfo.getKey())) { foundInfo = existingSysInfo; break; } @@ -398,7 +397,7 @@ public class MdnsBrainDiscovery extends AbstractBrainDiscovery { final List ipAddresses = systems.values().stream().map(e -> e.getHostAddress()) .collect(Collectors.toList()); - logger.debug("Saving brain's discovered to {}: {}", file.toPath(), StringUtils.join(ipAddresses, ',')); + logger.debug("Saving brain's discovered to {}: {}", file.toPath(), String.join(",", ipAddresses)); final String json = gson.toJson(ipAddresses); final byte[] contents = json.getBytes(StandardCharsets.UTF_8); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ItemSubType.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ItemSubType.java index 7a686cd6a..3f0300525 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ItemSubType.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ItemSubType.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; /** @@ -58,11 +57,11 @@ public enum ItemSubType { * @return the ItemSubType type */ public static ItemSubType parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return NONE; } for (ItemSubType enm : ItemSubType.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return enm; } } @@ -77,11 +76,11 @@ public enum ItemSubType { * @return true if valid, false otherwise */ public static boolean isValid(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return true; } for (ItemSubType enm : ItemSubType.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return true; } } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ListUiAction.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ListUiAction.java index 7b5c91683..0f8bdbc43 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ListUiAction.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/ListUiAction.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; /** @@ -57,11 +56,11 @@ public enum ListUiAction { * @return the ListUiAction type */ public static ListUiAction parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return CLOSE; } for (ListUiAction enm : ListUiAction.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return enm; } } @@ -76,11 +75,11 @@ public enum ListUiAction { * @return true if valid, false otherwise */ public static boolean isValid(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return true; } for (ListUiAction enm : ListUiAction.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return true; } } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoButtonGroup.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoButtonGroup.java index 1df5f8272..7714773d6 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoButtonGroup.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoButtonGroup.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -110,28 +109,28 @@ public class NeeoButtonGroup { */ @Nullable public static NeeoButtonGroup parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return null; } // note: if we add more - might want to switch this into a loop - if (StringUtils.equalsIgnoreCase(text, POWERONOFF.text)) { + if (text.equalsIgnoreCase(POWERONOFF.text)) { return POWERONOFF; } - if (StringUtils.equalsIgnoreCase(text, VOLUMES.text)) { + if (text.equalsIgnoreCase(VOLUMES.text)) { return VOLUMES; } - if (StringUtils.equalsIgnoreCase(text, CHANNELS.text)) { + if (text.equalsIgnoreCase(CHANNELS.text)) { return CHANNELS; } - if (StringUtils.equalsIgnoreCase(text, CURSORUPDOWN.text)) { + if (text.equalsIgnoreCase(CURSORUPDOWN.text)) { return CURSORUPDOWN; } - if (StringUtils.equalsIgnoreCase(text, CURSORLEFTRIGHT.text)) { + if (text.equalsIgnoreCase(CURSORLEFTRIGHT.text)) { return CURSORLEFTRIGHT; } @@ -145,7 +144,7 @@ public class NeeoButtonGroup { * @return true if matches, false otherwise */ public boolean equals(String text) { - return StringUtils.equalsIgnoreCase(this.text, text); + return this.text.equalsIgnoreCase(text); } @Override diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoCapabilityType.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoCapabilityType.java index 4a7ef256e..6e0047223 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoCapabilityType.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoCapabilityType.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.thing.type.ChannelType; @@ -72,11 +71,11 @@ public enum NeeoCapabilityType { * @return the NeeoCapabilityType type */ public static NeeoCapabilityType parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return EXCLUDE; } for (NeeoCapabilityType enm : NeeoCapabilityType.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return enm; } } @@ -91,11 +90,12 @@ public enum NeeoCapabilityType { * @return the best guess {@link NeeoCapabilityType} */ public static NeeoCapabilityType guessType(@Nullable ChannelType channelType) { - if (channelType == null || StringUtils.isEmpty(channelType.getItemType())) { + String itemType = channelType == null ? null : channelType.getItemType(); + if (channelType == null || itemType == null || itemType.isEmpty()) { return NeeoCapabilityType.EXCLUDE; } - switch (channelType.getItemType().toLowerCase()) { + switch (itemType.toLowerCase()) { case "switch": case "contact": case "rollershutter": diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDevice.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDevice.java index 46324dd25..e18440764 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDevice.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDevice.java @@ -23,7 +23,6 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.items.Item; @@ -72,14 +71,13 @@ public class NeeoDevice { /** * The specific name for the device, if null - NEEO will default it based on the type (ie "ACCESSORY", etc) */ - @Nullable - private final String specificName; + + private final @Nullable String specificName; /** * The icon name to assign. If null, NEEO will default it to a standard icon based on the type */ - @Nullable - private final String iconName; + private final @Nullable String iconName; /** * The driver version for the device @@ -173,7 +171,7 @@ public class NeeoDevice { this.driverVersion = driverVersion; this.type = type; this.manufacturer = manufacturer; - this.name = name == null || StringUtils.isEmpty(name) ? "(N/A)" : name; + this.name = name == null || name.isEmpty() ? "(N/A)" : name; this.specificName = specificName; this.iconName = iconName; this.channels.addAll(channels); @@ -224,8 +222,7 @@ public class NeeoDevice { * * @return a possibly null, possibly empty specific name */ - @Nullable - public String getSpecificName() { + public @Nullable String getSpecificName() { return specificName; } @@ -234,8 +231,7 @@ public class NeeoDevice { * * @return a possibly null, possibly empty icon name */ - @Nullable - public String getIconName() { + public @Nullable String getIconName() { return iconName; } @@ -262,8 +258,7 @@ public class NeeoDevice { * * @return a possibly null {@link NeeoDeviceTiming} */ - @Nullable - public NeeoDeviceTiming getDeviceTiming() { + public @Nullable NeeoDeviceTiming getDeviceTiming() { if (supportTiming(this)) { return timing; } @@ -287,8 +282,7 @@ public class NeeoDevice { public NeeoDeviceChannel[] getExposedChannels() { final List exposedChannels = new ArrayList<>(channels.size()); for (NeeoDeviceChannel channel : channels) { - if (channel.getType() != NeeoCapabilityType.EXCLUDE - && StringUtils.isNotEmpty(channel.getType().toString())) { + if (channel.getType() != NeeoCapabilityType.EXCLUDE && !channel.getType().toString().isEmpty()) { exposedChannels.add(channel); } } @@ -308,8 +302,8 @@ public class NeeoDevice { for (NeeoDeviceChannel channel : channels) { final boolean notExcluded = channel.getType() != NeeoCapabilityType.EXCLUDE; - final boolean notEmpty = StringUtils.isNotEmpty(channel.getType().toString()); - final boolean isItemMatch = StringUtils.equalsIgnoreCase(itemName, channel.getItemName()); + final boolean notEmpty = !channel.getType().toString().isEmpty(); + final boolean isItemMatch = itemName.equalsIgnoreCase(channel.getItemName()); logger.trace("isExposed(channel): {} --- notExcluded({}) -- notEmpty({}) -- isItemMatch({}) -- {}", itemName, notExcluded, notEmpty, isItemMatch, channel); @@ -330,13 +324,12 @@ public class NeeoDevice { * @param channelNbr the channel nbr * @return the channel or null if none found */ - @Nullable - public NeeoDeviceChannel getChannel(String itemName, ItemSubType subType, int channelNbr) { + public @Nullable NeeoDeviceChannel getChannel(String itemName, ItemSubType subType, int channelNbr) { NeeoUtil.requireNotEmpty(itemName, "itemName cannot be empty"); Objects.requireNonNull(subType, "subType cannot be null"); for (NeeoDeviceChannel channel : channels) { - if (StringUtils.equalsIgnoreCase(itemName, channel.getItemName()) && channel.getSubType() == subType + if (itemName.equalsIgnoreCase(channel.getItemName()) && channel.getSubType() == subType && channel.getChannelNbr() == channelNbr) { return channel; } @@ -351,11 +344,10 @@ public class NeeoDevice { * @param context the non-null service context * @return the new {@link NeeoDevice} or null if the {@link Thing} doesn't exist anymore */ - @Nullable - public NeeoDevice merge(ServiceContext context) { + public @Nullable NeeoDevice merge(ServiceContext context) { Objects.requireNonNull(context, "context cannot be null"); - if (StringUtils.equalsIgnoreCase(NeeoConstants.NEEOIO_BINDING_ID, uid.getBindingId())) { + if (NeeoConstants.NEEOIO_BINDING_ID.equals(uid.getBindingId())) { return this; } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelKind.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelKind.java index 02f938f88..1959915e9 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelKind.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelKind.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.type.ChannelKind; @@ -50,11 +49,11 @@ public enum NeeoDeviceChannelKind { * @return the NeeoDeviceChannelKind type */ public static NeeoDeviceChannelKind parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return ITEM; } for (NeeoDeviceChannelKind enm : NeeoDeviceChannelKind.values()) { - if (StringUtils.equalsIgnoreCase(text, enm.text)) { + if (text.equalsIgnoreCase(enm.text)) { return enm; } } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelRange.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelRange.java index 00b389815..5695a6eb0 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelRange.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceChannelRange.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.items.Item; import org.openhab.core.library.types.PercentType; @@ -64,7 +63,7 @@ public class NeeoDeviceChannelRange { } this.minValue = minValue; this.maxValue = maxValue; - this.unit = StringUtils.isEmpty(unit) ? UNIT_NUMBER : unit; + this.unit = unit.isEmpty() ? UNIT_NUMBER : unit; } /** diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceType.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceType.java index 2a365259c..33446c0dd 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceType.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDeviceType.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -51,7 +50,7 @@ public class NeeoDeviceType { */ private NeeoDeviceType(final String text) { Objects.requireNonNull(text, "text is required"); - this.text = StringUtils.equalsIgnoreCase(text, ACCESSORY) ? ACCESSOIRE.text : text; + this.text = text.equalsIgnoreCase(ACCESSORY) ? ACCESSOIRE.text : text; } /** @@ -61,11 +60,11 @@ public class NeeoDeviceType { * @return the possibly null NeeoDeviceType */ public static NeeoDeviceType parse(final String text) { - if (StringUtils.isEmpty(text)) { + if (text.isEmpty()) { return EXCLUDE; } - if (StringUtils.equalsIgnoreCase(text, ACCESSOIRE.text) || StringUtils.equalsIgnoreCase(text, ACCESSORY)) { + if (text.equalsIgnoreCase(ACCESSOIRE.text) || text.equalsIgnoreCase(ACCESSORY)) { return ACCESSOIRE; } @@ -82,7 +81,7 @@ public class NeeoDeviceType { if (obj == null || getClass() != obj.getClass()) { return false; } - return StringUtils.equals(text, ((NeeoDeviceType) obj).text); + return text.equals(((NeeoDeviceType) obj).text); } @Override diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDirectoryResultItem.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDirectoryResultItem.java index ba5e82081..e41a91ae2 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDirectoryResultItem.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoDirectoryResultItem.java @@ -12,7 +12,6 @@ */ package org.openhab.io.neeo.internal.models; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.NeeoUtil; @@ -29,16 +28,13 @@ public class NeeoDirectoryResultItem { private final String title; /** The URI to the thumbnail representing the item */ - @Nullable - private final String thumbnailUri; + private final @Nullable String thumbnailUri; /** The browse identifier (reflected back in a request if this item is a container) */ - @Nullable - private final String browseIdentifier; + private final @Nullable String browseIdentifier; /** The action identifier (reflected back in a request if this is a leaf) */ - @Nullable - private final String actionIdentifier; + private final @Nullable String actionIdentifier; /** Whether the item is queueable (no explanation posted by NEEO) */ private final boolean isQueueable; @@ -57,7 +53,8 @@ public class NeeoDirectoryResultItem { @Nullable String actionIdentifier, boolean isQueueable) { NeeoUtil.requireNotEmpty(title, "title cannot be empty"); - if (StringUtils.isEmpty(browseIdentifier) && StringUtils.isEmpty(actionIdentifier)) { + if ((browseIdentifier == null || browseIdentifier.isEmpty()) + && (actionIdentifier == null || actionIdentifier.isEmpty())) { throw new IllegalArgumentException("Either browserIdentifier or actionIdentifier must be specified"); } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoNotification.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoNotification.java index 704cf053b..ebb15b2d4 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoNotification.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoNotification.java @@ -12,7 +12,6 @@ */ package org.openhab.io.neeo.internal.models; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.NeeoUtil; @@ -43,7 +42,7 @@ public class NeeoNotification { NeeoUtil.requireNotEmpty(itemName, "itemName cannot be empty"); this.type = deviceKey + ":" + itemName; - this.data = data == null || (data instanceof String && StringUtils.isEmpty(data.toString())) ? "-" : data; + this.data = data == null || (data instanceof String && data.toString().isEmpty()) ? "-" : data; } /** diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSensorNotification.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSensorNotification.java index 1afea2923..86905e1ee 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSensorNotification.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSensorNotification.java @@ -12,7 +12,6 @@ */ package org.openhab.io.neeo.internal.models; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.NeeoConstants; @@ -56,14 +55,13 @@ public class NeeoSensorNotification { NeeoUtil.requireNotEmpty(deviceKey, "deviceKey cannot be empty"); NeeoUtil.requireNotEmpty(itemName, "itemName cannot be empty"); - this.type = overrideType == null || StringUtils.isEmpty(overrideType) - ? NeeoConstants.NEEO_SENSOR_NOTIFICATION_TYPE + this.type = overrideType == null || overrideType.isEmpty() ? NeeoConstants.NEEO_SENSOR_NOTIFICATION_TYPE : overrideType; this.data = new SensorNotificationData( deviceKey + ":" + itemName - + (StringUtils.endsWithIgnoreCase(itemName, NeeoConstants.NEEO_SENSOR_SUFFIX) ? "" + + (itemName.toLowerCase().endsWith(NeeoConstants.NEEO_SENSOR_SUFFIX.toLowerCase()) ? "" : NeeoConstants.NEEO_SENSOR_SUFFIX), - data == null || (data instanceof String && StringUtils.isEmpty(data.toString())) ? "-" : data); + data == null || (data instanceof String && data.toString().isEmpty()) ? "-" : data); } /** diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSystemInfo.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSystemInfo.java index 3f6b0c4d1..6f01d8df5 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSystemInfo.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoSystemInfo.java @@ -15,7 +15,6 @@ package org.openhab.io.neeo.internal.models; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.NeeoUtil; @@ -81,7 +80,7 @@ public class NeeoSystemInfo { * @return true if greater than or equal, false otherwise */ public boolean isFirmwareGreaterOrEqual(String checkFirmwareVersion) { - if (StringUtils.isEmpty(checkFirmwareVersion)) { + if (checkFirmwareVersion.isEmpty()) { return true; } @@ -136,6 +135,6 @@ public class NeeoSystemInfo { return false; } - return StringUtils.equals(hostname, ((NeeoSystemInfo) obj).hostname); + return hostname.equals(((NeeoSystemInfo) obj).hostname); } } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoThingUID.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoThingUID.java index 26adb3a10..5ae24800b 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoThingUID.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/models/NeeoThingUID.java @@ -12,7 +12,7 @@ */ package org.openhab.io.neeo.internal.models; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingUID; import org.openhab.io.neeo.internal.NeeoConstants; diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoBrainDeviceSerializer.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoBrainDeviceSerializer.java index 3b513b6b9..f85e95c90 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoBrainDeviceSerializer.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoBrainDeviceSerializer.java @@ -16,7 +16,6 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.NeeoConstants; @@ -90,16 +89,16 @@ public class NeeoBrainDeviceSerializer implements JsonSerializer { jsonObject.add("device", deviceObj); final String specificName = device.getSpecificName(); - if (specificName != null && StringUtils.isNotEmpty(specificName)) { + if (specificName != null && !specificName.isEmpty()) { deviceObj.addProperty("specificname", specificName); jsonObject.addProperty("specificname", specificName); - } else if (StringUtils.isNotEmpty(deviceName)) { + } else if (!deviceName.isEmpty()) { deviceObj.addProperty("specificname", deviceName); jsonObject.addProperty("specificname", deviceName); } final String iconName = device.getIconName(); - if (iconName != null && StringUtils.isNotEmpty(iconName)) { + if (iconName != null && !iconName.isEmpty()) { deviceObj.addProperty("icon", iconName); jsonObject.addProperty("icon", iconName); } @@ -113,19 +112,19 @@ public class NeeoBrainDeviceSerializer implements JsonSerializer { final String uniqueItemName = channel.getUniqueItemName(); final String sensorItemName = uniqueItemName - + (StringUtils.endsWithIgnoreCase(uniqueItemName, NeeoConstants.NEEO_SENSOR_SUFFIX) ? "" + + (uniqueItemName.toLowerCase().endsWith(NeeoConstants.NEEO_SENSOR_SUFFIX.toLowerCase()) ? "" : NeeoConstants.NEEO_SENSOR_SUFFIX); if (capabilityType == NeeoCapabilityType.BUTTON) { - final String name = StringUtils.isEmpty(channel.getLabel()) ? uniqueItemName : channel.getLabel(); + final String name = channel.getLabel().isEmpty() ? uniqueItemName : channel.getLabel(); if (channel.getKind() == NeeoDeviceChannelKind.TRIGGER) { final String path = compPath + "/button/trigger"; capabilities.add(createBase(name, channel.getLabel(), capabilityType.toString(), path)); } else { final String value = channel.getValue(); - final String path = compPath + "/button/" + (value == null || StringUtils.isEmpty(value) ? "on" - : NeeoUtil.encodeURIComponent(value.trim())); + final String path = compPath + "/button/" + + (value == null || value.isEmpty() ? "on" : NeeoUtil.encodeURIComponent(value.trim())); capabilities.add(createBase(name, channel.getLabel(), capabilityType.toString(), path)); } } else if (capabilityType == NeeoCapabilityType.SENSOR_POWER) { @@ -187,8 +186,7 @@ public class NeeoBrainDeviceSerializer implements JsonSerializer { } } else if (capabilityType == NeeoCapabilityType.IMAGEURL) { final String value = channel.getValue(); - final String size = (value == null || StringUtils.isEmpty(value) ? "large" : value.trim()) - .toLowerCase(); + final String size = (value == null || value.isEmpty() ? "large" : value.trim()).toLowerCase(); final JsonObject jo = createBase(uniqueItemName, channel.getLabel(), capabilityType.toString(), compPath + "/image/actor", "sensor", new JsonPrimitive(sensorItemName)); @@ -277,7 +275,7 @@ public class NeeoBrainDeviceSerializer implements JsonSerializer { compObj.addProperty("type", type); compObj.addProperty("path", NeeoUtil.encodeURIComponent(path)); - if (sensor != null && StringUtils.isNotEmpty(sensorName)) { + if (sensor != null && sensorName != null && !sensorName.isEmpty()) { if (sensor instanceof JsonPrimitive) { compObj.addProperty(sensorName, sensor.getAsString()); } else { diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoDeviceChannelSerializer.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoDeviceChannelSerializer.java index e81b1bb50..6c1bbcc13 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoDeviceChannelSerializer.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/serialization/NeeoDeviceChannelSerializer.java @@ -16,7 +16,6 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.items.Item; @@ -99,12 +98,13 @@ public class NeeoDeviceChannelSerializer final Item item = localContext.getItemRegistry().getItem(chnl.getItemName()); itemType = item.getType(); - if (StringUtils.isNotEmpty(item.getLabel())) { - itemLabel = item.getLabel(); + String label = item.getLabel(); + if (label != null && !label.isEmpty()) { + itemLabel = label; } for (Class cmd : item.getAcceptedCommandTypes()) { - if (!StringUtils.equalsIgnoreCase(cmd.getSimpleName(), "refreshtype")) { + if (!cmd.getSimpleName().equalsIgnoreCase("refreshtype")) { commandTypes.add(cmd.getSimpleName().toLowerCase()); } } @@ -127,7 +127,7 @@ public class NeeoDeviceChannelSerializer itemType = "N/A"; } - if (StringUtils.isNotEmpty(itemLabel)) { + if (!itemLabel.isEmpty()) { switch (chnl.getSubType()) { case HUE: itemType += " (Hue)"; @@ -172,7 +172,7 @@ public class NeeoDeviceChannelSerializer final JsonObject jo = (JsonObject) elm; final String itemName = NeeoUtil.getString(jo, "itemName"); - if (itemName == null || StringUtils.isEmpty(itemName)) { + if (itemName == null || itemName.isEmpty()) { throw new JsonParseException("Element requires an itemName attribute: " + elm); } @@ -201,19 +201,17 @@ public class NeeoDeviceChannelSerializer final boolean labelVisible = jo.has("labelVisible") ? jo.get("labelVisible").getAsBoolean() : true; return new NeeoDeviceChannelText(kind, itemName, channelNbr, capType, itemSubType, - label == null || StringUtils.isEmpty(label) ? NeeoUtil.NOTAVAILABLE : label, value, range, - labelVisible); + label == null || label.isEmpty() ? NeeoUtil.NOTAVAILABLE : label, value, range, labelVisible); } else if (capType == NeeoCapabilityType.DIRECTORY) { final NeeoDeviceChannelDirectoryListItem[] listItems = jo.has("listItems") ? context.deserialize(jo.get("listItems"), NeeoDeviceChannelDirectoryListItem[].class) : new NeeoDeviceChannelDirectoryListItem[0]; return new NeeoDeviceChannelDirectory(kind, itemName, channelNbr, capType, itemSubType, - label == null || StringUtils.isEmpty(label) ? NeeoUtil.NOTAVAILABLE : label, value, range, - listItems); + label == null || label.isEmpty() ? NeeoUtil.NOTAVAILABLE : label, value, range, listItems); } else { return new NeeoDeviceChannel(kind, itemName, channelNbr, capType, itemSubType, - label == null || StringUtils.isEmpty(label) ? NeeoUtil.NOTAVAILABLE : label, value, range); + label == null || label.isEmpty() ? NeeoUtil.NOTAVAILABLE : label, value, range); } } catch (NullPointerException | IllegalArgumentException e) { throw new JsonParseException(e); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/BrainDashboardService.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/BrainDashboardService.java index c3e9713d8..4af87314e 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/BrainDashboardService.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/BrainDashboardService.java @@ -20,7 +20,6 @@ import java.util.Objects; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.io.neeo.NeeoService; import org.openhab.io.neeo.internal.NeeoBrainServlet; @@ -69,11 +68,9 @@ public class BrainDashboardService extends DefaultServletService { */ @Override public boolean canHandleRoute(String[] paths) { - return paths.length >= 1 && (StringUtils.equalsIgnoreCase(paths[0], "brainstatus") - || StringUtils.equalsIgnoreCase(paths[0], "addbrain") - || StringUtils.equalsIgnoreCase(paths[0], "removebrain") - || StringUtils.equalsIgnoreCase(paths[0], "getlog") - || StringUtils.equalsIgnoreCase(paths[0], "blinkled")); + return paths.length >= 1 && (paths[0].equalsIgnoreCase("brainstatus") || paths[0].equalsIgnoreCase("addbrain") + || paths[0].equalsIgnoreCase("removebrain") || paths[0].equalsIgnoreCase("getlog") + || paths[0].equalsIgnoreCase("blinkled")); } /** @@ -88,13 +85,13 @@ public class BrainDashboardService extends DefaultServletService { Objects.requireNonNull(resp, "resp cannot be null"); try { - if (StringUtils.equalsIgnoreCase(paths[0], "brainstatus")) { + if (paths[0].equalsIgnoreCase("brainstatus")) { final List status = new ArrayList<>(); for (NeeoBrainServlet servlet : service.getServlets()) { status.add(servlet.getBrainStatus()); } NeeoUtil.write(resp, gson.toJson(status)); - } else if (StringUtils.equalsIgnoreCase(paths[0], "blinkled")) { + } else if (paths[0].equalsIgnoreCase("blinkled")) { final String brainId = req.getParameter("brainid"); if (brainId == null) { NeeoUtil.write(resp, gson.toJson(new ReturnStatus("BrainID is null"))); @@ -112,7 +109,7 @@ public class BrainDashboardService extends DefaultServletService { } } } - } else if (StringUtils.equalsIgnoreCase(paths[0], "getlog")) { + } else if (paths[0].equalsIgnoreCase("getlog")) { final String brainId = req.getParameter("brainid"); if (brainId == null) { NeeoUtil.write(resp, gson.toJson(new ReturnStatus("BrainID is null"))); @@ -131,7 +128,7 @@ public class BrainDashboardService extends DefaultServletService { } } } else { - logger.debug("Unknown get path: {}", StringUtils.join(paths, ',')); + logger.debug("Unknown get path: {}", String.join(",", paths)); } } catch (JsonParseException | IllegalArgumentException | NullPointerException e) { logger.debug("Exception handling get: {}", e.getMessage(), e); @@ -154,7 +151,7 @@ public class BrainDashboardService extends DefaultServletService { } try { - if (StringUtils.equalsIgnoreCase(paths[0], "removebrain")) { + if (paths[0].equalsIgnoreCase("removebrain")) { final BrainInfo info = gson.fromJson(req.getReader(), BrainInfo.class); final String brainId = info.getBrainId(); if (brainId == null) { @@ -165,7 +162,7 @@ public class BrainDashboardService extends DefaultServletService { NeeoUtil.write(resp, gson.toJson(new ReturnStatus("BrainID (" + brainId + ") could not be removed"))); } - } else if (StringUtils.equalsIgnoreCase(paths[0], "addbrain")) { + } else if (paths[0].equalsIgnoreCase("addbrain")) { final BrainInfo info = gson.fromJson(req.getReader(), BrainInfo.class); final String brainIp = info.getBrainIp(); if (brainIp == null) { @@ -177,7 +174,7 @@ public class BrainDashboardService extends DefaultServletService { "Brain (" + brainIp + ") could not be added - no brain at that IP Address"))); } } else { - logger.debug("Unknown get path: {}", StringUtils.join(paths, ',')); + logger.debug("Unknown get path: {}", String.join(",", paths)); } } catch (JsonParseException | IllegalArgumentException | NullPointerException e) { logger.debug("Exception handling get: {}", e.getMessage(), e); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainSearchService.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainSearchService.java index 30eab839b..31efdb718 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainSearchService.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainSearchService.java @@ -24,7 +24,6 @@ import java.util.concurrent.ConcurrentHashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.io.neeo.internal.NeeoConstants; import org.openhab.io.neeo.internal.NeeoUtil; @@ -60,7 +59,7 @@ public class NeeoBrainSearchService extends DefaultServletService { private final ServiceContext context; /** The last search results */ - private final ConcurrentHashMap lastSearchResults = new ConcurrentHashMap<>(); + private final Map lastSearchResults = new ConcurrentHashMap<>(); /** * Constructs the service from the given {@link ServiceContext}. @@ -85,7 +84,7 @@ public class NeeoBrainSearchService extends DefaultServletService { */ @Override public boolean canHandleRoute(String[] paths) { - return paths.length >= 1 && StringUtils.equalsIgnoreCase(paths[0], "db"); + return paths.length >= 1 && paths[0].equalsIgnoreCase("db"); } /** @@ -103,17 +102,17 @@ public class NeeoBrainSearchService extends DefaultServletService { Objects.requireNonNull(paths, "paths cannot be null"); Objects.requireNonNull(resp, "resp cannot be null"); if (paths.length < 2) { - throw new IllegalArgumentException("paths must have atleast 2 elements: " + StringUtils.join(paths)); + throw new IllegalArgumentException("paths must have atleast 2 elements: " + String.join("", paths)); } - final String path = StringUtils.lowerCase(paths[1]); + final String path = paths[1].toLowerCase(); - if (StringUtils.equalsIgnoreCase(path, "search")) { + if (path.equalsIgnoreCase("search")) { String queryString = req.getQueryString(); if (queryString != null) { doSearch(queryString, resp); } - } else if (StringUtils.equalsIgnoreCase(path, "adapterdefinition") && paths.length >= 3) { + } else if (path.equalsIgnoreCase("adapterdefinition") && paths.length >= 3) { doAdapterDefinition(paths[2], resp); } else { doQuery(path, resp); @@ -131,7 +130,7 @@ public class NeeoBrainSearchService extends DefaultServletService { Objects.requireNonNull(queryString, "queryString cannot be null"); Objects.requireNonNull(resp, "resp cannot be null"); - final int idx = StringUtils.indexOf(queryString, '='); + final int idx = queryString.indexOf("="); if (idx >= 0 && idx + 1 < queryString.length()) { final String search = NeeoUtil.decodeURIComponent(queryString.substring(idx + 1)); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainService.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainService.java index 1c12dbf3b..75a246026 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainService.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/NeeoBrainService.java @@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.client.ClientBuilder; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -142,13 +141,12 @@ public class NeeoBrainService extends DefaultServletService { return false; } - if (StringUtils.equalsIgnoreCase(paths[0], "device")) { + if (paths[0].equalsIgnoreCase("device")) { return true; } final String lastPath = paths.length >= 2 ? paths[1] : null; - return StringUtils.equalsIgnoreCase(lastPath, "subscribe") - || StringUtils.equalsIgnoreCase(lastPath, "unsubscribe"); + return "subscribe".equalsIgnoreCase(lastPath) || "unsubscribe".equalsIgnoreCase(lastPath); } @Override @@ -160,19 +158,19 @@ public class NeeoBrainService extends DefaultServletService { throw new IllegalArgumentException("paths cannot be empty"); } - final boolean hasDeviceStart = StringUtils.equalsIgnoreCase(paths[0], "device"); + final boolean hasDeviceStart = paths[0].equalsIgnoreCase("device"); if (hasDeviceStart) { final PathInfo pathInfo = new PathInfo(paths); - if (StringUtils.equalsIgnoreCase("directory", pathInfo.getComponentType())) { + if ("directory".equalsIgnoreCase(pathInfo.getComponentType())) { handleDirectory(req, resp, pathInfo); } else { - logger.debug("Unknown/unhandled brain service device route (POST): {}", StringUtils.join(paths, '/')); + logger.debug("Unknown/unhandled brain service device route (POST): {}", String.join("/", paths)); } } else { - logger.debug("Unknown/unhandled brain service route (POST): {}", StringUtils.join(paths, '/')); + logger.debug("Unknown/unhandled brain service route (POST): {}", String.join("/", paths)); } } @@ -192,26 +190,27 @@ public class NeeoBrainService extends DefaultServletService { // 4. Old subscribe path: /{thingUID}/subscribe or unsubscribe/{deviceid}/{devicekey} // 4. Old unsubscribe path: /{thingUID}/subscribe or unsubscribe/{deviceid} - final boolean hasDeviceStart = StringUtils.equalsIgnoreCase(paths[0], "device"); - if (hasDeviceStart && (paths.length >= 3 && !StringUtils.equalsIgnoreCase(paths[2], "subscribe") - && !StringUtils.equalsIgnoreCase(paths[2], "unsubscribe"))) { + final boolean hasDeviceStart = paths[0].equalsIgnoreCase("device"); + if (hasDeviceStart && (paths.length >= 3 && !paths[2].equalsIgnoreCase("subscribe") + && !paths[2].equalsIgnoreCase("unsubscribe"))) { try { final PathInfo pathInfo = new PathInfo(paths); - if (StringUtils.isEmpty(pathInfo.getActionValue())) { + String actionValue = pathInfo.getActionValue(); + if (actionValue == null || actionValue.isEmpty()) { handleGetValue(resp, pathInfo); } else { handleSetValue(resp, pathInfo); } } catch (IllegalArgumentException e) { - logger.debug("Bad path: {} - {}", StringUtils.join(paths), e.getMessage(), e); + logger.debug("Bad path: {} - {}", String.join("", paths), e.getMessage(), e); } } else { int idx = hasDeviceStart ? 1 : 0; if (idx + 2 < paths.length) { final String adapterName = paths[idx++]; - final String action = StringUtils.lowerCase(paths[idx++]); + final String action = paths[idx++].toLowerCase(); idx++; // deviceId/default - not used switch (action) { @@ -220,7 +219,7 @@ public class NeeoBrainService extends DefaultServletService { final String deviceKey = paths[idx++]; handleSubscribe(resp, adapterName, deviceKey); } else { - logger.debug("No device key set for a subscribe action: {}", StringUtils.join(paths, '/')); + logger.debug("No device key set for a subscribe action: {}", String.join("/", paths)); } break; case "unsubscribe": @@ -231,7 +230,7 @@ public class NeeoBrainService extends DefaultServletService { } } else { - logger.debug("Unknown/unhandled brain service route (GET): {}", StringUtils.join(paths, '/')); + logger.debug("Unknown/unhandled brain service route (GET): {}", String.join("/", paths)); } } } @@ -384,7 +383,7 @@ public class NeeoBrainService extends DefaultServletService { if (device != null) { final NeeoDeviceChannel channel = device.getChannel(pathInfo.getItemName(), pathInfo.getSubType(), pathInfo.getChannelNbr()); - if (StringUtils.equalsIgnoreCase("action", pathInfo.getActionValue())) { + if ("action".equalsIgnoreCase(pathInfo.getActionValue())) { final NeeoDirectoryRequestAction discoveryAction = gson.fromJson(req.getReader(), NeeoDirectoryRequestAction.class); @@ -515,13 +514,11 @@ public class NeeoBrainService extends DefaultServletService { if (state instanceof OnOffType) { Boolean recipeState = null; final String label = channel.getLabel(); - if (StringUtils.equalsIgnoreCase(NeeoButtonGroup.POWERONOFF.getText(), label)) { + if (NeeoButtonGroup.POWERONOFF.getText().equalsIgnoreCase(label)) { recipeState = state == OnOffType.ON; - } else if (state == OnOffType.ON - && StringUtils.equalsIgnoreCase(ButtonInfo.POWERON.getLabel(), label)) { + } else if (state == OnOffType.ON && ButtonInfo.POWERON.getLabel().equalsIgnoreCase(label)) { recipeState = true; - } else if (state == OnOffType.OFF - && StringUtils.equalsIgnoreCase(ButtonInfo.POWEROFF.getLabel(), label)) { + } else if (state == OnOffType.OFF && ButtonInfo.POWEROFF.getLabel().equalsIgnoreCase(label)) { recipeState = false; } diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/ThingDashboardService.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/ThingDashboardService.java index cd722dd2d..dd41472e7 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/ThingDashboardService.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/ThingDashboardService.java @@ -21,7 +21,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ChannelUID; import org.openhab.io.neeo.NeeoService; @@ -84,14 +83,14 @@ public class ThingDashboardService extends DefaultServletService { */ @Override public boolean canHandleRoute(String[] paths) { - return paths.length >= 1 && (StringUtils.equalsIgnoreCase(paths[0], "thingstatus") - || StringUtils.equalsIgnoreCase(paths[0], "getchannel") - || StringUtils.equalsIgnoreCase(paths[0], "getvirtualdevice") - || StringUtils.equalsIgnoreCase(paths[0], "restoredevice") - || StringUtils.equalsIgnoreCase(paths[0], "refreshdevice") - || StringUtils.equalsIgnoreCase(paths[0], "deletedevice") - || StringUtils.equalsIgnoreCase(paths[0], "exportrules") - || StringUtils.equalsIgnoreCase(paths[0], "updatedevice")); + return paths.length >= 1 && (paths[0].equalsIgnoreCase("thingstatus") // + || paths[0].equalsIgnoreCase("getchannel") // + || paths[0].equalsIgnoreCase("getvirtualdevice") // + || paths[0].equalsIgnoreCase("restoredevice") // + || paths[0].equalsIgnoreCase("refreshdevice") // + || paths[0].equalsIgnoreCase("deletedevice") // + || paths[0].equalsIgnoreCase("exportrules") // + || paths[0].equalsIgnoreCase("updatedevice")); } /** @@ -106,10 +105,10 @@ public class ThingDashboardService extends DefaultServletService { Objects.requireNonNull(resp, "resp cannot be null"); try { - if (StringUtils.equalsIgnoreCase(paths[0], "thingstatus")) { + if (paths[0].equalsIgnoreCase("thingstatus")) { final List devices = context.getDefinitions().getAllDevices(); NeeoUtil.write(resp, gson.toJson(devices)); - } else if (StringUtils.equalsIgnoreCase(paths[0], "getchannel")) { + } else if (paths[0].equalsIgnoreCase("getchannel")) { final String itemName = NeeoUtil.decodeURIComponent(req.getParameter("itemname")); final List channels = context.getDefinitions().getNeeoDeviceChannel(itemName); if (channels == null) { @@ -117,13 +116,13 @@ public class ThingDashboardService extends DefaultServletService { } else { NeeoUtil.write(resp, gson.toJson(new ReturnStatus(channels))); } - } else if (StringUtils.equalsIgnoreCase(paths[0], "getvirtualdevice")) { + } else if (paths[0].equalsIgnoreCase("getvirtualdevice")) { final NeeoThingUID uid = context.generate(NeeoConstants.VIRTUAL_THING_TYPE); final NeeoDevice device = new NeeoDevice(uid, 0, NeeoDeviceType.EXCLUDE, "NEEO Integration", "New Virtual Thing", new ArrayList<>(), null, null, null, null); NeeoUtil.write(resp, gson.toJson(new ReturnStatus(device))); } else { - logger.debug("Unknown get path: {}", StringUtils.join(paths, ',')); + logger.debug("Unknown get path: {}", String.join(",", paths)); } } catch (JsonParseException | IllegalArgumentException | NullPointerException e) { logger.debug("Exception handling get: {}", e.getMessage(), e); @@ -146,7 +145,7 @@ public class ThingDashboardService extends DefaultServletService { } try { - if (StringUtils.equalsIgnoreCase(paths[0], "updatedevice")) { + if (paths[0].equalsIgnoreCase("updatedevice")) { final NeeoDevice device = gson.fromJson(req.getReader(), NeeoDevice.class); context.getDefinitions().put(device); @@ -155,7 +154,7 @@ public class ThingDashboardService extends DefaultServletService { } NeeoUtil.write(resp, gson.toJson(ReturnStatus.SUCCESS)); - } else if (StringUtils.equalsIgnoreCase(paths[0], "restoredevice")) { + } else if (paths[0].equalsIgnoreCase("restoredevice")) { final NeeoThingUID uid = new NeeoThingUID(IOUtils.toString(req.getReader())); context.getDefinitions().remove(uid); final NeeoDevice device = context.getDefinitions().getDevice(uid); @@ -164,7 +163,7 @@ public class ThingDashboardService extends DefaultServletService { } else { NeeoUtil.write(resp, gson.toJson(new ReturnStatus(device))); } - } else if (StringUtils.equalsIgnoreCase(paths[0], "refreshdevice")) { + } else if (paths[0].equalsIgnoreCase("refreshdevice")) { final NeeoThingUID uid = new NeeoThingUID(IOUtils.toString(req.getReader())); final NeeoDevice device = context.getDefinitions().getDevice(uid); if (device == null) { @@ -172,12 +171,12 @@ public class ThingDashboardService extends DefaultServletService { } else { NeeoUtil.write(resp, gson.toJson(new ReturnStatus(device))); } - } else if (StringUtils.equalsIgnoreCase(paths[0], "deletedevice")) { + } else if (paths[0].equalsIgnoreCase("deletedevice")) { final NeeoThingUID uid = new NeeoThingUID(IOUtils.toString(req.getReader())); final boolean deleted = context.getDefinitions().remove(uid); NeeoUtil.write(resp, gson.toJson(new ReturnStatus( deleted ? null : "Device " + uid + " was not found (possibly already deleted?)"))); - } else if (StringUtils.equalsIgnoreCase(paths[0], "exportrules")) { + } else if (paths[0].equalsIgnoreCase("exportrules")) { final NeeoThingUID uid = new NeeoThingUID(IOUtils.toString(req.getReader())); final NeeoDevice device = context.getDefinitions().getDevice(uid); if (device == null) { @@ -186,7 +185,7 @@ public class ThingDashboardService extends DefaultServletService { writeExampleRules(resp, device); } } else { - logger.debug("Unknown post path: {}", StringUtils.join(paths, ',')); + logger.debug("Unknown post path: {}", String.join(",", paths)); } } catch (JsonParseException | IllegalArgumentException | NullPointerException e) { logger.debug("Exception handling post: {}", e.getMessage(), e); diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/PathInfo.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/PathInfo.java index 0c6737a59..e6561a3cf 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/PathInfo.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/PathInfo.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.servletservices.models; import java.util.Objects; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.models.ItemSubType; @@ -47,8 +46,7 @@ public class PathInfo { private final String componentSubType; /** The action value */ - @Nullable - private final String actionValue; + private final @Nullable String actionValue; /** * Creates the path info object from the route path @@ -89,7 +87,7 @@ public class PathInfo { componentType = paths[idx++]; // actor/sensor/buttoncmd - if (StringUtils.equalsIgnoreCase("button", componentType)) { + if ("button".equalsIgnoreCase(componentType)) { componentSubType = "actor"; actionValue = paths[idx++]; } else { diff --git a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/ReturnStatus.java b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/ReturnStatus.java index d9025996f..95161c402 100644 --- a/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/ReturnStatus.java +++ b/bundles/org.openhab.io.neeo/src/main/java/org/openhab/io/neeo/internal/servletservices/models/ReturnStatus.java @@ -14,7 +14,6 @@ package org.openhab.io.neeo.internal.servletservices.models; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.io.neeo.internal.models.NeeoDevice; @@ -36,16 +35,13 @@ public class ReturnStatus { private final boolean success; /** The optional message if not successful */ - @Nullable - private final String message; + private final @Nullable String message; /** The optional device if successful */ - @Nullable - private final NeeoDevice device; + private final @Nullable NeeoDevice device; /** The optional channel if successful */ - @Nullable - private final List channels; + private final @Nullable List channels; /** * Creates a return status of true or not (with no message or device) @@ -81,7 +77,7 @@ public class ReturnStatus { * @param message the possibly null, possibly empty message */ public ReturnStatus(@Nullable String message) { - this(StringUtils.isEmpty(message), message, null, null); + this(message == null || message.isEmpty(), message, null, null); } /** @@ -124,8 +120,7 @@ public class ReturnStatus { * * @return the possibly empty, possibly null message */ - @Nullable - public String getMessage() { + public @Nullable String getMessage() { return message; } @@ -134,8 +129,7 @@ public class ReturnStatus { * * @return the possibly null device */ - @Nullable - public NeeoDevice getDevice() { + public @Nullable NeeoDevice getDevice() { return device; } @@ -144,8 +138,7 @@ public class ReturnStatus { * * @return the possibly null channel */ - @Nullable - public List getChannels() { + public @Nullable List getChannels() { return channels; } diff --git a/itests/org.openhab.binding.astro.tests/itest.bndrun b/itests/org.openhab.binding.astro.tests/itest.bndrun index 2d98f92b7..ce7592897 100644 --- a/itests/org.openhab.binding.astro.tests/itest.bndrun +++ b/itests/org.openhab.binding.astro.tests/itest.bndrun @@ -10,7 +10,6 @@ Fragment-Host: org.openhab.binding.astro # -runbundles: \ javax.measure.unit-api;version='[1.0.0,1.0.1)',\ - org.apache.commons.lang;version='[2.6.0,2.6.1)',\ org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\ org.apache.felix.scr;version='[2.1.10,2.1.11)',\ org.eclipse.equinox.event;version='[1.4.300,1.4.301)',\ @@ -44,4 +43,5 @@ Fragment-Host: org.openhab.binding.astro org.mockito.mockito-core;version='[3.7.0,3.7.1)',\ org.objenesis;version='[3.1.0,3.1.1)',\ org.glassfish.hk2.osgi-resource-locator;version='[1.0.3,1.0.4)',\ - biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)' + biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)',\ + org.apache.commons.lang3;version='[3.9.0,3.9.1)' diff --git a/itests/org.openhab.binding.max.tests/itest.bndrun b/itests/org.openhab.binding.max.tests/itest.bndrun index b45bde948..05088103b 100644 --- a/itests/org.openhab.binding.max.tests/itest.bndrun +++ b/itests/org.openhab.binding.max.tests/itest.bndrun @@ -20,7 +20,6 @@ Fragment-Host: org.openhab.binding.max ch.qos.logback.core;version='[1.2.3,1.2.4)',\ com.google.gson;version='[2.8.2,2.8.3)',\ javax.measure.unit-api;version='[1.0.0,1.0.1)',\ - org.apache.commons.lang;version='[2.6.0,2.6.1)',\ org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ org.apache.felix.scr;version='[2.1.10,2.1.11)',\ @@ -58,4 +57,5 @@ Fragment-Host: org.openhab.binding.max junit-platform-engine;version='[1.7.0,1.7.1)',\ junit-platform-launcher;version='[1.7.0,1.7.1)',\ org.glassfish.hk2.osgi-resource-locator;version='[1.0.3,1.0.4)',\ - biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)' + biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)',\ + org.apache.commons.lang3;version='[3.9.0,3.9.1)' diff --git a/itests/org.openhab.binding.ntp.tests/itest.bndrun b/itests/org.openhab.binding.ntp.tests/itest.bndrun index 89fcb922f..1379be94d 100644 --- a/itests/org.openhab.binding.ntp.tests/itest.bndrun +++ b/itests/org.openhab.binding.ntp.tests/itest.bndrun @@ -20,7 +20,6 @@ Fragment-Host: org.openhab.binding.ntp ch.qos.logback.core;version='[1.2.3,1.2.4)',\ com.google.gson;version='[2.8.2,2.8.3)',\ javax.measure.unit-api;version='[1.0.0,1.0.1)',\ - org.apache.commons.lang;version='[2.6.0,2.6.1)',\ org.apache.commons.commons-net;version='[3.7.2,3.7.3)',\ org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ diff --git a/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java b/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java index d90dae0fa..e0e548c29 100644 --- a/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java +++ b/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java @@ -26,7 +26,6 @@ import java.util.Collections; import java.util.Locale; import java.util.TimeZone; -import org.apache.commons.lang.StringUtils; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; @@ -450,9 +449,7 @@ public class NtpOSGiTest extends JavaOSGiTest { } private String getStringChannelTimeZoneFromItemRegistry() { - String itemState = getItemState(ACCEPTED_ITEM_TYPE_STRING).toString(); - String timeZoneFromItemRegistry = StringUtils.substringAfterLast(itemState, " "); - return timeZoneFromItemRegistry; + return getItemState(ACCEPTED_ITEM_TYPE_STRING).toString().split(" ")[2]; } private void assertFormat(String initialDate, String formatPattern) { diff --git a/itests/org.openhab.binding.systeminfo.tests/itest.bndrun b/itests/org.openhab.binding.systeminfo.tests/itest.bndrun index a37e4c978..840fef836 100644 --- a/itests/org.openhab.binding.systeminfo.tests/itest.bndrun +++ b/itests/org.openhab.binding.systeminfo.tests/itest.bndrun @@ -20,7 +20,6 @@ Fragment-Host: org.openhab.binding.systeminfo -runbundles: \ com.google.gson;version='[2.8.2,2.8.3)',\ javax.measure.unit-api;version='[1.0.0,1.0.1)',\ - org.apache.commons.lang;version='[2.6.0,2.6.1)',\ org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ org.apache.felix.scr;version='[2.1.10,2.1.11)',\ @@ -66,4 +65,5 @@ Fragment-Host: org.openhab.binding.systeminfo org.mockito.mockito-core;version='[3.7.0,3.7.1)',\ org.objenesis;version='[3.1.0,3.1.1)',\ org.glassfish.hk2.osgi-resource-locator;version='[1.0.3,1.0.4)',\ - biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)' + biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)',\ + org.apache.commons.lang3;version='[3.9.0,3.9.1)' diff --git a/itests/org.openhab.binding.wemo.tests/itest.bndrun b/itests/org.openhab.binding.wemo.tests/itest.bndrun index 731ba0261..34bebcdb3 100644 --- a/itests/org.openhab.binding.wemo.tests/itest.bndrun +++ b/itests/org.openhab.binding.wemo.tests/itest.bndrun @@ -19,7 +19,6 @@ Fragment-Host: org.openhab.binding.wemo ch.qos.logback.core;version='[1.2.3,1.2.4)',\ com.google.gson;version='[2.8.2,2.8.3)',\ javax.measure.unit-api;version='[1.0.0,1.0.1)',\ - org.apache.commons.lang;version='[2.6.0,2.6.1)',\ org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ org.apache.felix.scr;version='[2.1.10,2.1.11)',\ @@ -77,4 +76,5 @@ Fragment-Host: org.openhab.binding.wemo org.mockito.mockito-core;version='[3.7.0,3.7.1)',\ org.objenesis;version='[3.1.0,3.1.1)',\ org.glassfish.hk2.osgi-resource-locator;version='[1.0.3,1.0.4)',\ - biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)' + biz.aQute.tester.junit-platform;version='[5.3.0,5.3.1)',\ + org.apache.commons.lang3;version='[3.9.0,3.9.1)'