This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 1c66edc3cecf750746a906df2c0d437d38e149fd Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri May 14 12:43:33 2021 +0200 CAMEL-16614: camel-core - Generated type converter should be CamelContextAware --- .../impl/converter/BaseTypeConverterRegistry.java | 2 ++ .../jaxp/CamelXmlJaxpBulkConverterLoader.java | 7 ++-- .../TypeConverterLoaderGeneratorMojo.java | 38 ++++++++++++++++++++-- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java index be827d2..c56d231 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java @@ -91,6 +91,7 @@ public abstract class BaseTypeConverterRegistry extends CoreTypeConverterRegistr try { // scan the class for @Converter and load them into this registry TypeConvertersLoader loader = new TypeConvertersLoader(typeConverters); + CamelContextAware.trySetCamelContext(loader, getCamelContext()); loader.load(this); } catch (TypeConverterLoaderException e) { throw RuntimeCamelException.wrapRuntimeCamelException(e); @@ -163,6 +164,7 @@ public abstract class BaseTypeConverterRegistry extends CoreTypeConverterRegistr throw new ClassNotFoundException(name); } Object obj = getInjector().newInstance(clazz, false); + CamelContextAware.trySetCamelContext(obj, getCamelContext()); if (obj instanceof TypeConverterLoader) { TypeConverterLoader loader = (TypeConverterLoader) obj; LOG.debug("TypeConverterLoader: {} loading converters", name); diff --git a/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java b/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java index ade46cd..f0d8daa 100644 --- a/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java +++ b/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java @@ -1,11 +1,7 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.converter.jaxp; -import org.apache.camel.Exchange; -import org.apache.camel.Ordered; -import org.apache.camel.TypeConversionException; -import org.apache.camel.TypeConverterLoaderException; -import org.apache.camel.TypeConverter; +import org.apache.camel.*; import org.apache.camel.spi.BulkTypeConverters; import org.apache.camel.spi.TypeConverterLoader; import org.apache.camel.spi.TypeConverterRegistry; @@ -692,6 +688,7 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade private org.apache.camel.converter.jaxp.StaxConverter getStaxConverter() { if (staxConverter == null) { staxConverter = new org.apache.camel.converter.jaxp.StaxConverter(); + CamelContextAware.trySetCamelContext(staxConverter, camelContext); } return staxConverter; } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java index bac0fe2..24a2129 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java @@ -183,6 +183,8 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append("/* ").append(GENERATED_MSG).append(" */\n"); writer.append("package ").append(p).append(";\n"); writer.append("\n"); + writer.append("import org.apache.camel.CamelContext;\n"); + writer.append("import org.apache.camel.CamelContextAware;\n"); writer.append("import org.apache.camel.Exchange;\n"); writer.append("import org.apache.camel.Ordered;\n"); writer.append("import org.apache.camel.TypeConversionException;\n"); @@ -196,12 +198,26 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append(" * ").append(GENERATED_MSG).append("\n"); writer.append(" */\n"); writer.append("@SuppressWarnings(\"unchecked\")\n"); - writer.append("public final class ").append(c).append(" implements TypeConverterLoader, BulkTypeConverters {\n"); + writer.append("public final class ").append(c) + .append(" implements TypeConverterLoader, BulkTypeConverters, CamelContextAware {\n"); + writer.append("\n"); + writer.append(" private CamelContext camelContext;\n"); writer.append("\n"); writer.append(" ").append("public ").append(c).append("() {\n"); writer.append(" }\n"); writer.append("\n"); + writer.append(" @Override\n"); + writer.append(" public void setCamelContext(CamelContext camelContext) {\n"); + writer.append(" this.camelContext = camelContext;\n"); + writer.append(" }\n"); + writer.append("\n"); + writer.append(" @Override\n"); + writer.append(" public CamelContext getCamelContext() {\n"); + writer.append(" return camelContext;\n"); + writer.append(" }\n"); + writer.append("\n"); + if (base) { // we want to be highest ordered for the base converters writer.append(" @Override\n"); @@ -260,6 +276,7 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append(" private ").append(f).append(" get").append(s).append("() {\n"); writer.append(" if (").append(v).append(" == null) {\n"); writer.append(" ").append(v).append(" = new ").append(f).append("();\n"); + writer.append(" CamelContextAware.trySetCamelContext(").append(v).append(", camelContext);\n"); writer.append(" }\n"); writer.append(" return ").append(v).append(";\n"); writer.append(" }\n"); @@ -370,6 +387,8 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append("/* ").append(GENERATED_MSG).append(" */\n"); writer.append("package ").append(p).append(";\n"); writer.append("\n"); + writer.append("import org.apache.camel.CamelContext;\n"); + writer.append("import org.apache.camel.CamelContextAware;\n"); writer.append("import org.apache.camel.Exchange;\n"); writer.append("import org.apache.camel.TypeConversionException;\n"); writer.append("import org.apache.camel.TypeConverterLoaderException;\n"); @@ -383,11 +402,25 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append(" * ").append(GENERATED_MSG).append("\n"); writer.append(" */\n"); writer.append("@SuppressWarnings(\"unchecked\")\n"); - writer.append("public final class ").append(c).append(" implements TypeConverterLoader {\n"); + writer.append("public final class ").append(c).append(" implements TypeConverterLoader, CamelContextAware {\n"); + writer.append("\n"); + writer.append(" private CamelContext camelContext;\n"); writer.append("\n"); writer.append(" ").append("public ").append(c).append("() {\n"); writer.append(" }\n"); writer.append("\n"); + + writer.append(" @Override\n"); + writer.append(" public void setCamelContext(CamelContext camelContext) {\n"); + writer.append(" this.camelContext = camelContext;\n"); + writer.append(" }\n"); + writer.append("\n"); + writer.append(" @Override\n"); + writer.append(" public CamelContext getCamelContext() {\n"); + writer.append(" return camelContext;\n"); + writer.append(" }\n"); + writer.append("\n"); + writer.append(" @Override\n"); writer.append(" public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException {\n"); if (converters.size() > 0) { @@ -458,6 +491,7 @@ public class TypeConverterLoaderGeneratorMojo extends AbstractGeneratorMojo { writer.append(" private ").append(f).append(" get").append(s).append("() {\n"); writer.append(" if (").append(v).append(" == null) {\n"); writer.append(" ").append(v).append(" = new ").append(f).append("();\n"); + writer.append(" CamelContextAware.trySetCamelContext(").append(v).append(", camelContext);\n"); writer.append(" }\n"); writer.append(" return ").append(v).append(";\n"); writer.append(" }\n");