This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 34b6acf25162249dd1decadd8a80e83b7082e838 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Sat Apr 1 17:04:34 2023 +0200 CAMEL-15105: make the RestBindingJaxbDataFormatFactory a plugin of the context --- .../org/apache/camel/component/rest/RestProducer.java | 2 +- .../java/org/apache/camel/ExtendedCamelContext.java | 11 ----------- .../apache/camel/impl/engine/AbstractCamelContext.java | 5 ----- .../camel/impl/engine/DefaultCamelContextExtension.java | 17 ----------------- .../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------ .../camel/impl/lw/LightweightCamelContextExtension.java | 12 ------------ .../apache/camel/reifier/rest/RestBindingReifier.java | 3 ++- .../java/org/apache/camel/support/PluginHelper.java | 17 +++++++++++++++++ 8 files changed, 20 insertions(+), 53 deletions(-) diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java index e851e786504..fbd78cdfb93 100644 --- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java +++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java @@ -359,7 +359,7 @@ public class RestProducer extends DefaultAsyncProducer { if (jaxb != null) { // to setup JAXB we need to use camel-jaxb - camelContext.getCamelContextExtension().getRestBindingJaxbDataFormatFactory() + PluginHelper.getRestBindingJaxbDataFormatFactory(camelContext) .setupJaxb(camelContext, configuration, type, null, outType, null, jaxb, outJaxb); } diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java index 85d871635e3..56407a31044 100644 --- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java @@ -45,7 +45,6 @@ import org.apache.camel.spi.ProcessorExchangeFactory; import org.apache.camel.spi.ReactiveExecutor; import org.apache.camel.spi.Registry; import org.apache.camel.spi.ResourceLoader; -import org.apache.camel.spi.RestBindingJaxbDataFormatFactory; import org.apache.camel.spi.RouteController; import org.apache.camel.spi.RouteStartupOrder; import org.apache.camel.spi.StartupStepRecorder; @@ -449,16 +448,6 @@ public interface ExtendedCamelContext { */ void setModelToXMLDumper(ModelToXMLDumper modelToXMLDumper); - /** - * Gets the {@link RestBindingJaxbDataFormatFactory} to be used. - */ - RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory(); - - /** - * Sets a custom {@link RestBindingJaxbDataFormatFactory} to be used. - */ - void setRestBindingJaxbDataFormatFactory(RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory); - /** * Internal {@link RouteController} that are only used internally by Camel to perform basic route operations. Do not * use this as end user. diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index 18de2cc7150..61c202c8e9d 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -218,7 +218,6 @@ public abstract class AbstractCamelContext extends BaseService volatile BeanProcessorFactory beanProcessorFactory; volatile ResourceLoader resourceLoader; volatile ModelToXMLDumper modelToXMLDumper; - volatile RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory; volatile UnitOfWorkFactory unitOfWorkFactory; volatile BeanIntrospection beanIntrospection; volatile boolean eventNotificationApplicable; @@ -4198,10 +4197,6 @@ public abstract class AbstractCamelContext extends BaseService return camelContextExtension.getModelToXMLDumper(); } - public RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory() { - return camelContextExtension.getRestBindingJaxbDataFormatFactory(); - } - public EndpointUriFactory getEndpointUriFactory(String scheme) { return camelContextExtension.getEndpointUriFactory(scheme); } diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java index f0bad898c5b..29a7a12f9ad 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java @@ -35,7 +35,6 @@ import org.apache.camel.ResolveEndpointFailedException; import org.apache.camel.Route; import org.apache.camel.RuntimeCamelException; import org.apache.camel.Service; -import org.apache.camel.catalog.RuntimeCamelCatalog; import org.apache.camel.spi.AnnotationBasedProcessorFactory; import org.apache.camel.spi.BeanIntrospection; import org.apache.camel.spi.BeanProcessorFactory; @@ -65,7 +64,6 @@ import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spi.ReactiveExecutor; import org.apache.camel.spi.Registry; import org.apache.camel.spi.ResourceLoader; -import org.apache.camel.spi.RestBindingJaxbDataFormatFactory; import org.apache.camel.spi.RouteController; import org.apache.camel.spi.RouteStartupOrder; import org.apache.camel.spi.StartupStepRecorder; @@ -485,21 +483,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { camelContext.modelToXMLDumper = camelContext.getInternalServiceManager().addService(modelToXMLDumper); } - public RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory() { - if (camelContext.restBindingJaxbDataFormatFactory == null) { - synchronized (camelContext.lock) { - if (camelContext.restBindingJaxbDataFormatFactory == null) { - setRestBindingJaxbDataFormatFactory(camelContext.createRestBindingJaxbDataFormatFactory()); - } - } - } - return camelContext.restBindingJaxbDataFormatFactory; - } - - public void setRestBindingJaxbDataFormatFactory(RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory) { - camelContext.restBindingJaxbDataFormatFactory = restBindingJaxbDataFormatFactory; - } - @Override public ExchangeFactory getExchangeFactory() { if (camelContext.exchangeFactory == null) { diff --git a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java index d7ec3d7c9a2..8d46b62df44 100644 --- a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java +++ b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java @@ -57,8 +57,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "Registry": target.setRegistry(property(camelContext, org.apache.camel.spi.Registry.class, value)); return true; case "resourceloader": case "ResourceLoader": target.setResourceLoader(property(camelContext, org.apache.camel.spi.ResourceLoader.class, value)); return true; - case "restbindingjaxbdataformatfactory": - case "RestBindingJaxbDataFormatFactory": target.setRestBindingJaxbDataFormatFactory(property(camelContext, org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class, value)); return true; case "startupsteprecorder": case "StartupStepRecorder": target.setStartupStepRecorder(property(camelContext, org.apache.camel.spi.StartupStepRecorder.class, value)); return true; case "unitofworkfactory": @@ -106,8 +104,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "Registry": return org.apache.camel.spi.Registry.class; case "resourceloader": case "ResourceLoader": return org.apache.camel.spi.ResourceLoader.class; - case "restbindingjaxbdataformatfactory": - case "RestBindingJaxbDataFormatFactory": return org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class; case "startupsteprecorder": case "StartupStepRecorder": return org.apache.camel.spi.StartupStepRecorder.class; case "unitofworkfactory": @@ -156,8 +152,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "Registry": return target.getRegistry(); case "resourceloader": case "ResourceLoader": return target.getResourceLoader(); - case "restbindingjaxbdataformatfactory": - case "RestBindingJaxbDataFormatFactory": return target.getRestBindingJaxbDataFormatFactory(); case "startupsteprecorder": case "StartupStepRecorder": return target.getStartupStepRecorder(); case "unitofworkfactory": diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java index 0185cc309ce..ac1a2a935f4 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java @@ -36,7 +36,6 @@ import org.apache.camel.ResolveEndpointFailedException; import org.apache.camel.Route; import org.apache.camel.Service; import org.apache.camel.ServiceStatus; -import org.apache.camel.catalog.RuntimeCamelCatalog; import org.apache.camel.spi.AnnotationBasedProcessorFactory; import org.apache.camel.spi.BeanIntrospection; import org.apache.camel.spi.BeanProcessorFactory; @@ -60,7 +59,6 @@ import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spi.ReactiveExecutor; import org.apache.camel.spi.Registry; import org.apache.camel.spi.ResourceLoader; -import org.apache.camel.spi.RestBindingJaxbDataFormatFactory; import org.apache.camel.spi.RouteController; import org.apache.camel.spi.RouteStartupOrder; import org.apache.camel.spi.StartupStepRecorder; @@ -408,16 +406,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext { throw new UnsupportedOperationException(); } - @Override - public RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory() { - throw new UnsupportedOperationException(); - } - - @Override - public void setRestBindingJaxbDataFormatFactory(RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory) { - throw new UnsupportedOperationException(); - } - @Override public ResourceLoader getResourceLoader() { throw new UnsupportedOperationException(); diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java index 5c45fbe1ab9..79833129bec 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java @@ -27,6 +27,7 @@ import org.apache.camel.reifier.AbstractReifier; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.RestConfiguration; import org.apache.camel.support.CamelContextHelper; +import org.apache.camel.support.PluginHelper; import org.apache.camel.support.PropertyBindingSupport; public class RestBindingReifier extends AbstractReifier { @@ -128,7 +129,7 @@ public class RestBindingReifier extends AbstractReifier { if (jaxb != null) { // to setup JAXB we need to use camel-jaxb - camelContext.getCamelContextExtension().getRestBindingJaxbDataFormatFactory().setupJaxb( + PluginHelper.getRestBindingJaxbDataFormatFactory(camelContext).setupJaxb( camelContext, config, parseString(definition.getType()), definition.getTypeClass(), parseString(definition.getOutType()), definition.getOutTypeClass(), diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java index f3bf2e0a77a..0f95f511c41 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java @@ -42,6 +42,7 @@ import org.apache.camel.spi.PackageScanResourceResolver; import org.apache.camel.spi.PeriodTaskResolver; import org.apache.camel.spi.PeriodTaskScheduler; import org.apache.camel.spi.ProcessorFactory; +import org.apache.camel.spi.RestBindingJaxbDataFormatFactory; import org.apache.camel.spi.RouteFactory; import org.apache.camel.spi.RoutesLoader; import org.apache.camel.spi.UriFactoryResolver; @@ -470,4 +471,20 @@ public final class PluginHelper { public static RuntimeCamelCatalog getRuntimeCamelCatalog(ExtendedCamelContext extendedCamelContext) { return extendedCamelContext.getContextPlugin(RuntimeCamelCatalog.class); } + + /** + * Gets the {@link RestBindingJaxbDataFormatFactory} to be used. + */ + public static RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory(CamelContext camelContext) { + return getRestBindingJaxbDataFormatFactory(camelContext.getCamelContextExtension()); + } + + /** + * Gets the {@link RestBindingJaxbDataFormatFactory} to be used. + */ + public static RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory( + ExtendedCamelContext extendedCamelContext) { + return extendedCamelContext.getContextPlugin(RestBindingJaxbDataFormatFactory.class); + + } }