From a91eaa921d5da2a42b36663af627b223d60b31ac Mon Sep 17 00:00:00 2001
From: Jens Schulze <jens.schulze@commercetools.com>
Date: Thu, 7 Sep 2023 12:45:04 +0200
Subject: [PATCH] fix localeValues method for LocalizedStrings

---
 build.gradle                                      | 15 +++++++++------
 .../api/models/common/LocalizedString.java        |  4 +++-
 .../com/commercetools/LocalizedStringTest.java    |  9 +++++++++
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/build.gradle b/build.gradle
index b962ad7f854..9196f3233f6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -290,8 +290,9 @@ tasks.register('internaldocs', Javadoc) {
         setAuthor false
         noTimestamp = true
         splitIndex = true
-        docTitle 'commercetools-java-sdks'
-        links 'https://docs.oracle.com/javase/8/docs/api/', "https://www.javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/${versions.jackson}/", 'https://commercetools.github.io/commercetools-jvm-sdk/apidocs/'
+        noTree = true
+        title = "commercetools Java SDK"
+        links 'https://docs.oracle.com/javase/8/docs/api/', "https://www.javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/${versions.jackson}/", 'https://commercetools.github.io/commercetools-jvm-sdk/apidocs/', 'https://newrelic.github.io/java-agent-api/javadoc/'
         overview = "src/main/javadoc/overview.html"
         bottom = """
             <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.8.0/styles/default.min.css">
@@ -301,13 +302,14 @@ tasks.register('internaldocs', Javadoc) {
             <script src="{@docRoot}/resources/javascripts/main.js"></script>
             <link rel="stylesheet" href="{@docRoot}/resources/stylesheets/main.css">
         """
-        taglets = ['com.commercetools.taglets.CodeTaglet','com.commercetools.taglets.ToCTaglet', 'com.commercetools.taglets.FileIncludeTaglet', 'org.jdrupes.taglets.plantUml.StartUml', 'org.jdrupes.taglets.plantUml.EndUml', 'org.jdrupes.taglets.plantUml.PlantUml']
+        taglets = ['com.commercetools.taglets.CodeTaglet', 'com.commercetools.taglets.ToCTaglet', 'com.commercetools.taglets.FileIncludeTaglet', 'org.jdrupes.taglets.plantUml.StartUml', 'org.jdrupes.taglets.plantUml.EndUml', 'org.jdrupes.taglets.plantUml.PlantUml']
         tagletPath = configurations.taglet.files as List
         maxMemory = '2g'
-        encoding = 'utf-8'
+        excludes = ['com/commercetools/graphql/api/client/**', 'com/commercetools/graphql/api/Dgs**','com/commercetools/graphql/api/types/**', 'com/commercetools/api/predicates/query/**/*Dsl.java', 'com/commercetools/**/*Impl.java']
         addBooleanOption('-allow-script-in-comments', true)
         addStringOption('Xdoclint:missing,accessibility,reference', '-quiet')
-        addBooleanOption('linksource', true)
+//        addBooleanOption('linksource', true)
+        encoding = 'utf-8'
         groups = [
                 "API"          : ["com.commercetools.api.*"],
                 "History"      : ["com.commercetools.history.*"],
@@ -317,7 +319,8 @@ tasks.register('internaldocs', Javadoc) {
                 "HTTP Clients" : [
                         "com.commercetools.http.*",
                         "io.vrap.rmf.okhttp.*"
-                ]
+                ],
+                "Monitoring"   : ["com.commercetools.monitoring.*"]
         ]
         addStringOption('source', '8')
     }
diff --git a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/common/LocalizedString.java b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/common/LocalizedString.java
index d324974a25f..2b37a610fac 100644
--- a/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/common/LocalizedString.java
+++ b/commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/common/LocalizedString.java
@@ -72,7 +72,9 @@ default <T> T withLocalizedString(Function<LocalizedString, T> helper) {
     @NotNull
     @JsonIgnore
     default public Map<Locale, String> localeValues() {
-        return values().entrySet().stream().collect(Collectors.toMap(e -> new Locale(e.getKey()), Map.Entry::getValue));
+        return values().entrySet()
+                .stream()
+                .collect(Collectors.toMap(e -> Locale.forLanguageTag(e.getKey()), Map.Entry::getValue));
     }
 
     /**
diff --git a/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/LocalizedStringTest.java b/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/LocalizedStringTest.java
index 755cc975b26..e147dbc471c 100644
--- a/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/LocalizedStringTest.java
+++ b/commercetools/commercetools-sdk-java-api/src/test/java/com/commercetools/LocalizedStringTest.java
@@ -350,6 +350,15 @@ public void deserializeWithFullLocale() {
         assertThat(JsonUtils.toJsonNode(localizedString)).isEqualTo(JsonUtils.parse(FULL_LOCALE_JSON_STRING));
     }
 
+    @Test
+    public void deserializeWithFullLocaleLocaleValues() {
+        final LocalizedString localizedString = JsonUtils.fromJsonString(FULL_LOCALE_JSON_STRING,
+            LocalizedString.class);
+        assertThat(localizedString.localeValues().get(Locale.US)).isEqualTo("kids");
+        assertThat(localizedString.localeValues().get(Locale.UK)).isEqualTo("children");
+
+    }
+
     @Test
     public void ofStringToStringMap() {
         final Map<String, String> map = new HashMap<>();