This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-kafka.git


The following commit(s) were added to refs/heads/main by this push:
     new 369e7be4 [FLINK-35038] Bump `org.yaml:snakeyaml` to `2.2` (#93)
369e7be4 is described below

commit 369e7be46a70fd50d68746498aed82105741e7d6
Author: Ufuk Celebi <1756620+...@users.noreply.github.com>
AuthorDate: Thu Apr 11 13:47:46 2024 +0200

    [FLINK-35038] Bump `org.yaml:snakeyaml` to `2.2` (#93)
    
    * Bump org.yaml:snakeyaml from 1.31 to 2.0 in /flink-connector-kafka
    
    Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 
1.31 to 2.0.
    - 
[Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.0..snakeyaml-1.31)
    
    ---
    updated-dependencies:
    - dependency-name: org.yaml:snakeyaml
      dependency-type: direct:development
    ...
    
    Signed-off-by: dependabot[bot] <supp...@github.com>
    
    * [FLINK-XXXXX] Bump org.yaml:snakeyaml from 2.0 to 2.2
    
    * [FLINK-35038] Fix SnakeYAML usage after version bump
    
    SnakeYAML introduced breaking API changes and behavior changes between 1.31 
and
    2.2. This commit uses the updated APIs and explicitly allows the global tag
    for StreamMetadata (see changed SnakeYAML behavior in [1]).
    
    [1] 
https://github.com/snakeyaml/snakeyaml/commit/2b8d47c8bcfd402e7a682b7b2674e8d0cb25e522
    
    ---------
    
    Signed-off-by: dependabot[bot] <supp...@github.com>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Martijn Visser 
<2989614+martijnvis...@users.noreply.github.com>
---
 flink-connector-kafka/pom.xml                               |  2 +-
 .../connector/kafka/testutils/YamlFileMetadataService.java  | 13 ++++++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/flink-connector-kafka/pom.xml b/flink-connector-kafka/pom.xml
index 529d9252..2fa9d9ca 100644
--- a/flink-connector-kafka/pom.xml
+++ b/flink-connector-kafka/pom.xml
@@ -174,7 +174,7 @@ under the License.
         <dependency>
             <groupId>org.yaml</groupId>
             <artifactId>snakeyaml</artifactId>
-            <version>1.31</version>
+            <version>2.2</version>
             <scope>test</scope>
         </dependency>
 
diff --git 
a/flink-connector-kafka/src/test/java/org/apache/flink/connector/kafka/testutils/YamlFileMetadataService.java
 
b/flink-connector-kafka/src/test/java/org/apache/flink/connector/kafka/testutils/YamlFileMetadataService.java
index 524f7243..4a1dab17 100644
--- 
a/flink-connector-kafka/src/test/java/org/apache/flink/connector/kafka/testutils/YamlFileMetadataService.java
+++ 
b/flink-connector-kafka/src/test/java/org/apache/flink/connector/kafka/testutils/YamlFileMetadataService.java
@@ -29,6 +29,7 @@ import org.apache.kafka.clients.CommonClientConfigs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.TypeDescription;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.Constructor;
@@ -252,19 +253,25 @@ public class YamlFileMetadataService implements 
KafkaMetadataService {
     }
 
     private static Yaml initYamlParser() {
-        Representer representer = new Representer();
+        DumperOptions dumperOptions = new DumperOptions();
+        Representer representer = new Representer(dumperOptions);
         representer.addClassTag(StreamMetadata.class, Tag.MAP);
         TypeDescription typeDescription = new 
TypeDescription(StreamMetadata.class);
         representer.addTypeDescription(typeDescription);
         representer.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
-        return new Yaml(new ListConstructor<>(StreamMetadata.class), 
representer);
+        LoaderOptions loaderOptions = new LoaderOptions();
+        // Allow global tag for StreamMetadata
+        loaderOptions.setTagInspector(
+                tag -> 
tag.getClassName().equals(StreamMetadata.class.getName()));
+        return new Yaml(new ListConstructor<>(StreamMetadata.class, 
loaderOptions), representer);
     }
 
     /** A custom constructor is required to read yaml lists at the root. */
     private static class ListConstructor<T> extends Constructor {
         private final Class<T> clazz;
 
-        public ListConstructor(final Class<T> clazz) {
+        public ListConstructor(final Class<T> clazz, final LoaderOptions 
loaderOptions) {
+            super(loaderOptions);
             this.clazz = clazz;
         }
 

Reply via email to