You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2023/06/22 17:33:37 UTC
[camel] branch CAMEL-19488/revert created (now 154e76d6881)
This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a change to branch CAMEL-19488/revert
in repository https://gitbox.apache.org/repos/asf/camel.git
at 154e76d6881 Revert "CAMEL-19130: Upgrade to snakeyaml 2.x (#10450)"
This branch includes the following new commits:
new 154e76d6881 Revert "CAMEL-19130: Upgrade to snakeyaml 2.x (#10450)"
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[camel] 01/01: Revert "CAMEL-19130: Upgrade to snakeyaml 2.x (#10450)"
Posted by nf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch CAMEL-19488/revert
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 154e76d688138f9edcb1b6e2e4cd6b2c8ab24f8d
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Jun 22 19:33:03 2023 +0200
Revert "CAMEL-19130: Upgrade to snakeyaml 2.x (#10450)"
This reverts commit 78aabad4e5684add922c23e6c25d6ce6be49a1af.
---
camel-dependencies/pom.xml | 2 +-
.../component/snakeyaml/SnakeYAMLDataFormat.java | 11 ++++----
.../custom/CustomClassLoaderConstructor.java | 9 +++---
.../component/snakeyaml/SnakeYAMLDoSTest.java | 33 ++++++++++------------
.../dsl/jbang/core/commands/CodeRestGenerator.java | 3 +-
parent/pom.xml | 2 +-
.../generator/openapi/AbstractGenerateMojo.java | 15 ++++------
7 files changed, 33 insertions(+), 42 deletions(-)
diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index ff0997e73e6..31549a9b01e 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -506,7 +506,7 @@
<smallrye-health-version>3.3.0</smallrye-health-version>
<smallrye-metrics-version>3.0.5</smallrye-metrics-version>
<snakeyaml-engine-version>2.3</snakeyaml-engine-version>
- <snakeyaml-version>2.0</snakeyaml-version>
+ <snakeyaml-version>1.33</snakeyaml-version>
<snmp4j-version>2.6.3_1</snmp4j-version>
<solr-version>8.11.2</solr-version>
<solr-version-range>[8,9)</solr-version-range>
diff --git a/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/SnakeYAMLDataFormat.java b/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/SnakeYAMLDataFormat.java
index 3fc93deac88..19cedf019f9 100644
--- a/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/SnakeYAMLDataFormat.java
+++ b/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/SnakeYAMLDataFormat.java
@@ -47,7 +47,6 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.BaseConstructor;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.constructor.SafeConstructor;
-import org.yaml.snakeyaml.inspector.TrustedTagInspector;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
import org.yaml.snakeyaml.resolver.Resolver;
@@ -143,7 +142,6 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
if (yaml == null) {
LoaderOptions options = new LoaderOptions();
- options.setTagInspector(new TrustedTagInspector());
options.setAllowRecursiveKeys(allowRecursiveKeys);
options.setMaxAliasesForCollections(maxAliasesForCollections);
@@ -391,7 +389,6 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
}
LoaderOptions options = new LoaderOptions();
- options.setTagInspector(new TrustedTagInspector());
options.setAllowRecursiveKeys(allowRecursiveKeys);
options.setMaxAliasesForCollections(maxAliasesForCollections);
@@ -419,7 +416,7 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
}
private Representer defaultRepresenter(CamelContext context) {
- Representer yamlRepresenter = new Representer(new DumperOptions());
+ Representer yamlRepresenter = new Representer();
if (classTags != null) {
for (Map.Entry<Class<?>, Tag> entry : classTags.entrySet()) {
@@ -446,7 +443,7 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
// ***************************
private static Constructor typeFilterConstructor(final Collection<TypeFilter> typeFilters, LoaderOptions options) {
- return new Constructor(options) {
+ Constructor constructor = new Constructor(options) {
@Override
protected Class<?> getClassForName(String name) throws ClassNotFoundException {
if (typeFilters.stream().noneMatch(f -> f.test(name))) {
@@ -456,12 +453,13 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
return super.getClassForName(name);
}
};
+ return constructor;
}
private static Constructor typeFilterConstructor(
final ClassLoader classLoader, final Collection<TypeFilter> typeFilters,
LoaderOptions options) {
- return new CustomClassLoaderConstructor(classLoader, options) {
+ CustomClassLoaderConstructor constructor = new CustomClassLoaderConstructor(classLoader, options) {
@Override
protected Class<?> getClassForName(String name) throws ClassNotFoundException {
if (typeFilters.stream().noneMatch(f -> f.test(name))) {
@@ -471,5 +469,6 @@ public final class SnakeYAMLDataFormat extends ServiceSupport implements DataFor
return super.getClassForName(name);
}
};
+ return constructor;
}
}
diff --git a/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/custom/CustomClassLoaderConstructor.java b/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/custom/CustomClassLoaderConstructor.java
index 6ce32af73c5..6ab8ceb3554 100644
--- a/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/custom/CustomClassLoaderConstructor.java
+++ b/components/camel-snakeyaml/src/main/java/org/apache/camel/component/snakeyaml/custom/CustomClassLoaderConstructor.java
@@ -16,8 +16,6 @@
*/
package org.apache.camel.component.snakeyaml.custom;
-import java.util.Objects;
-
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -26,11 +24,14 @@ import org.yaml.snakeyaml.constructor.Constructor;
*/
public class CustomClassLoaderConstructor extends Constructor {
- private final ClassLoader loader;
+ private ClassLoader loader = this.getClass().getClassLoader();
public CustomClassLoaderConstructor(ClassLoader theLoader, LoaderOptions options) {
super(Object.class, options);
- this.loader = Objects.requireNonNull(theLoader, "Loader must be provided.");
+ if (theLoader == null) {
+ throw new NullPointerException("Loader must be provided.");
+ }
+ this.loader = theLoader;
}
@Override
diff --git a/components/camel-snakeyaml/src/test/java/org/apache/camel/component/snakeyaml/SnakeYAMLDoSTest.java b/components/camel-snakeyaml/src/test/java/org/apache/camel/component/snakeyaml/SnakeYAMLDoSTest.java
index 386f16cb51b..54320d9450a 100644
--- a/components/camel-snakeyaml/src/test/java/org/apache/camel/component/snakeyaml/SnakeYAMLDoSTest.java
+++ b/components/camel-snakeyaml/src/test/java/org/apache/camel/component/snakeyaml/SnakeYAMLDoSTest.java
@@ -26,7 +26,6 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
-import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
@@ -43,15 +42,14 @@ public class SnakeYAMLDoSTest extends CamelTestSupport {
assertNotNull(mock);
mock.expectedMessageCount(1);
- try (InputStream is = this.getClass().getClassLoader().getResourceAsStream("data.yaml")) {
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream("data.yaml");
- ProducerTemplate template = context.createProducerTemplate();
- String result = template.requestBody("direct:back", is, String.class);
- assertNotNull(result);
- assertEquals("{name=Colm, location=Dublin}", result.trim());
+ ProducerTemplate template = context.createProducerTemplate();
+ String result = template.requestBody("direct:back", is, String.class);
+ assertNotNull(result);
+ assertEquals("{name=Colm, location=Dublin}", result.trim());
- mock.assertIsSatisfied();
- }
+ mock.assertIsSatisfied();
}
@Test
@@ -61,19 +59,18 @@ public class SnakeYAMLDoSTest extends CamelTestSupport {
assertNotNull(mock);
mock.expectedMessageCount(0);
- try (InputStream is = this.getClass().getClassLoader().getResourceAsStream("data-dos.yaml")) {
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream("data-dos.yaml");
- ProducerTemplate template = context.createProducerTemplate();
+ ProducerTemplate template = context.createProducerTemplate();
- Exception ex = assertThrows(CamelExecutionException.class,
- () -> template.requestBody("direct:back", is, String.class),
- "Failure expected on an alias expansion attack");
+ Exception ex = assertThrows(CamelExecutionException.class,
+ () -> template.requestBody("direct:back", is, String.class),
+ "Failure expected on an alias expansion attack");
- Throwable cause = ex.getCause();
- assertEquals("Number of aliases for non-scalar nodes exceeds the specified max=50", cause.getMessage());
+ Throwable cause = ex.getCause();
+ assertEquals("Number of aliases for non-scalar nodes exceeds the specified max=50", cause.getMessage());
- mock.assertIsSatisfied();
- }
+ mock.assertIsSatisfied();
}
@Test
@@ -142,7 +139,7 @@ public class SnakeYAMLDoSTest extends CamelTestSupport {
f.put(f, "a");
f.put("g", root);
- Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
+ Yaml yaml = new Yaml(new SafeConstructor());
return yaml.dump(f);
}
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
index 5f57cdc10bf..31431befa54 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
@@ -36,7 +36,6 @@ import org.apache.logging.log4j.core.config.Configurator;
import org.openapitools.codegen.ClientOptInput;
import org.openapitools.codegen.DefaultGenerator;
import org.openapitools.codegen.config.CodegenConfigurator;
-import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import picocli.CommandLine;
@@ -100,7 +99,7 @@ public class CodeRestGenerator extends CamelCommand {
private JsonNode readNodeFromYaml() throws FileNotFoundException {
final ObjectMapper mapper = new ObjectMapper();
- Yaml loader = new Yaml(new SafeConstructor(new LoaderOptions()));
+ Yaml loader = new Yaml(new SafeConstructor());
Map map = loader.load(new FileInputStream(Paths.get(input).toFile()));
return mapper.convertValue(map, JsonNode.class);
}
diff --git a/parent/pom.xml b/parent/pom.xml
index c48e1fb33f5..f6b505c5651 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -492,7 +492,7 @@
<smallrye-metrics-version>3.0.5</smallrye-metrics-version>
<smallrye-health-version>3.3.0</smallrye-health-version>
<smallrye-fault-tolerance-version>5.6.0</smallrye-fault-tolerance-version>
- <snakeyaml-version>2.0</snakeyaml-version>
+ <snakeyaml-version>1.33</snakeyaml-version>
<snakeyaml-engine-version>2.3</snakeyaml-engine-version>
<snmp4j-version>2.6.3_1</snmp4j-version>
<!-- solr version aligned with lucene -->
diff --git a/tooling/maven/camel-restdsl-openapi-plugin/src/main/java/org/apache/camel/maven/generator/openapi/AbstractGenerateMojo.java b/tooling/maven/camel-restdsl-openapi-plugin/src/main/java/org/apache/camel/maven/generator/openapi/AbstractGenerateMojo.java
index 4498f07a207..545b44847e2 100644
--- a/tooling/maven/camel-restdsl-openapi-plugin/src/main/java/org/apache/camel/maven/generator/openapi/AbstractGenerateMojo.java
+++ b/tooling/maven/camel-restdsl-openapi-plugin/src/main/java/org/apache/camel/maven/generator/openapi/AbstractGenerateMojo.java
@@ -21,7 +21,6 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -57,10 +56,8 @@ import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.twdata.maven.mojoexecutor.MojoExecutor;
-import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
-import org.yaml.snakeyaml.inspector.TrustedTagInspector;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import static org.twdata.maven.mojoexecutor.MojoExecutor.artifactId;
@@ -175,8 +172,8 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
final DestinationGenerator destinationGeneratorObject;
try {
- destinationGeneratorObject = destinationGeneratorClass.getDeclaredConstructor().newInstance();
- } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
+ destinationGeneratorObject = destinationGeneratorClass.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
throw new MojoExecutionException(
"The given destinationGenerator class (" + destinationGenerator
+ ") cannot be instantiated, make sure that it is declared as public and that all dependencies are present on the COMPILE classpath scope of the project",
@@ -229,7 +226,7 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
version(swaggerCodegenMavenPluginVersion)),
goal("generate"),
configuration(
- elements.toArray(new MojoExecutor.Element[0])),
+ elements.toArray(new MojoExecutor.Element[elements.size()])),
executionEnvironment(
mavenProject,
mavenSession,
@@ -246,7 +243,7 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
for (final Dependency dep : mavenProject.getDependencies()) {
if ("org.apache.camel".equals(dep.getGroupId()) || "org.apache.camel.springboot".equals(dep.getGroupId())) {
final String aid = dep.getArtifactId();
- final Optional<String> comp = Arrays.stream(DEFAULT_REST_CONSUMER_COMPONENTS)
+ final Optional<String> comp = Arrays.asList(DEFAULT_REST_CONSUMER_COMPONENTS).stream()
.filter(c -> aid.startsWith("camel-" + c)).findFirst();
if (comp.isPresent()) {
return comp.get();
@@ -343,9 +340,7 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
String suffix = ".yaml";
if (specificationUri.regionMatches(true, specificationUri.length() - suffix.length(), suffix, 0, suffix.length())) {
- LoaderOptions options = new LoaderOptions();
- options.setTagInspector(new TrustedTagInspector());
- Yaml loader = new Yaml(new SafeConstructor(options));
+ Yaml loader = new Yaml(new SafeConstructor());
Map map = loader.load(is);
JsonNode node = mapper.convertValue(map, JsonNode.class);
return (OasDocument) Library.readDocument(node);