This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch api in repository https://gitbox.apache.org/repos/asf/camel.git
commit b205d606fe97ee2c150f24fc298b6387b8c0415b Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Sep 16 13:49:14 2020 +0200 CAMEL-15478: Fixed camelCaseToDash util --- .../src/main/java/org/apache/camel/util/StringHelper.java | 10 ++++++++-- .../src/test/java/org/apache/camel/util/StringHelperTest.java | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java index e90412b..e240e1b 100644 --- a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java +++ b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java @@ -851,9 +851,15 @@ public final class StringHelper { if (ch == '-' || ch == '_') { answer.append("-"); } else if (Character.isUpperCase(ch) && prev != null && !Character.isUpperCase(prev)) { - answer.append("-").append(ch); + if (prev != '-' && prev != '_') { + answer.append("-"); + } + answer.append(ch); } else if (Character.isUpperCase(ch) && prev != null && next != null && Character.isLowerCase(next)) { - answer.append("-").append(ch); + if (prev != '-' && prev != '_') { + answer.append("-"); + } + answer.append(ch); } else { answer.append(ch); } diff --git a/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java b/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java index 4c4a0d4..1aea496 100644 --- a/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java +++ b/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java @@ -44,6 +44,13 @@ public class StringHelperTest { assertEquals("use-mdc-logging", camelCaseToDash("UseMDCLogging")); assertEquals("mdc-logging-keys-pattern", camelCaseToDash("MDCLoggingKeysPattern")); + assertEquals("available-phone-number-country", camelCaseToDash("AVAILABLE_PHONE_NUMBER_COUNTRY")); + assertEquals("available-phone-number-country", camelCaseToDash("AVAILABLE-PHONE_NUMBER-COUNTRY")); + assertEquals("available-phone-number-country", camelCaseToDash("Available-Phone-Number-Country")); + assertEquals("available-phone-number-country", camelCaseToDash("Available_Phone_Number_Country")); + assertEquals("available-phone-number-country", camelCaseToDash("available_phone_number_country")); + assertEquals("available-phone-number-country", camelCaseToDash("availablePhoneNumberCountry")); + assertEquals("available-phone-number-country", camelCaseToDash("AvailablePhoneNumberCountry")); } @Test