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 b2bafe0386c6b..e46c9927263d1 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,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -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; @@ -95,7 +94,7 @@ public PlugwiseMessageProcessor(PlugwiseCommunicationContext context) { */ private void parseAndQueue(ByteBuffer readBuffer) { String response = new String(readBuffer.array(), 0, readBuffer.limit()); - response = StringUtils.chomp(response); + response = response.replaceAll("\r", "").replaceAll("\n", ""); Matcher matcher = RESPONSE_PATTERN.matcher(response); 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 35b34aa1ada08..fb86148f9e5d4 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,6 @@ import java.time.format.DateTimeFormatter; import java.util.Map; -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; @@ -102,8 +100,19 @@ public static void stopBackgroundThread(@Nullable Thread thread) { } public static String upperUnderscoreToLowerCamel(String text) { - String upperCamel = StringUtils.remove(WordUtils.capitalizeFully(text, new char[] { '_' }), "_"); - return upperCamel.substring(0, 1).toLowerCase() + upperCamel.substring(1); + final String delimiter = "_"; + StringBuilder upperCamelBuilder = new StringBuilder(text.length()); + for (String str : text.split(delimiter)) { + if (upperCamelBuilder.isEmpty() && str.length() > 0) { + upperCamelBuilder.append(str.substring(0, 1).toLowerCase()); + } else if (str.length() > 0) { + upperCamelBuilder.append(str.substring(0, 1).toUpperCase()); + } + if (str.length() > 1) { + upperCamelBuilder.append(str.substring(1).toLowerCase()); + } + } + return upperCamelBuilder.toString(); } public static boolean updateProperties(Map properties, InformationResponseMessage message) { diff --git a/bundles/org.openhab.binding.plugwise/src/test/java/org/openhab/binding/plugwise/internal/PlugwiseUtilsTest.java b/bundles/org.openhab.binding.plugwise/src/test/java/org/openhab/binding/plugwise/internal/PlugwiseUtilsTest.java new file mode 100644 index 0000000000000..a72f84037acdb --- /dev/null +++ b/bundles/org.openhab.binding.plugwise/src/test/java/org/openhab/binding/plugwise/internal/PlugwiseUtilsTest.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2010-2023 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.plugwise.internal; + +import static org.junit.jupiter.api.Assertions.*; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.Test; + +/** + * The {@link PlugwiseUtilsTest} class tests some static string utility methods + * + * @author Leo Siepel - Initial contribution + */ +@NonNullByDefault +public class PlugwiseUtilsTest { + + @Test + public void upperUnderscoreToLowerCamelBaseTest() { + assertEquals("nodelimiterpresent", PlugwiseUtils.upperUnderscoreToLowerCamel("NoDelimiterPresent")); + assertEquals("delimiterIsPresent", PlugwiseUtils.upperUnderscoreToLowerCamel("DeliMiter_iS_PreSent")); + assertEquals("doubleDelimitersDouble", PlugwiseUtils.upperUnderscoreToLowerCamel("DOUBLE__DELIMITERS__DOUBLE")); + assertEquals("helloWorld", PlugwiseUtils.upperUnderscoreToLowerCamel("HELLO_WORLD")); + assertEquals("", PlugwiseUtils.upperUnderscoreToLowerCamel("")); + assertEquals("", PlugwiseUtils.upperUnderscoreToLowerCamel("_")); + } +}