You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2018/10/03 15:04:55 UTC

[camel] 07/32: [CAMEL-12818] Remove deprecated stuff

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

gnodet pushed a commit to branch sandbox/camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b843ea14bfd0516336eb8c4e31c4dcc27adf2b96
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon Sep 10 10:44:48 2018 +0200

    [CAMEL-12818] Remove deprecated stuff
---
 camel-core/src/main/docs/bean-language.adoc        |   5 +-
 camel-core/src/main/docs/binding-component.adoc    | 131 -------
 camel-core/src/main/docs/controlbus-component.adoc |   2 +-
 camel-core/src/main/docs/ref-component.adoc        |   2 +-
 .../main/java/org/apache/camel/AsyncProcessor.java |   2 +-
 .../main/java/org/apache/camel/CamelContext.java   | 158 +-------
 .../src/main/java/org/apache/camel/Component.java  |  24 --
 .../org/apache/camel/ComponentConfiguration.java   | 158 --------
 .../java/org/apache/camel/ComponentVerifier.java   |  33 --
 .../src/main/java/org/apache/camel/Endpoint.java   |  19 -
 .../org/apache/camel/EndpointConfiguration.java    |  77 ----
 .../src/main/java/org/apache/camel/Exchange.java   |  11 -
 .../java/org/apache/camel/ExchangePattern.java     |  24 +-
 .../src/main/java/org/apache/camel/Main.java       |  25 --
 .../src/main/java/org/apache/camel/Message.java    |   9 -
 .../main/java/org/apache/camel/MessageHistory.java |   8 -
 .../src/main/java/org/apache/camel/Producer.java   |  29 --
 .../src/main/java/org/apache/camel/Properties.java |  37 --
 .../src/main/java/org/apache/camel/Property.java   |  38 --
 .../src/main/java/org/apache/camel/Route.java      |   4 +-
 .../org/apache/camel/RuntimeConfiguration.java     |   2 +-
 .../src/main/java/org/apache/camel/URIField.java   |  37 --
 .../java/org/apache/camel/VerifiableComponent.java |  32 --
 .../management/mbean/ManagedCamelContextMBean.java |  46 ---
 .../ManagedCircuitBreakerLoadBalancerMBean.java    |  47 ---
 .../management/mbean/ManagedComponentMBean.java    |   4 +-
 .../api/management/mbean/ManagedRouteMBean.java    |   7 -
 .../mbean/ManagedSendProcessorMBean.java           |   7 -
 .../org/apache/camel/builder/AdviceWithTasks.java  |   6 +-
 .../java/org/apache/camel/builder/Builder.java     |  68 ----
 .../org/apache/camel/builder/BuilderSupport.java   | 136 -------
 .../org/apache/camel/builder/DataFormatClause.java | 135 +++++--
 .../camel/builder/DefaultErrorHandlerBuilder.java  |  18 -
 .../camel/builder/ErrorHandlerBuilderRef.java      |   2 +-
 .../apache/camel/builder/ExpressionBuilder.java    |  33 --
 .../org/apache/camel/builder/ExpressionClause.java |  20 -
 .../camel/builder/ExpressionClauseSupport.java     |  20 -
 .../org/apache/camel/builder/ProcessorBuilder.java |  59 ---
 .../org/apache/camel/builder/RouteBuilder.java     |  18 +-
 .../apache/camel/builder/TransformerBuilder.java   |   3 +-
 .../org/apache/camel/builder/ValidatorBuilder.java |   3 +-
 .../org/apache/camel/cluster/CamelClusterView.java |  11 -
 .../bean/AbstractCamelInvocationHandler.java       |   7 +-
 .../apache/camel/component/bean/BeanComponent.java |   8 +-
 .../org/apache/camel/component/bean/BeanInfo.java  |   7 -
 .../component/bean/CamelInvocationHandler.java     |   5 -
 .../apache/camel/component/bean/ProxyHelper.java   |  60 ---
 .../camel/component/binding/BindingComponent.java  | 101 -----
 .../binding/BindingConsumerProcessor.java          |  60 ---
 .../camel/component/binding/BindingEndpoint.java   | 153 --------
 .../component/binding/BindingNameComponent.java    |  54 ---
 .../camel/component/binding/BindingProducer.java   |  65 ----
 .../apache/camel/component/binding/package.html    |  28 --
 .../camel/component/browse/BrowseComponent.java    |   6 +-
 .../component/controlbus/ControlBusComponent.java  |   6 +-
 .../component/controlbus/ControlBusProducer.java   |  14 +-
 .../component/dataformat/DataFormatComponent.java  |   6 +-
 .../camel/component/dataset/DataSetComponent.java  |   6 +-
 .../camel/component/dataset/DataSetEndpoint.java   |   7 -
 .../camel/component/direct/DirectComponent.java    |   6 +-
 .../component/directvm/DirectVmComponent.java      |   6 +-
 .../camel/component/directvm/DirectVmProducer.java |   2 +-
 .../extension/ComponentExtensionHelper.java        |  42 ---
 .../extension/ComponentVerifierExtension.java      |  78 ++--
 .../DefaultComponentVerifierExtension.java         |   3 +-
 .../apache/camel/component/file/FileComponent.java |  57 +--
 .../apache/camel/component/file/FileConsumer.java  |  13 -
 .../apache/camel/component/file/GenericFile.java   |   2 +-
 .../camel/component/file/GenericFileComponent.java |   8 +-
 .../camel/component/file/GenericFileConsumer.java  |  14 -
 .../camel/component/file/GenericFileMessage.java   |  15 +-
 .../component/language/LanguageComponent.java      |   6 +-
 .../apache/camel/component/log/LogComponent.java   |   6 +-
 .../apache/camel/component/mock/MockComponent.java |  11 +-
 .../apache/camel/component/mock/MockEndpoint.java  |  21 +-
 .../component/properties/PropertiesComponent.java  |  20 +-
 .../apache/camel/component/ref/RefComponent.java   |   6 +-
 .../camel/component/rest/RestApiComponent.java     |   6 +-
 .../apache/camel/component/rest/RestComponent.java |   7 +-
 .../rest/RestComponentVerifierExtension.java       |   3 +-
 .../component/scheduler/SchedulerComponent.java    |   6 +-
 .../camel/component/seda/CollectionProducer.java   |  47 ---
 .../apache/camel/component/seda/SedaComponent.java |  24 +-
 .../apache/camel/component/seda/SedaProducer.java  |  24 +-
 .../apache/camel/component/test/TestComponent.java |   6 +-
 .../camel/component/timer/TimerComponent.java      |   6 +-
 .../component/validator/ValidatorComponent.java    |   6 +-
 .../apache/camel/component/xslt/XsltComponent.java |   6 +-
 .../apache/camel/component/xslt/XsltConstants.java |  32 --
 .../apache/camel/component/xslt/XsltEndpoint.java  |   9 -
 .../org/apache/camel/converter/HasAnnotation.java  |  40 --
 .../org/apache/camel/converter/IOConverter.java    | 149 +-------
 .../apache/camel/converter/ObjectConverter.java    |   8 -
 .../apache/camel/converter/jaxp/StaxConverter.java |  28 +-
 .../apache/camel/converter/jaxp/XmlConverter.java  | 259 +------------
 .../camel/converter/stream/CachedOutputStream.java |  24 --
 .../apache/camel/impl/ActiveMQUuidGenerator.java   | 191 ----------
 .../impl/AnnotatedParameterConfiguration.java      |  43 ---
 .../camel/impl/ComponentConfigurationSupport.java  | 214 -----------
 .../org/apache/camel/impl/CompositeRegistry.java   |  11 -
 .../org/apache/camel/impl/ConfigurationHelper.java | 167 --------
 .../org/apache/camel/impl/DefaultCamelContext.java |  88 +----
 .../org/apache/camel/impl/DefaultComponent.java    |  19 +-
 .../camel/impl/DefaultComponentConfiguration.java  |  83 ----
 .../apache/camel/impl/DefaultConsumerTemplate.java |   8 -
 .../org/apache/camel/impl/DefaultEndpoint.java     |  73 ----
 .../camel/impl/DefaultEndpointConfiguration.java   |  90 -----
 .../apache/camel/impl/DefaultEndpointRegistry.java |   4 +-
 .../org/apache/camel/impl/DefaultExchange.java     |  55 +--
 .../camel/impl/DefaultExecutorServiceStrategy.java | 176 ---------
 .../camel/impl/DefaultInflightRepository.java      |  11 -
 .../java/org/apache/camel/impl/DefaultMessage.java |  12 +-
 .../apache/camel/impl/DefaultMessageHistory.java   |   6 -
 .../camel/impl/DefaultMessageHistoryFactory.java   |   7 -
 .../impl/DefaultPackageScanClassResolver.java      |   5 -
 .../apache/camel/impl/DefaultPollingEndpoint.java  |  11 -
 .../org/apache/camel/impl/DefaultProducer.java     |  10 -
 .../apache/camel/impl/DefaultProducerTemplate.java |  16 -
 .../java/org/apache/camel/impl/DefaultRoute.java   |   8 +-
 .../apache/camel/impl/DefaultRouteController.java  |  16 +
 .../org/apache/camel/impl/DefaultRouteNode.java    |   4 -
 .../apache/camel/impl/DefaultShutdownStrategy.java |   2 +-
 .../camel/impl/DefaultStreamCachingStrategy.java   |  35 --
 .../camel/impl/DefaultTransformerRegistry.java     |   2 +-
 .../apache/camel/impl/DefaultUuidGenerator.java    |   3 +-
 .../camel/impl/DefaultValidatorRegistry.java       |   2 +-
 .../java/org/apache/camel/impl/DeferProducer.java  |  25 --
 .../org/apache/camel/impl/DurationRoutePolicy.java |   4 +-
 .../org/apache/camel/impl/EmptyConsumerCache.java  |   2 +-
 .../org/apache/camel/impl/EmptyProducerCache.java  |   2 +-
 .../camel/impl/EventDrivenConsumerRoute.java       |   4 +-
 .../org/apache/camel/impl/ExpressionAdapter.java   |  27 --
 .../org/apache/camel/impl/ExpressionSupport.java   |  27 --
 .../camel/impl/HeaderFilterStrategyComponent.java  |   6 +-
 .../apache/camel/impl/InterceptSendToEndpoint.java |  10 -
 .../impl/InterceptSendToEndpointProcessor.java     |  13 -
 .../java/org/apache/camel/impl/JndiRegistry.java   |  12 -
 .../apache/camel/impl/LoggingExceptionHandler.java |  52 ---
 .../java/org/apache/camel/impl/MainSupport.java    |  25 --
 .../camel/impl/MappedEndpointConfiguration.java    | 165 --------
 .../apache/camel/impl/ParameterConfiguration.java  |  90 -----
 .../org/apache/camel/impl/ProcessorEndpoint.java   |   9 +-
 .../impl/PropertyPlaceholderDelegateRegistry.java  |  12 -
 .../org/apache/camel/impl/RoutePolicySupport.java  |  24 --
 .../apache/camel/impl/ScheduledPollEndpoint.java   |  11 -
 .../java/org/apache/camel/impl/ServiceSupport.java |  26 --
 .../java/org/apache/camel/impl/SimpleRegistry.java |  11 -
 .../camel/impl/SupervisingRouteController.java     |   2 +-
 .../camel/impl/SynchronousDelegateProducer.java    |  13 -
 .../camel/impl/ThrottlingExceptionRoutePolicy.java |   5 +-
 .../camel/impl/UriComponentConfiguration.java      | 156 --------
 .../apache/camel/impl/UriEndpointComponent.java    | 132 -------
 .../camel/impl/UriEndpointConfiguration.java       | 149 --------
 .../camel/impl/cluster/ClusteredRoutePolicy.java   |   2 +-
 .../converter/AsyncProcessorTypeConverter.java     |   7 -
 .../converter/CorePackageScanClassResolver.java    |   6 -
 .../InstanceMethodFallbackTypeConverter.java       |   5 -
 .../converter/InstanceMethodTypeConverter.java     |   5 -
 .../impl/converter/LazyLoadingTypeConverter.java   | 133 -------
 .../StaticMethodFallbackTypeConverter.java         |   5 -
 .../impl/converter/StaticMethodTypeConverter.java  |   5 -
 .../TypeConvertersPackageScanClassResolver.java    |   6 -
 .../property/ExchangePropertyLanguage.java         |   8 -
 .../language/simple/SimpleExpressionParser.java    |  10 -
 .../language/simple/SimplePredicateParser.java     |  10 -
 .../camel/language/simple/SimpleTokenizer.java     |   5 +-
 .../simple/ast/SimpleFunctionExpression.java       |   5 -
 .../language/simple/types/LogicalOperatorType.java |  26 +-
 .../java/org/apache/camel/main/MainSupport.java    |   6 +-
 .../DefaultManagementLifecycleStrategy.java        |  14 +-
 .../DefaultManagementObjectStrategy.java           |  30 +-
 .../management/DefaultManagementStrategy.java      |  60 ---
 .../camel/management/EventNotifierSupport.java     |  26 --
 .../camel/management/MBeanInfoAssembler.java       |   5 -
 .../apache/camel/management/ManagedLoadTimer.java  |   2 +-
 .../management/ManagedManagementStrategy.java      |   5 -
 .../management/mbean/ManagedCamelContext.java      |  56 +--
 .../mbean/ManagedCircuitBreakerLoadBalancer.java   | 146 -------
 .../camel/management/mbean/ManagedComponent.java   |  18 +-
 .../camel/management/mbean/ManagedMarshal.java     |   4 +-
 .../camel/management/mbean/ManagedRoute.java       |   6 +-
 .../management/mbean/ManagedSendProcessor.java     |   4 -
 .../management/mbean/ManagedSuspendableRoute.java  |   6 +-
 .../camel/management/mbean/ManagedUnmarshal.java   |   4 +-
 .../java/org/apache/camel/model/AOPDefinition.java | 205 ----------
 .../apache/camel/model/AggregateDefinition.java    |  39 --
 .../org/apache/camel/model/BeanDefinition.java     |  62 ---
 .../org/apache/camel/model/CatchDefinition.java    |  45 ---
 .../apache/camel/model/DataFormatDefinition.java   |  21 +-
 .../apache/camel/model/DescriptionDefinition.java  |  59 ---
 .../org/apache/camel/model/ExpressionNode.java     |   8 +-
 .../org/apache/camel/model/FromDefinition.java     |  46 +--
 .../apache/camel/model/LoadBalanceDefinition.java  |  23 +-
 .../org/apache/camel/model/MarshalDefinition.java  |  26 +-
 .../org/apache/camel/model/ModelCamelContext.java  | 133 +++++--
 .../apache/camel/model/OnExceptionDefinition.java  |  23 --
 .../apache/camel/model/ProcessorDefinition.java    | 373 +-----------------
 .../camel/model/ProcessorDefinitionHelper.java     |  18 -
 .../apache/camel/model/PropertiesDefinition.java   |  65 ----
 .../org/apache/camel/model/RouteDefinition.java    |  10 +-
 .../apache/camel/model/RouteDefinitionHelper.java  |  14 +-
 .../org/apache/camel/model/RoutesDefinition.java   |  12 +-
 .../org/apache/camel/model/SendDefinition.java     |  39 +-
 .../apache/camel/model/SetOutHeaderDefinition.java | 100 -----
 .../apache/camel/model/UnmarshalDefinition.java    |  27 +-
 .../org/apache/camel/model/WireTapDefinition.java  |  10 +-
 ...ngServiceCallServiceDiscoveryConfiguration.java |  63 ----
 ...ngServiceCallServiceDiscoveryConfiguration.java |   6 +-
 ...ainedServiceCallServiceFilterConfiguration.java |  69 ----
 ...ulServiceCallServiceDiscoveryConfiguration.java |  22 +-
 .../cloud/ServiceCallConfigurationDefinition.java  |  34 --
 .../camel/model/cloud/ServiceCallDefinition.java   |  29 +-
 .../model/dataformat/XMLSecurityDataFormat.java    | 177 +--------
 .../camel/model/language/MethodCallExpression.java |  20 +-
 .../CircuitBreakerLoadBalancerDefinition.java      | 154 --------
 .../camel/model/rest/OptionsVerbDefinition.java    |  34 --
 .../model/rest/RestConfigurationDefinition.java    |   2 +-
 .../apache/camel/model/rest/RestDefinition.java    |  50 ---
 .../model/rest/RestOperationParamDefinition.java   |  36 --
 .../apache/camel/model/rest/VerbDefinition.java    |   2 -
 .../org/apache/camel/processor/AOPProcessor.java   |  37 --
 .../camel/processor/CamelInternalProcessor.java    |  32 --
 .../org/apache/camel/processor/CamelLogger.java    | 309 ---------------
 .../camel/processor/DelegateAsyncProcessor.java    |   8 -
 .../apache/camel/processor/MulticastProcessor.java |   8 -
 .../camel/processor/RecipientListProcessor.java    |  10 -
 .../apache/camel/processor/RedeliveryPolicy.java   |  26 --
 .../org/apache/camel/processor/SendProcessor.java  |   7 -
 .../org/apache/camel/processor/SortProcessor.java  |   2 +-
 .../java/org/apache/camel/processor/Splitter.java  |  12 -
 .../java/org/apache/camel/processor/Traceable.java |  26 --
 .../apache/camel/processor/UnitOfWorkProducer.java |  13 -
 .../aggregate/AggregationStrategyBeanInfo.java     |   5 -
 .../aggregate/AggregationStrategyMethodInfo.java   |   8 +-
 .../aggregate/UseOriginalAggregationStrategy.java  |   5 -
 .../camel/processor/binding/DataFormatBinding.java |  93 -----
 .../exceptionpolicy/ExceptionPolicyKey.java        |  24 --
 .../processor/interceptor/DefaultChannel.java      |   4 -
 .../processor/interceptor/DelayInterceptor.java    |  54 ---
 .../camel/processor/interceptor/Delayer.java       |  78 ----
 .../camel/processor/interceptor/StreamCaching.java |  83 ----
 .../interceptor/StreamCachingInterceptor.java      |  58 ---
 .../loadbalancer/CircuitBreakerLoadBalancer.java   | 324 ----------------
 .../camel/runtimecatalog/AbstractCamelCatalog.java | 109 ++----
 .../camel/runtimecatalog/RuntimeCamelCatalog.java  |  46 ---
 .../runtimecatalog/SimpleValidationResult.java     |  34 --
 .../main/java/org/apache/camel/spi/Binding.java    |  40 --
 .../main/java/org/apache/camel/spi/Container.java  | 135 -------
 .../org/apache/camel/spi/EndpointCompleter.java    |  41 --
 .../apache/camel/spi/ExecutorServiceStrategy.java  | 271 -------------
 .../main/java/org/apache/camel/spi/HasBinding.java |  32 --
 .../org/apache/camel/spi/InflightRepository.java   |  16 -
 .../java/org/apache/camel/spi/ManagementAware.java |  45 ---
 .../org/apache/camel/spi/ManagementStrategy.java   |  58 ---
 .../apache/camel/spi/MessageHistoryFactory.java    |  12 -
 .../apache/camel/spi/PackageScanClassResolver.java |  10 -
 .../main/java/org/apache/camel/spi/Registry.java   |  35 --
 .../main/java/org/apache/camel/spi/Required.java   |  38 --
 .../org/apache/camel/spi/RestConfiguration.java    |  35 +-
 .../java/org/apache/camel/spi/RouteController.java |  20 +
 .../camel/support/LoggingExceptionHandler.java     |  15 -
 .../camel/support/ReloadStrategySupport.java       |   3 +-
 .../apache/camel/support/RoutePolicySupport.java   |  14 +-
 .../support/TokenXMLPairExpressionIterator.java    | 230 -----------
 .../apache/camel/util/AsyncProcessorHelper.java    |  58 ---
 .../org/apache/camel/util/CamelContextHelper.java  |   3 +-
 .../java/org/apache/camel/util/EndpointHelper.java |  42 +--
 .../java/org/apache/camel/util/ExchangeHelper.java |  54 +--
 .../main/java/org/apache/camel/util/FileUtil.java  |  90 +----
 .../org/apache/camel/util/GroupTokenIterator.java  |  24 --
 .../main/java/org/apache/camel/util/IOHelper.java  |  24 --
 .../java/org/apache/camel/util/ObjectHelper.java   | 234 +-----------
 .../main/java/org/apache/camel/util/StopWatch.java |  11 -
 .../java/org/apache/camel/util/StringHelper.java   |  13 -
 .../org/apache/camel/util/UnitOfWorkHelper.java    |  12 -
 .../java/org/apache/camel/util/ValueHolder.java    |  17 +-
 .../camel/util/component/AbstractApiComponent.java | 149 +-------
 .../camel/util/component/AbstractApiEndpoint.java  |   2 +-
 .../camel/util/jsse/SSLContextParameters.java      |  18 -
 .../util/toolbox/XsltAggregationStrategy.java      |   5 -
 .../services/org/apache/camel/component/binding    |  18 -
 .../org/apache/camel/model/cloud/jaxb.index        |   2 -
 .../resources/org/apache/camel/model/jaxb.index    |   3 -
 .../org/apache/camel/model/loadbalancer/jaxb.index |   1 -
 .../org/apache/camel/model/rest/jaxb.index         |   1 -
 .../java/org/apache/camel/CamelExceptionsTest.java |   1 -
 .../java/org/apache/camel/ContextTestSupport.java  |  11 -
 .../test/java/org/apache/camel/TestSupport.java    |  51 ---
 .../camel/builder/ContextErrorHandlerTest.java     |   3 +-
 .../camel/builder/ErrorHandlerBuilderRefTest.java  |   4 +-
 .../apache/camel/builder/ExchangeBuilderTest.java  |   4 +-
 .../org/apache/camel/builder/RouteBuilderTest.java |   2 +-
 .../camel/component/bean/BeanConcurrentTest.java   |   2 +-
 .../bean/BeanExpressionConcurrentTest.java         |   2 +-
 .../apache/camel/component/bean/BeanInfoTest.java  |  21 +-
 .../ControlBusLanguageSimpleStartRouteTest.java    |  16 +-
 .../controlbus/ControlBusRestartRouteTest.java     |   4 +-
 .../controlbus/ControlBusStartRouteAsyncTest.java  |   2 +-
 .../controlbus/ControlBusStartRouteTest.java       |  20 +-
 .../component/dataset/DataSetEndpointTest.java     |   4 +-
 .../component/dataset/DataSetPreloadTest.java      |   2 +-
 .../camel/component/dataset/DataSetSedaTest.java   |   2 +-
 .../component/direct/DirectNoConsumerTest.java     |   2 +-
 .../direct/DirectProducerBlockingTest.java         |   4 +-
 .../component/directvm/DirectVmNoConsumerTest.java |   2 +-
 .../directvm/DirectVmProducerBlockingTest.java     |   4 +-
 .../extension/verifier/ComponentVerifierTest.java  |   7 +-
 .../FileConcurrentWriteAppendSameFileTest.java     |   2 +-
 .../file/FileConsumeDoneFileIssueTest.java         |   6 +-
 .../file/FileConsumeMaxMessagesPerPollTest.java    |   2 +-
 .../file/FileConsumeMoveRelativeNameTest.java      |   2 +-
 .../FileConsumeNotEagerMaxMessagesPerPollTest.java |   2 +-
 ...ileConsumerAbsoluteRootPathDefaultMoveTest.java |   2 +-
 .../component/file/FileConsumerBatchTest.java      |   2 +-
 .../file/FileConsumerCustomSchedulerTest.java      |   2 +-
 ...FileConsumerIdempotentKeyChangedIssue2Test.java |   2 +-
 .../FileConsumerIdempotentKeyChangedIssueTest.java |   2 +-
 ...FileConsumerPollStrategyPolledMessagesTest.java |   2 +-
 .../file/FileConsumerRelativeFileNameTest.java     |   2 +-
 .../file/FileConsumerRestartNotLeakThreadTest.java |   4 +-
 .../FileConsumerSharedThreadPollStopRouteTest.java |   4 +-
 .../FileConsumerThreadsInProgressIssueTest.java    |   2 +-
 .../file/FileMarkerFileDeleteOldLockFilesTest.java |   2 +-
 ...eMarkerFileRecursiveDeleteOldLockFilesTest.java |   2 +-
 ...erFileRecursiveDoNotDeleteOldLockFilesTest.java |   2 +-
 ...cursiveFilterDeleteOldLockFilesIncludeTest.java |   2 +-
 ...rFileRecursiveFilterDeleteOldLockFilesTest.java |   2 +-
 .../camel/component/file/FilePollEnrichTest.java   |   2 +-
 .../file/FileProducerFileExistAppendTest.java      |   2 +-
 .../file/FileProducerFileExistOverrideTest.java    |   2 +-
 .../file/FileProducerFileExistTryRenameTest.java   |   2 +-
 .../FileRenameReadLockMustUseMarkerFileTest.java   |   2 +-
 .../camel/component/file/FileSplitInSplitTest.java |   2 +-
 .../file/FromFilePollThirdTimeOkTest.java          |   2 +-
 .../component/file/stress/FileAsyncStressTest.java |   2 +-
 .../camel/component/log/LogListenerTest.java       |   3 +-
 .../camel/component/mock/MockAsBeanTest.java       |   3 +-
 .../camel/component/mock/MockEndpointTest.java     |   4 +-
 .../camel/component/rest/FromRestOptionsTest.java  |  73 ----
 .../component/rest/RestComponentVerifierTest.java  |  15 +-
 .../component/seda/CollectionProducerTest.java     |  59 ---
 .../seda/SedaComponentReferenceEndpointTest.java   |   4 +-
 .../seda/SedaConcurrentConsumersNPEIssueTest.java  |   6 +-
 .../seda/SedaConsumerSuspendResumeTest.java        |   4 +-
 .../component/seda/SedaMultipleConsumersTest.java  |   2 +-
 .../camel/component/seda/SedaNoConsumerTest.java   |   2 +-
 .../component/seda/SedaPurgeWhenStoppingTest.java  |   4 +-
 .../seda/SedaRemoveRouteThenAddAgainTest.java      |   2 +-
 .../seda/SedaSuspendConsumerStopRouteTest.java     |   4 +-
 .../camel/component/seda/SedaTimeoutTest.java      |   2 +-
 .../camel/component/test/TestEndpointTest.java     |   3 +-
 .../timer/TimerMultipleConsumerStopRouteTest.java  |   2 +-
 .../camel/component/timer/TimerNameTest.java       |   2 +-
 .../component/timer/TimerNegativeDelayTest.java    |   2 +-
 .../timer/TimerNegativeNoRepeatCountDelayTest.java |   2 +-
 .../component/timer/TimerRepeatCountTest.java      |   2 +-
 .../vm/VmComponentReferenceEndpointTest.java       |   4 +-
 .../vm/VmMultipleConsumersRemoteRouteTest.java     |   2 +-
 .../XsltFromHeaderOverrideEndpointUriTest.java     |  81 ----
 .../apache/camel/component/xslt/XsltRouteTest.java |   2 +-
 .../camel/converter/ObjectConverterTest.java       |   8 -
 .../camel/converter/jaxp/XmlConverterTest.java     |  18 +-
 .../camel/impl/ActiveMQUuidGeneratorTest.java      |  61 ---
 .../CamelContextAddRestDefinitionsFromXmlTest.java |   2 +-
 ...CamelContextAddRouteDefinitionsFromXmlTest.java |  16 +-
 .../camel/impl/ComponentConfigurationTest.java     | 419 ---------------------
 .../apache/camel/impl/CompositeRegistryTest.java   |   2 +-
 .../apache/camel/impl/ConfigurationHelperTest.java | 390 -------------------
 .../org/apache/camel/impl/CustomIdFactoryTest.java |   2 +
 .../impl/DefaultCamelContextAutoStartupTest.java   |   4 +-
 ...aultCamelContextLazyLoadTypeConvertersTest.java |  70 ----
 ...melContextWithLifecycleStrategyRestartTest.java |   4 +-
 .../org/apache/camel/impl/DefaultExchangeTest.java |  26 +-
 .../impl/DefaultExecutorServiceStrategyTest.java   | 367 ------------------
 .../org/apache/camel/impl/DefaultMessageTest.java  |  11 -
 .../apache/camel/impl/DefaultUnitOfWorkTest.java   |   2 +
 .../camel/impl/DurationRoutePolicyFactoryTest.java |   8 +-
 .../impl/DurationRoutePolicyMaxMessagesTest.java   |   8 +-
 .../impl/DurationRoutePolicyMaxSecondsTest.java    |   8 +-
 .../camel/impl/EndpointConfigurationTest.java      | 105 ------
 ...outeEndpointsRemoteRouteSharedEndpointTest.java |   2 +-
 ...tRegistryKeepRouteEndpointsRemoteRouteTest.java |   2 +-
 .../impl/ExtendedStartupListenerComponentTest.java |  14 +-
 .../org/apache/camel/impl/JndiRegistryTest.java    |  10 +-
 .../org/apache/camel/impl/RefDataFormatTest.java   |   1 +
 .../camel/impl/RemoveRouteStopEndpointTest.java    |  10 +-
 .../camel/impl/RouteDirectSuspendResumeTest.java   |   8 +-
 .../apache/camel/impl/RoutePolicyCallbackTest.java |  10 +-
 .../apache/camel/impl/RoutePolicySupportTest.java  |  10 +-
 .../org/apache/camel/impl/RoutePolicyTest.java     |  14 +-
 .../org/apache/camel/impl/RouteRemove2Test.java    |  14 +-
 .../org/apache/camel/impl/RouteRemoveTest.java     |  14 +-
 .../apache/camel/impl/RouteSedaStopStartTest.java  |   8 +-
 .../camel/impl/RouteSedaSuspendResumeTest.java     |   8 +-
 .../camel/impl/RouteSuspendResumeWarmUpTest.java   |   4 +-
 ...edPollEndpointConfigureConsumerRestartTest.java |   4 +-
 .../ShutdownGracefulNoAutoStartedRoutesTest.java   |   6 +-
 .../SimpleShutdownGracefulNoAtuoStartedTest.java   |   2 +-
 .../camel/impl/StartStopAndShutdownRouteTest.java  |   4 +-
 .../StartupListenerComponentFromRegistryTest.java  |   8 +-
 .../camel/impl/StartupListenerComponentTest.java   |   8 +-
 .../org/apache/camel/impl/StartupListenerTest.java |   8 +-
 .../camel/impl/StopRouteAbortAfterTimeoutTest.java |   8 +-
 .../camel/impl/TwoRouteSuspendResumeTest.java      |  12 +-
 .../impl/cloud/ServiceCallConfigurationTest.java   |  10 +-
 ...ScopedOnExceptionMultipleRouteBuildersTest.java |   2 +-
 .../camel/issues/ErrorHandlerAdviceIssueTest.java  |   2 +-
 .../OnExceptionBeforeErrorHandlerIssueTest.java    |   6 +-
 .../issues/OnExceptionContinuedIssueTest.java      |   2 +-
 ...ScopedOnExceptionMultipleRouteBuildersTest.java |   3 +-
 .../camel/issues/ServicePoolAwareLeakyTest.java    |   4 +-
 .../camel/issues/StopRouteFromRouteTest.java       |  10 +-
 .../issues/StopRouteImpactsErrorHandlerTest.java   |   2 +-
 ...dNotStopContextScopedErrorHandlerIssueTest.java |   2 +-
 ...uldNotStopRouteScopedErrorHandlerIssueTest.java |   2 +-
 .../issues/TypeConverterConcurrencyIssueTest.java  |   2 +-
 .../simple/SimpleParserExpressionInvalidTest.java  |  10 +-
 .../simple/SimpleParserExpressionTest.java         |  44 +--
 .../simple/SimpleParserPredicateInvalidTest.java   |  14 +-
 .../language/simple/SimpleParserPredicateTest.java |  50 +--
 .../simple/SimpleParserRegexpPredicateTest.java    |   2 +-
 .../apache/camel/language/simple/SimpleTest.java   |   2 +-
 .../java/org/apache/camel/main/MainVetoTest.java   |   1 +
 .../management/CamelContextDisableJmxTest.java     |   1 +
 .../apache/camel/management/CustomEndpoint.java    |   7 +-
 .../camel/management/EndpointCompletionTest.java   | 114 ------
 .../ManagedCamelContextPropertiesTest.java         |   8 +-
 .../ManagedCircuitBreakerLoadBalancerTest.java     | 129 -------
 .../camel/management/ManagedComponentTest.java     |  28 +-
 .../camel/management/ManagedMarshalTest.java       |   2 +-
 ...gedProducerRecipientListRegisterAlwaysTest.java |   5 +-
 ...edProducerRouteAddRemoveRegisterAlwaysTest.java |   2 +-
 .../camel/management/ManagedProducerTest.java      |   5 +-
 .../camel/management/ManagedRefProducerTest.java   |  13 +-
 .../camel/management/ManagedRegisterRouteTest.java |   6 +-
 .../camel/management/ManagedRestRegistryTest.java  |   2 +-
 .../management/ManagedRouteAddRemoveTest.java      |  14 +-
 .../ManagedRoutePerformanceCounterTest.java        |   8 +-
 ...edRouteRemoveWireTapExplicitThreadPoolTest.java |   2 +-
 .../ManagedRouteSuspendAndResumeTest.java          |   1 +
 .../camel/management/ManagedSedaEndpointTest.java  |   2 +-
 .../camel/management/ManagedSendProcessorTest.java |   2 +-
 ...ManagedSetAndRemoveHeaderAndPropertiesTest.java |   4 +-
 .../ManagedThrottlingInflightRoutePolicyTest.java  |   4 +-
 .../camel/management/ManagedUnmarshalTest.java     |   2 +-
 .../ManagedUnregisterCamelContextTest.java         |   6 +-
 .../management/RemoveRouteDefinitionTest.java      |   2 +-
 .../java/org/apache/camel/model/XmlParseTest.java  |  40 +-
 .../camel/processor/AOPAfterFinallyTest.java       |  76 ----
 .../org/apache/camel/processor/AOPAfterTest.java   |  53 ---
 .../camel/processor/AOPAroundFinallyTest.java      |  78 ----
 .../org/apache/camel/processor/AOPAroundTest.java  |  54 ---
 .../org/apache/camel/processor/AOPBeforeTest.java  |  53 ---
 .../apache/camel/processor/AOPNestedRouteTest.java |  58 ---
 .../camel/processor/BeanCachedProcessorTest.java   |   8 +-
 .../org/apache/camel/processor/BeanCachedTest.java |   8 +-
 .../CircuitBreakerLoadBalancerInvalidTest.java     |  51 ---
 .../processor/CircuitBreakerLoadBalancerTest.java  | 242 ------------
 ...point2MustBeStartedBeforeSendProcessorTest.java |   4 +-
 ...dpointMustBeStartedBeforeSendProcessorTest.java |   4 +-
 .../FailOverLoadBalanceAutoStartupFalseTest.java   |   2 +-
 .../apache/camel/processor/FlipRoutePolicy.java    |   4 +-
 .../camel/processor/IdempotentConsumerTest.java    |   2 +-
 .../apache/camel/processor/LogEipListenerTest.java |   3 +-
 ...deliveryWhileStoppingDeadLetterChannelTest.java |   2 +-
 ...cipientListWithStringDelimitedPropertyTest.java |   2 +-
 ...tterErrorHandlerNoRedeliveryOnShutdownTest.java |   2 +-
 ...veryErrorHandlerNoRedeliveryOnShutdownTest.java |   2 +-
 ...StacksNeededDuringRoutingSendProcessorTest.java |   9 +-
 .../apache/camel/processor/ResequencerTest.java    |   2 -
 .../camel/processor/RouteAutoStartupTest.java      |   6 +-
 .../camel/processor/RouteNoAutoStartupTest.java    |   2 +-
 ...StartupOrderSuspendResumeNoAutoStartupTest.java |   6 +-
 .../camel/processor/SetExchangePatternTest.java    |   7 -
 .../processor/ShutdownCompleteAllTasksTest.java    |   2 +-
 .../SimpleMockNoLazyTypeConverterTest.java         |  29 --
 .../processor/SplitterWireTapStreamCacheTest.java  |   2 +
 .../processor/TransformToInvalidEndpointTest.java  |  49 ---
 .../apache/camel/processor/TransformToTest.java    |  73 ----
 .../camel/processor/WireTapOnPrepareTest.java      |   2 +-
 ...WireTapUsingFireAndForgetCopyAsDefaultTest.java |  26 +-
 .../WireTapUsingFireAndForgetCopyTest.java         |  24 +-
 .../processor/WireTapUsingFireAndForgetTest.java   |  10 +-
 .../aggregator/AbstractDistributedTest.java        |   4 +-
 .../aggregator/AggregateCompleteAllOnStopTest.java |   2 +-
 .../AggregateForceCompletionOnStopTest.java        |   4 +-
 .../AggregateGroupedExchangeBackwardsCompTest.java |   5 +-
 ...roupedExchangeCompletionExpressionSizeTest.java |   5 +-
 .../AggregateShutdownThreadPoolTest.java           |   8 +-
 .../AggregateSimpleExpressionIssueTest.java        |   2 +-
 .../aggregator/AggregatorConcurrencyTest.java      |   2 +-
 ...ionStrategyCompletionFromBatchConsumerTest.java |   2 +-
 .../camel/processor/enricher/EnricherRefTest.java  |   4 +-
 .../interceptor/AdviceWithAutoStartupTest.java     |  16 +-
 .../interceptor/DebugExceptionBreakpointTest.java  |   2 +
 .../DebugExceptionEventBreakpointTest.java         |   2 +
 .../interceptor/DebugSingleStepConditionTest.java  |   2 +
 .../processor/interceptor/DebugSingleStepTest.java |   2 +
 .../camel/processor/interceptor/DebugTest.java     |   4 +-
 .../interceptor/StreamCachingInterceptorTest.java  | 144 -------
 ...ScopedOnExceptionLoadBalancerStopRouteTest.java |   2 +-
 .../runtimecatalog/RuntimeCamelCatalogTest.java    |  25 +-
 .../java/org/apache/camel/spi/ContainerTest.java   |  89 -----
 .../util/DumpModelAsXmlSplitBodyRouteTest.java     |   2 +-
 ...umpModelAsXmlSplitNestedChoiceEndRouteTest.java |   2 +-
 .../DumpModelAsXmlTransformRouteConstantTest.java  |   2 +-
 .../DumpModelAsXmlTransformRouteLanguageTest.java  |   2 +-
 .../util/DumpModelAsXmlTransformRouteTest.java     |   2 +-
 .../java/org/apache/camel/util/FileUtilTest.java   |  14 +-
 .../org/apache/camel/util/MessageHelperTest.java   |   6 +-
 .../component/ApiMethodPropertiesHelperTest.java   |   4 +-
 .../camel/util/jsse/SSLContextParametersTest.java  |  92 ++---
 .../org/apache/camel/model/setOutHeader.xml        |  28 --
 .../apache/camel/model/setOutHeaderToConstant.xml  |  28 --
 .../component/ahc/ws/WsProducerConsumerTest.java   |   8 +-
 .../apache/camel/component/amqp/AMQPComponent.java |  10 -
 .../apache/camel/component/apns/ApnsComponent.java |   6 +-
 ...1DataFormatWithStreamIteratorByteArrayTest.java |   8 +-
 .../ASN1DataFormatWithStreamIteratorClassTest.java |  16 +-
 .../asn1/SpringASN1DataFormatRouteTest.xml         |   2 +-
 .../camel/component/atmos/AtmosComponent.java      |   8 +-
 .../camel/component/atmos/AtmosEndpoint.java       |   4 -
 .../apache/camel/component/feed/FeedComponent.java |   6 +-
 .../camel-avro/src/main/docs/avro-component.adoc   |   2 +-
 .../camel-avro/src/main/docs/avro-dataformat.adoc  |   2 +-
 .../apache/camel/component/avro/AvroComponent.java |   8 +-
 .../camel/dataformat/avro/springDataFormat.xml     |   6 +-
 .../apache/camel/component/aws/cw/CwEndpoint.java  |   7 -
 .../camel/component/aws/ddb/DdbEndpoint.java       |   7 -
 .../apache/camel/component/aws/s3/S3Endpoint.java  |   7 -
 .../camel/component/aws/sdb/SdbEndpoint.java       |   6 -
 .../camel/component/aws/ses/SesEndpoint.java       |   6 -
 .../camel/component/aws/sns/SnsEndpoint.java       |   6 -
 .../component/aws/s3/S3ComponentFileTest.java      |   2 +-
 .../component/azure/blob/BlobServiceComponent.java |   8 +-
 .../azure/queue/QueueServiceComponent.java         |   8 +-
 .../dataformat/barcode/barcodeDataformatSpring.xml |  12 +-
 .../bean/validator/BeanValidatorComponent.java     |   6 +-
 .../beanio/SpringBeanIODataFormatSimpleTest.xml    |   4 +-
 .../component/beanstalk/BeanstalkComponent.java    |   6 +-
 .../beanstalk/ConsumerCompletionTest.java          |   6 +-
 .../beanstalk/ConsumerToProducerHeadersTest.java   |   2 +-
 .../beanstalk/TestExchangeCopyProcessor.java       |   2 +-
 .../BindySimpleCsvUnmarshallDslTest-context.xml    |   2 +-
 .../blueprint/BlueprintContainerRegistry.java      |  15 -
 .../camel/blueprint/CamelContextFactoryBean.java   |  28 --
 .../blueprint/CamelErrorHandlerFactoryBean.java    |   4 -
 .../apache/camel/blueprint/ErrorHandlerType.java   |   2 +-
 .../blueprint/handler/CamelNamespaceHandler.java   |  12 +-
 .../blueprint/BlueprintComponentResolverTest.java  |  12 -
 .../camel/component/bonita/BonitaComponent.java    |   8 +-
 .../camel/component/bonita/BonitaEndpoint.java     |   4 -
 .../camel-boon/src/main/docs/boon-dataformat.adoc  |   2 +-
 .../org/apache/camel/cdi/CdiCamelExtension.java    |   1 +
 .../org/apache/camel/cdi/CdiCamelRegistry.java     |  14 -
 .../org/apache/camel/cdi/CdiEventEndpoint.java     |   2 +-
 .../JtaTransactionErrorHandlerBuilder.java         |   2 +-
 .../camel/cdi/xml/CamelContextFactoryBean.java     |  26 --
 .../camel/cdi/mock/DummyRestConsumerFactory.java   |   8 +-
 .../cdi/test/AdvisedMockEndpointProducerTest.java  |   2 +-
 .../apache/camel/cdi/test/AdvisedRouteTest.java    |   2 +-
 .../camel/cdi/test/CustomCamelContextTest.java     |   4 +-
 .../camel/cdi/test/ManualCamelContextTest.java     |   4 +-
 .../camel/cdi/test/MultiCamelContextTest.java      |   2 +-
 .../cdi/test/MultiContextConsumerTemplateTest.java |   2 +-
 .../cdi/test/MultiContextEndpointInjectTest.java   |   2 +-
 .../cdi/test/MultiContextEventEndpointTest.java    |   2 +-
 .../cdi/test/MultiContextEventNotifierTest.java    |   2 +-
 .../cdi/test/MultiContextProduceTemplateTest.java  |   2 +-
 .../cdi/test/MultiContextProducerTemplateTest.java |   2 +-
 .../cdi/test/MultiContextPropertyInjectTest.java   |   2 +-
 .../cdi/test/XmlServiceCallConfigurationTest.java  |   5 +-
 .../src/test/resources/camel-context-beans.xml     |   4 +-
 .../chronicle/engine/ChronicleEngineComponent.java |   8 +-
 .../camel/component/chunk/ChunkComponent.java      |   6 +-
 .../camel/component/chunk/ChunkComponentTest.java  |   2 +-
 .../org/apache/camel/component/cm/CMComponent.java |   8 +-
 .../org/apache/camel/component/cm/test/CMTest.java |   6 +-
 .../apache/camel/component/cmis/CMISComponent.java |   4 +-
 .../java/org/apache/camel/coap/CoAPComponent.java  |  14 +-
 .../camel/component/cometd/CometdComponent.java    |   6 +-
 .../camel/component/consul/ConsulRegistry.java     |  15 -
 .../cloud/ConsulServiceRegistrationTestBase.java   |   4 +-
 .../apache/camel/core/osgi/OsgiClassResolver.java  |  13 +-
 .../camel/core/osgi/OsgiServiceRegistry.java       |  12 -
 .../camel/core/osgi/OsgiComponentResolverTest.java |  12 -
 .../core/xml/AbstractCamelContextFactoryBean.java  | 119 ++----
 .../core/xml/AbstractCamelEndpointFactoryBean.java |  33 --
 .../camel/component/couchdb/CouchDbComponent.java  |   4 +-
 .../component/crypto/cms/CryptoCmsComponent.java   |   8 +-
 .../crypto/DigitalSignatureComponent.java          |   8 +-
 .../component/crypto/SpringPGPDataFormatTest.xml   |   8 +-
 .../component/cxf/transport/CamelOutputStream.java |   2 +-
 .../apache/camel/component/cxf/CxfEndpoint.java    |  14 -
 .../camel/component/cxf/jaxrs/CxfRsEndpoint.java   |   7 -
 .../cxf/CxfGreeterCXFMessageRouterTest.java        |   6 +-
 .../cxf/CxfCustomizedExceptionContext.xml          |   4 +-
 .../component/cxf/GreeterEnrichRouterContext.xml   |   2 +-
 .../apache/camel/component/cxf/WsdlOnlyBeans.xml   |   6 +-
 .../component/cxf/cxfbean/CxfBeanTest-context.xml  |   2 +-
 ...eanWithWsdlLocationInBeanAndIoCTest-context.xml |   2 +-
 .../CxfBeanWithWsdlLocationInBeanTest-context.xml  |   2 +-
 .../cxf/jaxrs/CxfRsProducerHeaderTest-context.xml  |   6 +-
 .../cxf/jaxrs/CxfRsSpringAsyncProducer.xml         |   2 +-
 .../component/cxf/jaxrs/CxfRsSpringProducer.xml    |   2 +-
 .../jaxrs/CxfRsSpringProducerAddressOverride.xml   |   2 +-
 .../digitalocean/DigitalOceanComponent.java        |   9 +-
 .../component/disruptor/DisruptorComponent.java    |   4 +-
 .../disruptor/DisruptorBufferingTest.java          |   2 +-
 .../DisruptorComponentReferenceEndpointTest.java   |   4 +-
 .../DisruptorConcurrentConsumersNPEIssueTest.java  |   6 +-
 .../disruptor/DisruptorConcurrentTest.java         |   8 +-
 .../DisruptorConsumerSuspendResumeTest.java        |   4 +-
 .../DisruptorInOutChainedTimeoutTest.java          |   2 +-
 .../disruptor/DisruptorMultipleConsumersTest.java  |   2 +-
 .../DisruptorRemoveRouteThenAddAgainTest.java      |   2 +-
 .../component/disruptor/DisruptorTimeoutTest.java  |   2 +-
 .../DisruptorVmComponentReferenceEndpointTest.java |   4 +-
 .../vm/DisruptorVmInOutChainedTimeoutTest.java     |   2 +-
 .../apache/camel/component/dns/DnsComponent.java   |   6 +-
 .../component/dns/policy/DnsActivationPolicy.java  |   6 +-
 .../camel/component/docker/DockerEndpoint.java     |   4 -
 .../camel/component/docker/DockerHelper.java       |   4 +-
 .../camel/component/dozer/DozerComponent.java      |   8 +-
 .../component/dozer/CustomMappingTest-context.xml  |   2 +-
 .../ExpressionMappingClasspathTest-context.xml     |   2 +-
 .../dozer/ExpressionMappingFileTest-context.xml    |   2 +-
 .../dozer/ExpressionMappingTest-context.xml        |   2 +-
 .../dozer/VariableMappingTest-context.xml          |   2 +-
 .../component/dozer/XmlToJsonTest-context.xml      |   2 +-
 .../camel/component/drill/DrillComponent.java      |   8 +-
 .../camel/component/dropbox/DropboxEndpoint.java   |   4 -
 .../camel/component/elsql/ElsqlComponent.java      |   6 +-
 .../elsql/ElSqlConsumerDynamicParameterTest.java   |   2 +-
 .../camel/component/etcd/EtcdKeysProducer.java     |   6 +-
 .../apache/camel/component/etcd/EtcdWatchTest.java |   2 +-
 .../component/eventadmin/EventAdminComponent.java  |   6 +-
 .../apache/camel/component/exec/ExecComponent.java |   6 +-
 .../component/facebook/FacebookComponent.java      |   6 +-
 .../facebook/FacebookComponentConsumerTest.java    |   2 +-
 .../FhirDataformatDefaultConfigSpringTest.java     |   3 +-
 .../fhir/FhirDataFormatConfigSpringTest.xml        |   4 +-
 .../fhir/FhirDataFormatDefaultConfigSpringTest.xml |   4 +-
 .../FhirJsonDataFormatErrorHandlerSpringTest.xml   |   4 +-
 .../FhirXmlDataFormatErrorHandlerSpringTest.xml    |   4 +-
 .../component/flatpack/FlatpackComponent.java      |   6 +-
 .../flatpack/DelimitedAllowLongTest-context.xml    |   2 +-
 .../DelimitedAllowShortAndLongTest-context.xml     |   2 +-
 .../flatpack/DelimitedAllowShortTest-context.xml   |   2 +-
 .../DelimitedErrorWithUnmarshalTest-context.xml    |   2 +-
 .../DelimitedWithUnmarshalTest-context.xml         |   2 +-
 .../flatpack/FixedLengthAllowLongTest-context.xml  |   2 +-
 .../FixedLengthAllowShortAndLongTest-context.xml   |   2 +-
 .../flatpack/FixedLengthAllowShortTest-context.xml |   2 +-
 .../FixedLengthWithUnmarshalTest-context.xml       |   2 +-
 .../camel/component/flink/FlinkComponent.java      |   4 +-
 .../apache/camel/component/fop/FopComponent.java   |   4 +-
 .../component/freemarker/FreemarkerComponent.java  |   6 +-
 .../camel/component/freemarker/camel-context.xml   |   4 +-
 .../camel/component/file/remote/FtpComponent.java  |   2 -
 .../camel/component/file/remote/FtpConsumer.java   |   3 +-
 .../camel/component/file/remote/FtpsComponent.java |   2 -
 .../file/remote/RemoteFileConfiguration.java       |   5 +-
 .../component/file/remote/RemoteFileEndpoint.java  |   6 +-
 .../camel/component/file/remote/SftpComponent.java |   2 -
 .../camel/component/file/remote/SftpConsumer.java  |   3 +-
 .../file/remote/FromFtpAsyncProcessTest.java       |   2 +-
 .../FromFtpSetNamesWithMultiDirectoriesTest.java   |   2 +-
 .../remote/FtpConsumerLocalWorkDirectoryTest.java  |   2 +-
 .../remote/FtpConsumerMaxMessagesPerPollTest.java  |   2 +-
 .../FtpConsumerNotEagerMaxMessagesPerPollTest.java |   2 +-
 .../file/remote/FtpConsumerResumeDownloadTest.java |   2 +-
 .../file/remote/FtpSimpleConsumeAbsoluteTest.java  |   2 +-
 ...ectoryParseWithAbsoluteDepthNoStepwiseTest.java |   2 +-
 .../FtpSimpleConsumeStreamingPartialReadTest.java  |   2 +-
 .../file/remote/FtpSimpleConsumeStreamingTest.java |   2 +-
 ...impleConsumeStreamingWithMultipleFilesTest.java |   2 +-
 .../file/remote/sftp/SftpChangedReadLockTest.java  |   2 +-
 .../remote/sftp/SftpConsumerDisconnectTest.java    |   8 +-
 .../remote/sftp/SftpConsumerWithCharsetTest.java   |   2 +-
 .../file/remote/sftp/SftpKeyConsumeTest.java       |   2 +-
 .../file/remote/sftp/SftpKeyFileConsumeTest.java   |   2 +-
 .../remote/sftp/SftpKeyPairDSAConsumeTest.java     |   2 +-
 .../remote/sftp/SftpKeyPairRSAConsumeTest.java     |   2 +-
 .../sftp/SftpKeyUriConsumeFromClasspathTest.java   |   2 +-
 .../file/remote/sftp/SftpKeyUriConsumeTest.java    |   2 +-
 .../sftp/SftpSimpleConsumeRecursiveTest.java       |   2 +-
 .../SftpSimpleConsumeStreamingPartialReadTest.java |   2 +-
 .../sftp/SftpSimpleConsumeStreamingTest.java       |   2 +-
 ...impleConsumeStreamingWithMultipleFilesTest.java |   2 +-
 .../file/remote/sftp/SftpSimpleConsumeTest.java    |   2 +-
 .../sftp/SftpSimpleConsumeThroughProxyTest.java    |   2 +-
 .../remote/sftp/SftpSimpleIPV6ConsumeTest.java     |   2 +-
 .../file/remote/sftp/SftpUseListFalseTest.java     |   2 +-
 .../camel/component/ganglia/GangliaComponent.java  |   5 +-
 .../component/geocoder/GeoCoderComponent.java      |   6 +-
 .../camel/component/github/GitHubEndpoint.java     |   4 +-
 .../google/pubsub/GooglePubsubComponent.java       |   9 +-
 .../google/pubsub/unit/PubsubEndpointTest.java     |   2 -
 .../apache/camel/component/gora/GoraComponent.java |   6 +-
 .../camel/component/grape/GrapeComponent.groovy    |   3 +
 .../gson/SpringGsonFieldNamePolicyTest.xml         |   4 +-
 .../gson/SpringGsonJsonDataFormatTest.xml          |   8 +-
 .../guava/eventbus/GuavaEventBusComponent.java     |   4 +-
 .../camel/component/hbase/HBaseComponent.java      |   4 +-
 .../camel/component/hdfs2/HdfsComponent.java       |  10 +-
 .../camel/component/hipchat/HipchatComponent.java  |   8 +-
 .../HipchatXmlDefinedComponentProducerTest.java    |   3 +-
 .../org/apache/camel/component/hl7/AckCode.java    |  43 ---
 .../apache/camel/component/hl7/AckExpression.java  |  24 --
 .../java/org/apache/camel/component/hl7/HL7.java   |  24 --
 .../apache/camel/component/hl7/AckCodeTest.java    |  37 --
 .../org/apache/camel/http/common/HttpHelper.java   |   2 +-
 .../org/apache/camel/http/common/HttpMessage.java  |   6 +-
 .../camel/component/http4/HttpComponent.java       |   7 +-
 .../apache/camel/component/http4/HttpEndpoint.java |   8 +-
 .../http4/CamelComponentVerifierExtensionTest.java |   5 +-
 .../http4/CamelComponentVerifierTest.java          |  70 ++--
 .../http4/rest/RestCamelComponentVerifierTest.java |  30 +-
 .../hystrix/processor/HystrixProcessorFactory.java |   5 +-
 .../processor/HystrixHierarchicalConfigTest.java   |   7 +-
 .../ignite/IgniteCacheContinuousQueryTest.java     |  12 +-
 .../camel/component/ignite/IgniteEventsTest.java   |   4 +-
 .../policy/InfinispanRoutePolicyTestBase.java      |   5 +-
 .../component/influxdb/InfluxDbComponent.java      |   6 +-
 .../apache/camel/component/irc/IrcComponent.java   |   5 +-
 .../camel/component/irc/IrcConfiguration.java      |   4 +-
 .../camel/component/ironmq/IronMQComponent.java    |   4 +-
 .../ConcurrentConsumerLoadTest.java                |   2 +-
 .../jackson/converter/JacksonTypeConverters.java   |   8 +-
 .../component/jackson/JacksonBindingTest.java      |  64 ----
 .../component/jackson/JacksonNameBindingTest.java  |  69 ----
 .../converter/JacksonConversionsPojoTest.java      |   4 +-
 .../converter/JacksonConversionsSimpleTest.java    |   2 +-
 .../jackson/converter/JacksonConversionsTest.java  |   2 +-
 .../jackson/SpringJacksonEnableFeatureTest.xml     |   2 +-
 .../jackson/SpringJacksonJsonDataFormatTest.xml    |  14 +-
 .../SpringJacksonMarshalUnmarshalListTest.xml      |   2 +-
 .../SpringJacksonObjectMapperRegistryTest.xml      |   4 +-
 .../src/main/docs/jacksonxml-dataformat.adoc       |   2 +-
 .../converter/JacksonXMLTypeConverters.java        |   2 +-
 .../component/jacksonxml/JacksonBindingTest.java   |  64 ----
 .../jacksonxml/JacksonConversionsSimpleTest.java   |   2 +-
 .../jacksonxml/JacksonConversionsTest.java         |   2 +-
 .../jacksonxml/JacksonNameBindingTest.java         |  69 ----
 .../jacksonxml/SpringJacksonEnableFeatureTest.xml  |   2 +-
 .../jacksonxml/SpringJacksonJsonDataFormatTest.xml |  14 +-
 .../SpringJacksonMarshalUnmarshalListTest.xml      |   2 +-
 .../converter/jaxb/FallbackTypeConverter.java      |   4 +-
 .../camel/example/marshalAndUnmarshalWithRef.xml   |   4 +-
 .../example/marshalAndUnmarshalWithSpringBean.xml  |   4 +-
 .../camel/component/jcache/JCacheComponent.java    |   8 +-
 .../camel/component/jclouds/JcloudsComponent.java  |   4 +-
 .../apache/camel/component/jcr/JcrComponent.java   |   8 +-
 .../camel/component/jetty/JettyHttpComponent.java  |  20 +-
 .../jetty/HttpStreamCacheFileIssueTest.java        |   4 +-
 .../jetty/HttpStreamCacheFileStopIssueTest.java    |   4 +-
 .../component/jetty/HttpStreamCacheFileTest.java   |   4 +-
 .../camel/component/jetty/JettyEnableJmxTest.java  |   8 +-
 .../camel/component/jetty/MultiPartFormTest.java   |   2 +-
 .../jetty/MultiPartFormWithCustomFilterTest.java   |   2 +-
 .../SpringJettyNoConnectionRedeliveryTest.java     |   2 +-
 .../jetty/SpringJettyNoConnectionTest.java         |   2 +-
 .../async/JettyAsyncContinuationTimeoutTest.java   |   2 +-
 .../JettyAsyncDefaultContinuationTimeoutTest.java  |   2 +-
 .../jetty/rest/RestJettyPostJsonPojoListTest.java  |   2 +-
 .../rest/RestJettyRemoveAddRestAndRouteTest.java   |   2 +-
 .../apache/camel/component/jetty/jetty-https.xml   |   2 +-
 .../jetty/jetty-noconnection-redelivery.xml        |   4 +-
 .../camel/component/jetty/jetty-noconnection.xml   |   4 +-
 .../camel/component/jgroups/JGroupsComponent.java  |   6 +-
 .../jgroups/JGroupsSharedChannelTest.java          |   8 +-
 .../camel-jibx/src/main/docs/jibx-dataformat.adoc  |   4 +-
 .../jibx/SpringJibxConfigurationTest.xml           |   4 +-
 .../component/validator/jing/JingComponent.java    |   6 +-
 .../camel-jms/src/main/docs/jms-component.adoc     |   2 +-
 .../component/jms/EndpointMessageListener.java     |   2 +-
 .../apache/camel/component/jms/JmsEndpoint.java    |   2 +-
 .../org/apache/camel/component/jms/JmsMessage.java |  11 +-
 .../component/jms/reply/ReplyManagerSupport.java   |   2 +-
 .../camel/component/ActiveMQComponent.java         | 196 ++++++++++
 .../jms/JmsAddAndRemoveRouteManagementTest.java    |   2 +-
 .../jms/JmsComponentConfigurationTest.java         | 102 -----
 .../jms/JmsDefaultTaskExecutorTypeTest.java        |   8 +-
 ...sRequestReplyExclusiveReplyToComponentTest.java |   2 +-
 ...RequestReplyExclusiveReplyToConcurrentTest.java |   2 +-
 ...estReplyExclusiveReplyToRemoveAddRouteTest.java |   2 +-
 .../jms/JmsRequestReplyExclusiveReplyToTest.java   |   2 +-
 .../jms/JmsRequestReplySharedReplyToTest.java      |   2 +-
 .../camel/component/jms/JmsSuspendResumeTest.java  |   4 +-
 .../component/jms/ManagedJmsEndpointTest.java      |   2 +-
 .../component/jms/TwoConsumerOnSameQueueTest.java  |   6 +-
 .../component/jms/TwoConsumerOnSameTopicTest.java  |   6 +-
 .../component/jms/async/AsyncJmsInOutTest.java     |   2 +-
 .../issues/JmsConcurrentConsumerInOnlyTest.java    |   2 +-
 .../jms/issues/JmsDirectStartupOrderIssueTest.java |   2 +-
 .../issues/JmsInOutWithSpringRestartIssueTest.java |   6 +-
 .../jms/issues/JmsLifecycleIssueTest.java          |   8 +-
 ...msEndpointWithCustomDestinationTest-context.xml |   4 +-
 .../apache/camel/component/jmx/JMXComponent.java   |   6 +-
 ...sumerObserveAttributeMatchStringDifferTest.java |   1 +
 ...JmxConsumerObserveAttributeMatchStringTest.java |   1 +
 .../jmx/CamelJmxConsumerObserveAttributeTest.java  |   1 +
 .../camel/component/jmx/CamelJmxConsumerTest.java  |   1 +
 .../camel/component/jmx/JMXEndpointTest.java       |   2 -
 .../camel/component/jmx/SimpleBeanFixture.java     |   1 -
 .../johnzon/SpringJohnzonJsonDataFormatTest.xml    |   8 +-
 .../apache/camel/component/jolt/JoltComponent.java |   4 +-
 .../apache/camel/component/jpa/JpaComponent.java   |   6 +-
 .../jpa/FileConsumerJpaIdempotentTest.java         |   2 +-
 .../camel/processor/jpa/JpaBatchConsumerTest.java  |   8 +-
 .../camel/processor/jpa/JpaNonTXRollbackTest.java  |   2 +-
 .../jpa/JpaProducerPassingEntityManagerTest.java   |   2 +-
 .../camel/processor/jpa/JpaProducerRemoveTest.java |   4 +-
 .../jpa/JpaRouteSharedEntityManagerTest.java       |   4 +-
 .../jpa/JpaRouteSkipLockedEntityTest.java          |   8 +-
 .../camel/processor/jpa/JpaTXRollbackTest.java     |   2 +-
 .../apache/camel/jsonpath/JsonPathSourceTest.java  |  12 +-
 .../camel/component/jt400/Jt400Component.java      |   6 +-
 .../kafka/KafkaConsumerBatchSizeTest.java          |   4 +-
 .../component/kafka/KafkaConsumerFullTest.java     |   8 +-
 .../apache/camel/component/kura/KuraRouter.java    |   5 +-
 .../camel/component/kura/KuraRouterTest.java       |   3 +-
 .../apache/camel/component/ldap/LdapComponent.java |   6 +-
 .../apache/camel/component/ldap/LdapEndpoint.java  |   6 -
 .../component/linkedin/LinkedInConfiguration.java  |   9 +-
 .../camel/component/lucene/LuceneComponent.java    |   8 +-
 .../camel/component/lucene/LuceneEndpoint.java     |  11 -
 .../lucene/LuceneIndexAndQueryProducerTest.java    |   4 +-
 .../component/lumberjack/LumberjackComponent.java  |   6 +-
 .../apache/camel/component/mail/MailBinding.java   |   9 +-
 .../apache/camel/component/mail/MailComponent.java |  10 +-
 .../camel/component/mail/MailConfiguration.java    |   2 +-
 .../apache/camel/component/mail/MailEndpoint.java  |   2 +-
 .../apache/camel/component/mail/MailMessage.java   |  13 +-
 .../mail/MailDefaultDelayForMailConsumeTest.java   |   2 +-
 ...IdempotentRepositoryDuplicateNotRemoveTest.java |   2 +-
 .../MailIdempotentRepositoryDuplicateTest.java     |   2 +-
 .../mail/MailIdempotentRepositoryTest.java         |   2 +-
 .../camel/component/mail/MailSortTermTest.java     |   2 +-
 .../component/mail/MailSortTermThreeTest.java      |   2 +-
 .../camel/component/mail/MailSortTermTwoTest.java  |   2 +-
 .../camel/component/metrics/MetricsComponent.java  |   6 +-
 .../MetricsMessageHistoryFactory.java              |   7 -
 .../component/micrometer/MicrometerComponent.java  |   6 +-
 .../MicrometerMessageHistoryFactory.java           |   7 -
 .../MicrometerRouteEventNotifierTest.java          |   2 +-
 .../camel/component/mina2/Mina2Component.java      |   8 +-
 .../camel/component/mina2/Mina2Producer.java       |   3 +-
 .../Mina2ClientModeTcpTextlineDelimiterTest.java   |   2 +-
 .../mina2/SpringMinaEndpointTest-context.xml       |   2 +-
 .../mina2/SpringMinaEndpointUDPTest-context.xml    |   2 +-
 .../mina2/SpringMultipleUDPTest-context.xml        |   2 +-
 .../apache/camel/component/mllp/MllpEndpoint.java  |   7 -
 .../mllp/MllpProducerConsumerLoopbackTest.java     |   1 +
 .../component/mongodb/gridfs/GridFsComponent.java  |   4 +-
 .../MongoDbTailableCursorConsumerTest.java         |  44 +--
 .../apache/camel/component/mqtt/MQTTComponent.java |   6 +-
 .../camel/component/mqtt/MQTTProducerTest.java     |   2 +-
 .../component/mustache/MustacheComponent.java      |   4 +-
 .../component/mustache/MustacheComponentTest.java  |   2 +-
 .../apache/camel/component/mvel/MvelComponent.java |   6 +-
 .../mybatis/MyBatisBatchConsumerTest.java          |   8 +-
 .../mybatis/MyBatisShutdownAllTasksTest.java       |   2 +-
 .../netty4/http/HttpClientInitializerFactory.java  |   4 +-
 .../netty4/http/HttpServerInitializerFactory.java  |   4 +-
 .../http/HttpServerSharedInitializerFactory.java   |   2 +-
 .../component/netty4/http/NettyHttpComponent.java  |   6 +-
 .../component/netty4/http/NettyHttpHelper.java     |   2 +-
 .../netty4/http/NettyHttpRedeliveryTest.java       |   4 +-
 .../http/NettyHttpTwoRoutesStopOneRouteTest.java   |   2 +-
 .../rest/RestNettyHttpPostJsonPojoListTest.java    |   2 +-
 .../netty4/http/SpringNettyHttpBasicAuthTest.xml   |   2 +-
 .../netty4/http/SpringNettyHttpSSLTest.xml         |   2 +-
 .../netty4/DefaultClientInitializerFactory.java    |   4 +-
 .../netty4/DefaultServerInitializerFactory.java    |   4 +-
 .../camel/component/netty4/NettyComponent.java     |  10 +-
 .../component/netty4/ssl/SSLEngineFactory.java     |   7 +-
 .../NettyConsumerClientModeReconnectTest.java      |   2 +-
 .../NettyConsumerClientModeReuseChannelTest.java   |   2 +-
 .../netty4/NettyConsumerClientModeTest.java        |   2 +-
 .../netty4/NettySSLConsumerClientModeTest.java     |   2 +-
 .../component/netty4/NettySuspendResumeTest.java   |   4 +-
 .../component/openshift/OpenShiftComponent.java    |  95 +++++
 .../camel/opentracing/ActiveSpanManagerTest.java   |   4 +-
 .../component/paxlogging/PaxLoggingComponent.java  |   8 +-
 .../apache/camel/component/pdf/PdfComponent.java   |   6 +-
 .../camel/component/pgevent/PgEventComponent.java  |   4 +-
 .../camel/component/printer/PrinterComponent.java  |   6 +-
 .../camel/dataformat/protobuf/springDataFormat.xml |   6 +-
 .../camel/component/pubnub/PubNubPresenceTest.java |   4 +-
 .../component/pubnub/PubNubSubscriberTest.java     |   2 +-
 .../camel/component/quartz2/QuartzComponent.java   |   8 +-
 .../routepolicy/quartz2/ScheduledRoutePolicy.java  |   2 +-
 .../quartz2/QuartzCronRouteWithSmallCacheTest.java |   2 +-
 .../component/quartz2/QuartzRouteRestartTest.java  |   4 +-
 .../quartz2/QuartzStartDelayedOptionTest.java      |   2 +-
 .../component/quartz2/QuartzStartDelayedTest.java  |   2 +-
 .../component/quartz2/QuartzStopRouteTest.java     |   4 +-
 .../component/quartz2/QuartzSuspendRouteTest.java  |   4 +-
 ...pringQuartzPersistentStoreRestartRouteTest.java |   4 +-
 .../FileConsumerQuartzSchedulerRestartTest.java    |   6 +-
 .../quartz2/FileConsumerQuartzSchedulerTest.java   |   2 +-
 .../quartz2/CronScheduledRoutePolicyTest.java      |  26 +-
 .../quartz2/MultiplePoliciesOnRouteTest.java       |   2 +-
 .../camel/routepolicy/quartz2/MyRoutePolicy.java   |   3 +-
 .../SimpleScheduledCombinedRoutePolicyTest.java    |   4 +-
 .../quartz2/SimpleScheduledRoutePolicyTest.java    |   6 +-
 .../quartz2/SpringScheduledRoutePolicyTest.java    |   6 +-
 .../component/quickfixj/QuickfixjEndpoint.java     |   7 -
 .../quickfixj/QuickfixjComponentTest.java          |   2 +-
 .../quickfixj/examples/DynamicRoutingExample.java  |   2 +-
 .../quickfixj/examples/SimpleMessagingExample.java |   2 +-
 .../examples/trading/TradeExecutorExample.java     |   2 +-
 .../component/rabbitmq/RabbitMQComponent.java      |   4 +-
 .../rabbitmq/RabbitMQSupendResumeIntTest.java      |   4 +-
 .../CamelPublisherConversionVerificationTest.java  |   1 +
 .../tck/CamelPublisherVerificationTest.java        |   1 +
 .../CamelSubscriberConversionVerificationTest.java |   1 +
 .../tck/CamelSubscriberVerificationTest.java       |   1 +
 .../camel/component/restlet/RestletComponent.java  |   6 +-
 .../restlet/RestRestletPostJsonPojoListTest.java   |   2 +-
 .../component/restlet/RestletRestartRouteTest.java |   8 +-
 .../cloud/RibbonServiceCallUpdateRouteTest.java    |   2 +-
 .../apache/camel/component/rmi/RmiComponent.java   |   4 +-
 .../apache/camel/component/rmi/RmiEndpoint.java    |   6 -
 .../component/salesforce/SalesforceComponent.java  |  11 +-
 ...eComponentVerifierExtensionIntegrationTest.java |   7 +-
 .../sap/netweaver/NetWeaverComponent.java          |   4 +-
 .../camel/component/xquery/XQueryComponent.java    |   4 +-
 .../saxon/XPathSplitChoicePerformanceTest.java     |   2 +-
 .../util/toolbox/XsltAggregationStrategyTest.java  |   4 +-
 .../component/schematron/SchematronComponent.java  |   4 +-
 .../component/schematron/SchematronEndpoint.java   |   4 -
 .../component/schematron/SchematronProducer.java   |   2 +-
 .../processor/SchematronProcessorFactory.java      |   2 +-
 .../schematron/SchematronEndpointTest.java         |  15 +-
 .../schematron/SchematronProducerTest.java         |   1 +
 .../processor/SchematronProcessorTest.java         |   2 +-
 .../apache/camel/builder/script/ScriptBuilder.java |  10 +-
 .../camel/builder/script/RubyScriptTextTest.java   |  82 ++++
 .../component/servicenow/ServiceNowComponent.java  |   7 +-
 .../ServiceNowComponentVerifierTest.java           |  62 +--
 .../camel/component/servlet/ServletComponent.java  |   6 +-
 .../servlet/osgi/OsgiServletRegisterer.java        |   6 +-
 .../rest/RestServletPostJsonPojoListTest.java      |   2 +-
 .../apache/camel/component/sip/SipComponent.java   |   6 +-
 .../apache/camel/component/sjms/SjmsEndpoint.java  |   2 +-
 .../apache/camel/component/sjms/SjmsMessage.java   |   6 +-
 .../component/sjms/batch/SjmsBatchConsumer.java    |   3 +-
 .../component/sjms/batch/SjmsBatchEndpoint.java    |   2 +-
 .../camel/component/sjms/jms/JmsMessageHelper.java |   2 +-
 .../component/sjms/producer/InOutProducer.java     |   2 +-
 .../camel/component/sjms/SjmsEndpointTest.java     |   2 +-
 .../sjms/batch/SjmsBatchConsumerTest.java          |   8 +-
 .../camel/component/sjms/it/AsyncJmsInOutIT.java   |   2 +-
 .../component/sjms/it/AsyncJmsInOutTempDestIT.java |   2 +-
 .../component/sjms/it/ConnectionResourceIT.java    |   2 +-
 .../camel/component/sjms/it/SyncJmsInOutIT.java    |   2 +-
 .../component/sjms/it/SyncJmsInOutTempDestIT.java  |   2 +-
 .../component/sjms/threadpool/ThreadPoolTest.java  |   4 +-
 .../camel/component/sjms2/Sjms2EndpointTest.java   |   5 -
 .../apache/camel/component/smpp/SmppBinding.java   |   9 +-
 .../apache/camel/component/smpp/SmppComponent.java |   8 +-
 .../apache/camel/component/smpp/SmppMessage.java   |  21 +-
 .../camel/component/smpp/SmppMessageTest.java      |  45 +--
 .../OSGI-INF/blueprint/blueprint-typefilter.xml    |   8 +-
 .../component/snakeyaml/SnakeYAMLSpringTest.xml    |  12 +-
 .../snakeyaml/SnakeYAMLSpringTypeFilterTest.xml    |   8 +-
 .../apache/camel/component/snmp/SnmpComponent.java |   6 +-
 .../dataformat/soap/SoapToSoapDontIgnoreTest.java  |   5 +-
 .../dataformat/soap/SoapToSoapIgnoreTest.java      |   5 +-
 .../soap/SoapToSoapSingleDataFormatterTest.java    |   5 +-
 .../soap/SoapSpringRoundtripTest-context.xml       |   4 +-
 .../soap12/Soap12SpringRoundtripTest-context.xml   |   4 +-
 .../apache/camel/component/solr/SolrComponent.java |   4 +-
 .../camel/component/sparkrest/SparkComponent.java  |  19 +-
 .../camel/component/sparkrest/SparkEndpoint.java   |   6 +-
 .../camel/component/spark/SparkComponent.java      |   6 +-
 .../camel/component/splunk/SplunkComponent.java    |   4 +-
 .../spring/batch/SpringBatchComponent.java         |   4 +-
 .../src/main/docs/spring-boot.adoc                 |   2 +-
 .../spring/boot/CamelConfigurationProperties.java  |   2 +-
 .../apache/camel/spring/boot/RoutesCollector.java  |  11 +-
 .../boot/actuate/endpoint/CamelRoutesEndpoint.java |   4 +-
 .../camel/spring/boot/model/RouteDetailsInfo.java  |   1 +
 .../boot/CustomCamelCamelConfigurationTest.java    |   4 +-
 .../SupervisingRouteControllerRestartTest.java     |   8 +-
 .../boot/SupervisingRouteControllerTest.java       |   4 +-
 .../CamelRoutesEndpointWriteOperationTest.java     |   6 +-
 .../integration/SpringIntegrationComponent.java    |   6 +-
 .../integration/SpringIntegrationConsumer.java     |   2 +-
 .../integration/SpringIntegrationEndpoint.java     |   6 -
 .../integration/SpringIntegrationMessage.java      |  17 +-
 .../converter/SpringIntegrationConverter.java      |   2 +-
 .../integration/SpringIntegrationMessageTest.java  |   5 +-
 .../component/springldap/SpringLdapComponent.java  |   4 +-
 .../camel/component/redis/RedisComponent.java      |   4 +-
 .../spring/ws/SpringWebserviceComponent.java       |   8 +-
 .../ProducerWss4JSecurityHeaderTest-context.xml    |   2 +-
 .../camel/component/event/EventComponent.java      |   8 +-
 .../camel/component/event/EventEndpoint.java       |  10 -
 .../apache/camel/language/spel/SpelExpression.java |   3 +-
 .../camel/spring/CamelContextFactoryBean.java      |  40 +-
 .../org/apache/camel/spring/ErrorHandlerType.java  |   2 +-
 .../main/java/org/apache/camel/spring/Main.java    |   3 +-
 .../apache/camel/spring/SpringCamelContext.java    |   2 +-
 .../spring/handler/CamelNamespaceHandler.java      |   6 +-
 .../handler/ErrorHandlerDefinitionParser.java      |  24 +-
 .../SpringScheduledPollConsumerScheduler.java      |   4 +-
 .../spring/spi/ApplicationContextRegistry.java     |  15 -
 .../CamelContextLazyLoadTypeConvertersTest.java    |  45 ---
 .../camel/spring/CamelGlobalOptionsTest.java       |   2 +-
 .../apache/camel/spring/DefaultJMXAgentTest.java   |   2 +-
 .../apache/camel/spring/DisableJmxAgentTest.java   |   2 +-
 .../org/apache/camel/spring/SpringTestSupport.java |   7 -
 .../cloud/LegacyServiceCallConfigurationTest.java  |  30 --
 .../camel/spring/config/CamelPropertiesTest.java   |  38 --
 .../apache/camel/spring/config/MyProduceBean.java  |   2 +-
 .../spring/interceptor/TraceFormatterTest.java     |  45 ---
 .../packagescan/SkipNonPublicRouteBuilderTest.java |   2 +-
 .../ManagedEndpointInjectRefEndpointTest.java      |  10 +-
 .../spring/management/ManagedRefEndpointTest.java  |  17 +-
 .../management/SpringManagedSedaEndpointTest.java  |   2 +-
 .../FileConsumerSpringSchedulerTest.java           |   2 +-
 .../processor/SpringAOPAfterFinallyTest.java       |  32 --
 .../camel/spring/processor/SpringAOPAfterTest.java |  32 --
 .../processor/SpringAOPAroundFinallyTest.java      |  32 --
 .../spring/processor/SpringAOPBeforeTest.java      |  32 --
 .../spring/processor/SpringAOPNestedRouteTest.java |  32 --
 .../processor/SpringCustomExpressionTest.java      |   2 +-
 ...pringIdempotentConsumerNoSkipDuplicateTest.java |  12 +-
 .../spring/processor/SpringSetOutHeaderTest.java   |  41 --
 .../SpringSetOutHeaderWithConstantTest.java        |  41 --
 .../camel/component/log/SpringLogTest-context.xml  |   2 +-
 ...SpringPropertiesComponentOnExceptionRefTest.xml |   2 +-
 ...SpringPropertyPlaceholderOnExceptionRefTest.xml |   2 +-
 .../SpringSimpleMultiLineExpressionTest.xml        |   2 +-
 .../CamelContextLazyLoadTypeConvertersTest.xml     |  33 --
 .../apache/camel/spring/EndpointToIdRefTest.xml    |   2 +-
 .../apache/camel/spring/camelContextAwareBean.xml  |   6 +-
 .../org/apache/camel/spring/camelGlobalOptions.xml |   8 +-
 .../cloud/LegacyServiceCallConfigurationTest.xml   |  68 ----
 .../camel/spring/config/CamelPropertiesTest.xml    |  38 --
 .../camel/spring/config/CamelProxyUsingRefTest.xml |   2 +-
 .../config/DualCamelContextEndpointOutsideTest.xml |   8 +-
 .../dataFormatWithNonChildElementTest.xml          |   4 +-
 .../org/apache/camel/spring/endpointReference.xml  |   2 +-
 .../resources/org/apache/camel/spring/examples.xml |   4 +-
 ...ingFileAntPathMatcherFileFilterTest-context.xml |   2 +-
 .../spring/file/SpringFileRouteTest-context.xml    |   2 +-
 .../issues/ProduceSplitMethodCallIssueTest.xml     |   2 +-
 .../issues/SpringPropertyPlaceholderIssueTest.xml  |   2 +-
 .../stringDataFormatPropertyPlaceholderTest.xml    |   2 +-
 .../camel/spring/issues/stringDataFormatTest.xml   |   2 +-
 .../spring/management/ManagedRefEndpointTest.xml   |   2 +-
 .../SpringJmxEndpointInjectBeanRefTwoTest.xml      |   2 +-
 ...RemoveRouteAndContextScopedErrorHandlerTest.xml |   2 +-
 ...dualCamelContextManagedAutoAssignedNameTest.xml |   8 +-
 .../management/dualCamelContextManagedTest.xml     |   8 +-
 .../management/jmxInstrumentationWithConnector.xml |   4 +-
 .../spring/processor/CBRHeaderPredicateTest.xml    |   2 +-
 .../SpringInterceptFromEndpointRefTest.xml         |   6 +-
 ...GroupedExchangeCompletionExpressionSizeTest.xml |   4 +-
 .../org/apache/camel/spring/processor/aopafter.xml |  39 --
 .../camel/spring/processor/aopafterfinally.xml     |  49 ---
 .../camel/spring/processor/aoparoundfinally.xml    |  49 ---
 .../apache/camel/spring/processor/aopbefore.xml    |  39 --
 .../camel/spring/processor/aopnestedroute.xml      |  41 --
 .../camel/spring/processor/setExchangePattern.xml  |   4 -
 .../processor/setExchangePatternWithCustomId.xml   |   4 -
 .../apache/camel/spring/processor/setOutHeader.xml |  38 --
 .../spring/processor/setOutHeaderWithConstant.xml  |  38 --
 .../spring/processor/splitterMethodCallTest.xml    |   2 +-
 .../apache/camel/component/sql/SqlComponent.java   |  12 +-
 .../sql/SqlConsumerDynamicParameterTest.java       |   2 +-
 .../sql/SqlConsumerOutputTypeStreamListTest.java   |   6 +-
 .../apache/camel/component/ssh/SshComponent.java   |   4 +-
 .../apache/camel/component/stax/StAXComponent.java |  10 +-
 .../apache/camel/component/stax/StAXEndpoint.java  |   6 +-
 .../stax/StAXXPathSplitChoicePerformanceTest.java  |   2 +-
 .../camel/component/stream/StreamComponent.java    |   4 +-
 .../camel/component/stream/StreamConsumer.java     |   6 +-
 .../camel/component/stream/StreamEndpoint.java     |   5 -
 .../camel/component/stream/StreamProducer.java     |   6 +-
 .../camel/component/stream/ScanStreamFileTest.java |   6 +-
 .../camel/component/stream/StreamFileTest.java     |   2 +-
 .../stringtemplate/StringTemplateComponent.java    |   4 +-
 .../camel/swagger/DummyRestConsumerFactory.java    |   6 +-
 ...RestSwaggerReaderEnableVendorExtensionTest.java |   2 +-
 .../RestSwaggerReaderModelApiSecurityTest.java     |   2 +-
 .../camel/swagger/RestSwaggerReaderModelTest.java  |   2 +-
 .../src/main/docs/syslog-dataformat.adoc           |   6 +-
 .../component/syslog/applicationContext-Mina.xml   |   6 +-
 .../component/syslog/applicationContext-Netty.xml  |   4 +-
 .../aggregate/tarfile/TarAggregationStrategy.java  |   2 +-
 .../dataformat/tarfile/TarFileDataFormatTest.java  |   2 +-
 .../component/telegram/TelegramComponent.java      |   4 +-
 .../component/rest/DummyRestConsumerFactory.java   |   6 +-
 .../ManagedEndpointInjectRefEndpointTest.java      |  23 +-
 .../management/ManagedRefEndpointTest.java         |  21 +-
 .../management/managedRefEndpointTest.xml          |   2 +-
 .../src/main/docs/test-spring.adoc                 |   3 -
 .../spring/StopWatchTestExecutionListener.java     |   2 +-
 .../java/org/apache/camel/test/TestSupport.java    |  40 +-
 .../apache/camel/test/junit4/CamelTestSupport.java |   5 +-
 .../apache/camel/test/junit4/CamelTestWatcher.java |   2 +-
 .../org/apache/camel/test/junit4/TestSupport.java  |  41 --
 .../test/patterns/IsMockEndpointsFileTest.java     |   2 +-
 .../twitter/AbstractTwitterComponent.java          |   7 +-
 .../twitter/AbstractComponentVerifierTest.java     |  32 +-
 .../search/TwitterSearchComponentVerifierTest.java |  20 +-
 .../component/undertow/UndertowComponent.java      |  13 +-
 .../undertow/UndertowComponentVerifierTest.java    |  34 +-
 .../rest/RestUndertowComponentVerifierTest.java    |  30 +-
 .../rest/RestUndertowHttpPojoTypeTest.java         |   7 +-
 .../rest/RestUndertowHttpPostJsonPojoListTest.java |   2 +-
 .../ws/UndertowWsProducerRouteRestartTest.java     |  10 +-
 .../src/test/resources/SpringTest.xml              |   2 +-
 .../component/velocity/VelocityComponent.java      |   6 +-
 .../camel/component/velocity/camel-context.xml     |   4 +-
 .../camel/component/vertx/VertxComponent.java      |  16 +-
 .../camel/component/weather/WeatherComponent.java  |  10 +-
 .../component/websocket/WebsocketComponent.java    |   6 +-
 .../WebsocketProducerRouteRestartTest.java         |  10 +-
 .../xmlsecurity/XmlSignatureComponent.java         |   8 +-
 .../xmlsecurity/XMLSecurityDataFormat.java         |  16 +-
 .../xmlsecurity/EncryptionAlgorithmTest.java       |   2 +-
 .../xmlsecurity/XMLEncryption11Test.java           |   2 +-
 .../xmlsecurity/XMLSecurityDataFormatTest.java     |   4 +-
 .../apache/camel/component/xmpp/XmppComponent.java |   4 +-
 .../apache/camel/component/xmpp/XmppEndpoint.java  |   7 +-
 .../apache/camel/component/xmpp/XmppMessage.java   |  19 +-
 .../dataformat/xstream/AbstractXStreamWrapper.java |  10 +-
 .../xstream/SpringMarshalDomainObjectJSONTest.xml  |  10 +-
 .../dataformat/xstream/SpringMarshalListTest.xml   |   4 +-
 .../xstream/SpringMarshalOmitFieldsTest.xml        |   2 +-
 .../xstream/SpringXStreamConfigurationTest.xml     |   6 +-
 .../aggregate/zipfile/ZipAggregationStrategy.java  |  21 +-
 .../dataformat/zipfile/ZipFileDataFormatTest.java  |   2 +-
 .../zipfile/ZipFileMultipleFilesSplitterTest.java  |   2 +-
 .../zookeepermaster/policy/MasterRoutePolicy.java  |   3 +-
 .../component/zookeeper/ZooKeeperComponent.java    |   9 +-
 .../ZooKeeperServiceRegistrationTestBase.java      |   4 +-
 .../FailoverCuratorLeaderRoutePolicyTest.java      |   4 +-
 .../MultiMasterCuratorLeaderRoutePolicyTest.java   |   9 +-
 .../connector/DefaultConnectorComponent.java       |   9 +-
 .../main/java/org/beverage/BeverageComponent.java  |   4 +-
 docs/user-manual/en/json.adoc                      |   6 +-
 docs/user-manual/en/lifecycle.adoc                 |   2 +-
 docs/user-manual/en/spring-testing.adoc            |   4 -
 .../src/main/resources/META-INF/camel-routes.xml   |   6 +-
 .../apache/camel/example/cdi/osgi/CdiOsgiIT.java}  |  59 ++-
 .../src/main/resources/camel-context.xml           |   4 +-
 .../apache/camel/example/cdi/xml/CdiXmlTest.java   |   2 +-
 .../resources/META-INF/spring/camel-config.xml     |   2 +-
 .../apache/camel/example/fhir/osgi/FhirOsgiIT.java |   2 +-
 .../java/org/apache/camel/loanbroker/Client.java   |   2 +-
 .../resources/META-INF/spring/camel-context.xml    |   4 +-
 .../resources/META-INF/spring/camel-server.xml     |   6 +-
 .../camel/example/spark/UserRouteBuilder.java      |   2 +-
 .../apache/camel/example/cdi/UserRouteBuilder.java |   2 +-
 .../apache/camel/catalog/AbstractCamelCatalog.java | 140 +------
 .../org/apache/camel/catalog/CamelCatalog.java     |  46 ---
 .../camel/catalog/SimpleValidationResult.java      |  34 --
 .../org/apache/camel/catalog/CamelCatalogTest.java |  30 +-
 .../test/resources/org/foo/camel/dummy-pretty.json |   7 +-
 .../src/test/resources/org/foo/camel/dummy.json    |   2 +-
 .../src/test/resources/sample-pretty.json          |   7 +-
 .../camel-catalog/src/test/resources/sample.json   |   2 +-
 .../commands/AbstractLocalCamelController.java     |  20 +-
 .../camel/commands/ContextListCommandTest.java     |   3 +-
 .../camel/commands/TransformerListCommandTest.java |   7 +-
 .../camel/commands/ValidatorListCommandTest.java   |   7 +-
 .../camel/component/dummy/DummyComponent.java      |   6 +-
 .../commands/internal/CamelControllerImpl.java     |   1 +
 .../BindingNameComponentAutoConfiguration.java     | 129 -------
 .../BindingNameComponentConfiguration.java         |  55 ---
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  48 ---
 ...ComponentConfigurationAndDocumentationTest.java |  20 -
 ...ComponentConfigurationAndDocumentationTest.java |  52 ---
 ...ComponentConfigurationAndDocumentationTest.java |  18 -
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  48 ---
 ...ComponentConfigurationAndDocumentationTest.java |  51 ---
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  48 ---
 ...ComponentConfigurationAndDocumentationTest.java |  19 -
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  47 ---
 ...ComponentConfigurationAndDocumentationTest.java |  48 ---
 ...ComponentConfigurationAndDocumentationTest.java |  48 ---
 .../camel/itest/issues/JettyHttpFileCacheTest.java |   6 +-
 .../itest/jaxb/JaxbFallbackTypeConverterTest.java  |   2 +-
 .../camel/itest/jetty/JettyFreemarkerTest.java     |   2 +-
 .../camel/itest/jetty/JettyVelocityTest.java       |   2 +-
 .../apache/camel/itest/jetty/JettyXsltTest.java    |   2 +-
 ...eAntPathMatcherRemoteFileFilterTest-context.xml |   2 +-
 .../itest/ftp/SpringFtpEndpointTest-context.xml    |   2 +-
 .../jetty/JettySpringFailoverRoundRobinTest.xml    |  16 +-
 .../itest/mail/SpringMailEndpointTest-context.xml  |   2 +-
 .../org/apache/camel/parser/xml/myroutes.xml       |   2 +-
 .../java/org/apache/camel/maven/ValidateMojo.java  |   4 +-
 1205 files changed, 3141 insertions(+), 19102 deletions(-)

diff --git a/camel-core/src/main/docs/bean-language.adoc b/camel-core/src/main/docs/bean-language.adoc
index 1f95857..ecab01d 100644
--- a/camel-core/src/main/docs/bean-language.adoc
+++ b/camel-core/src/main/docs/bean-language.adoc
@@ -24,14 +24,13 @@ annotate the bean to extract headers or other expressions such as
 === Bean Options
 
 // language options: START
-The Bean method language supports 5 options, which are listed below.
+The Bean method language supports 4 options, which are listed below.
 
 
 
 [width="100%",cols="2,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| bean |  | String | *Deprecated* Either a reference or a class name of the bean to use
 | ref |  | String | Reference to bean to lookup in the registry
 | method |  | String | Name of method to call
 | beanType |  | String | Class name of the bean to use
@@ -165,4 +164,4 @@ private MyBean my;
 
 === Dependencies
 
-The Bean language is part of *camel-core*.
\ No newline at end of file
+The Bean language is part of *camel-core*.
diff --git a/camel-core/src/main/docs/binding-component.adoc b/camel-core/src/main/docs/binding-component.adoc
deleted file mode 100644
index 2c1e586..0000000
--- a/camel-core/src/main/docs/binding-component.adoc
+++ /dev/null
@@ -1,131 +0,0 @@
-[[binding-component]]
-== Binding Component (deprecated)
-
-*Available as of Camel version 2.11*
-
-In Camel terms a _binding_ is a way of wrapping an
-Endpoint in a contract; such as a
-Data Format, a link:content-enricher.html[Content
-Enricher] or validation step. Bindings are completely optional and you
-can choose to use them on any camel endpoint.
-
-Bindings are inspired by the work of
-http://www.jboss.org/switchyard[SwitchYard project] adding service
-contracts to various technologies like Camel and many others. But rather
-than the SwitchYard approach of wrapping Camel in SCA, _Camel Bindings_
-provide a way of wrapping Camel endpoints with contracts inside the
-Camel framework itself; so you can use them easily inside any Camel
-route.
-
-=== Options
-
-
-// component options: START
-The Binding component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The Binding endpoint is configured using URI syntax:
-
-----
-binding:bindingName:delegateUri
-----
-
-with the following path and query parameters:
-
-==== Path Parameters (2 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *bindingName* | *Required* Name of the binding to lookup in the Camel registry. |  | String
-| *delegateUri* | *Required* Uri of the delegate endpoint. |  | String
-|===
-
-
-==== Query Parameters (4 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN/ERROR level and ignored. | false | boolean
-| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions, that will be logged at WARN/ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the default exchange pattern when creating an exchange. |  | ExchangePattern
-| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-|===
-// endpoint options: END
-
-
-=== Using Bindings
-
-A Binding is currently a bean which defines the contract (though we'll
-hopefully add bindings to the Camel DSL).
-
-There are a few approaches to defining a bound endpoint (i.e. an
-endpoint bound with a Binding).
-
-=== Using the binding URI
-
-You can prefix any endpoint URI with *binding:nameOfBinding:* where
-_nameOfBinding_ is the name of the Binding bean in your registry.
-
-[source,java]
-----
-from("binding:jaxb:activemq:myQueue").to("binding:jaxb:activemq:anotherQueue")
-----
-
-Here we are using the "jaxb" binding which may, for example, use the
-JAXB Data Format to marshal and unmarshal
-messages.
-
-=== Using a BindingComponent
-
-There is a Component called BindingComponent which
-can be configured in your Registry by dependency
-injection which allows the creation of endpoints which are already bound
-to some binding.
-
-For example if you registered a new component called "jsonmq" in your
-registry using code like this
-
-[source,java]
-----
-JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
-context.bind("jsonmq", new BindingComponent(new DataFormatBinding(format), "activemq:foo."));
-----
-
-Then you could use the endpoint as if it were any other endpoint.
-
-[source,java]
-----
-from("jsonmq:myQueue").to("jsonmq:anotherQueue")
-----
-
-which would be using the queueus "foo.myQueue" and "foo.anotherQueue"
-and would use the given Jackson Data Format to
-marshal on and off the queue.
-
-=== When to use Bindings
-
-If you only use an endpoint once in a single route; a binding may
-actually be more complex and more work than just using the 'raw'
-endpoint directly and using explicit marshalling and validation in the
-camel route as normal.
-
-However bindings can help when you are composing many routes together;
-or using a single route as a 'template' that is configured input and
-output endpoints; bindings then provide a nice way to wrap up a contract
-and endpoint together.
-
-Another good use case for bindings is when you are using many endpoints
-which use the same binding; rather than always having to mention a
-specific data format or validation rule, you can just use the
-BindingComponent to wrap the endpoints in the binding of your choice.
-
-So bindings are a composition tool really; only use them when they make
-sense - the extra complexity may not be worth it unless you have lots of
-routes or endpoints.
diff --git a/camel-core/src/main/docs/controlbus-component.adoc b/camel-core/src/main/docs/controlbus-component.adoc
index 883c74b..593dd00 100644
--- a/camel-core/src/main/docs/controlbus-component.adoc
+++ b/camel-core/src/main/docs/controlbus-component.adoc
@@ -161,7 +161,7 @@ message:
 
 [source,java]
 ----
-template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
+template.sendBody("controlbus:language:simple", "${camelContext.getRouteController().stopRoute('myRoute')}");
 ----
 
 As this is a void operation, no result is returned. However, if you want
diff --git a/camel-core/src/main/docs/ref-component.adoc b/camel-core/src/main/docs/ref-component.adoc
index 794fb20..8a7c477 100644
--- a/camel-core/src/main/docs/ref-component.adoc
+++ b/camel-core/src/main/docs/ref-component.adoc
@@ -97,7 +97,7 @@ You could, of course, have used the `ref` attribute instead:
 
 [source,xml]
 ----
-<to ref="endpoint2"/>
+<to uri="ref:endpoint2"/>
 ----
 
 Which is the more common way to write it.
diff --git a/camel-core/src/main/java/org/apache/camel/AsyncProcessor.java b/camel-core/src/main/java/org/apache/camel/AsyncProcessor.java
index 1025320..bf967b7 100644
--- a/camel-core/src/main/java/org/apache/camel/AsyncProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/AsyncProcessor.java
@@ -21,7 +21,7 @@ package org.apache.camel;
  * and signal completion by invoking the {@link AsyncCallback}.
  * <p/>
  * Any processor can be coerced to have an {@link AsyncProcessor} interface by using the
- * {@link org.apache.camel.impl.converter.AsyncProcessorTypeConverter#convert AsyncProcessorTypeConverter.covert}
+ * {@link org.apache.camel.util.AsyncProcessorConverterHelper#convert AsyncProcessorConverterHelper.convert}
  * method.
  *
  * @version 
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index 6828bb6..f9893cf 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -32,11 +32,9 @@ import org.apache.camel.api.management.mbean.ManagedRouteMBean;
 import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.model.HystrixConfigurationDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.model.transformer.TransformerDefinition;
@@ -604,68 +602,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     Collection<RestConfiguration> getRestConfigurations();
 
     /**
-     * Gets the service call configuration by the given name. If no name is given
-     * the default configuration is returned, see <tt>setServiceCallConfiguration</tt>
-     *
-     * @param serviceName name of service, or <tt>null</tt> to return the default configuration
-     * @return the configuration, or <tt>null</tt> if no configuration has been registered
-     */
-    ServiceCallConfigurationDefinition getServiceCallConfiguration(String serviceName);
-
-    /**
-     * Sets the default service call configuration
-     *
-     * @param configuration the configuration
-     */
-    void setServiceCallConfiguration(ServiceCallConfigurationDefinition configuration);
-
-    /**
-     * Sets the service call configurations
-     *
-     * @param configurations the configuration list
-     */
-    void setServiceCallConfigurations(List<ServiceCallConfigurationDefinition> configurations);
-
-    /**
-     * Adds the service call configuration
-     *
-     * @param serviceName name of the service
-     * @param configuration the configuration
-     */
-    void addServiceCallConfiguration(String serviceName, ServiceCallConfigurationDefinition configuration);
-
-    /**
-     * Gets the Hystrix configuration by the given name. If no name is given
-     * the default configuration is returned, see <tt>setHystrixConfiguration</tt>
-     *
-     * @param id id of the configuration, or <tt>null</tt> to return the default configuration
-     * @return the configuration, or <tt>null</tt> if no configuration has been registered
-     */
-    HystrixConfigurationDefinition getHystrixConfiguration(String id);
-
-    /**
-     * Sets the default Hystrix configuration
-     *
-     * @param configuration the configuration
-     */
-    void setHystrixConfiguration(HystrixConfigurationDefinition configuration);
-
-    /**
-     * Sets the Hystrix configurations
-     *
-     * @param configurations the configuration list
-     */
-    void setHystrixConfigurations(List<HystrixConfigurationDefinition> configurations);
-
-    /**
-     * Adds the Hystrix configuration
-     *
-     * @param id name of the configuration
-     * @param configuration the configuration
-     */
-    void addHystrixConfiguration(String id, HystrixConfigurationDefinition configuration);
-
-    /**
      * Returns the order in which the route inputs was started.
      * <p/>
      * The order may not be according to the startupOrder defined on the route.
@@ -831,13 +767,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     void startRoute(RouteDefinition route) throws Exception;
 
     /**
-     * Starts all the routes which currently is not started.
-     *
-     * @throws Exception is thrown if a route could not be started for whatever reason
-     */
-    void startAllRoutes() throws Exception;
-
-    /**
      * Starts the given route if it has been previously stopped
      *
      * @param routeId the route id
@@ -985,16 +914,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     ServiceStatus getRouteStatus(String routeId);
 
     /**
-     * Indicates whether current thread is starting route(s).
-     * <p/>
-     * This can be useful to know by {@link LifecycleStrategy} or the likes, in case
-     * they need to react differently.
-     *
-     * @return <tt>true</tt> if current thread is starting route(s), or <tt>false</tt> if not.
-     */
-    boolean isStartingRoutes();
-
-    /**
      * Indicates whether current thread is setting up route(s) as part of starting Camel from spring/blueprint.
      * <p/>
      * This can be useful to know by {@link LifecycleStrategy} or the likes, in case
@@ -1230,17 +1149,15 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
      * Gets the default error handler builder which is inherited by the routes
      *
      * @return the builder
-     * @deprecated The return type will be switched to {@link ErrorHandlerFactory} in Camel 3.0
      */
-    @Deprecated
-    ErrorHandlerBuilder getErrorHandlerBuilder();
+    ErrorHandlerFactory getErrorHandlerFactory();
 
     /**
      * Sets the default error handler builder which is inherited by the routes
      *
-     * @param errorHandlerBuilder the builder
+     * @param errorHandlerFactory the builder
      */
-    void setErrorHandlerBuilder(ErrorHandlerFactory errorHandlerBuilder);
+    void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory);
 
     /**
      * Gets the default shared thread pool for error handlers which
@@ -1249,20 +1166,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     ScheduledExecutorService getErrorHandlerExecutorService();
 
     /**
-     * Sets the data formats that can be referenced in the routes.
-     *
-     * @param dataFormats the data formats
-     */
-    void setDataFormats(Map<String, DataFormatDefinition> dataFormats);
-
-    /**
-     * Gets the data formats that can be referenced in the routes.
-     *
-     * @return the data formats available
-     */
-    Map<String, DataFormatDefinition> getDataFormats();
-
-    /**
      * Resolve a data format given its name
      *
      * @param name the data format name or a reference to it in the {@link Registry}
@@ -1366,12 +1269,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     ValidatorRegistry<? extends ValueHolder<String>> getValidatorRegistry();
 
     /**
-     * @deprecated use {@link #setGlobalOptions(Map) setGlobalOptions(Map<String,String>) instead}.
-     */
-    @Deprecated
-    void setProperties(Map<String, String> properties);
-
-    /**
      * Sets global options that can be referenced in the camel context
      * <p/>
      * <b>Important:</b> This has nothing to do with property placeholders, and is just a plain set of key/value pairs
@@ -1384,12 +1281,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     void setGlobalOptions(Map<String, String> globalOptions);
 
     /**
-     * @deprecated use {@link #getGlobalOptions()} instead.
-     */
-    @Deprecated
-    Map<String, String> getProperties();
-
-    /**
      * Gets global options that can be referenced in the camel context.
      * <p/>
      * <b>Important:</b> This has nothing to do with property placeholders, and is just a plain set of key/value pairs
@@ -1402,12 +1293,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     Map<String, String> getGlobalOptions();
 
     /**
-     * @deprecated use {@link #getGlobalOption(String)} instead.
-     */
-    @Deprecated
-    String getProperty(String key);
-
-    /**
      * Gets the global option value that can be referenced in the camel context
      * <p/>
      * <b>Important:</b> This has nothing to do with property placeholders, and is just a plain set of key/value pairs
@@ -1633,15 +1518,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     ExecutorServiceManager getExecutorServiceManager();
 
     /**
-     * Gets the current {@link org.apache.camel.spi.ExecutorServiceStrategy}
-     *
-     * @return the manager
-     * @deprecated use {@link #getExecutorServiceManager()}
-     */
-    @Deprecated
-    org.apache.camel.spi.ExecutorServiceStrategy getExecutorServiceStrategy();
-
-    /**
      * Sets a custom {@link org.apache.camel.spi.ExecutorServiceManager}
      *
      * @param executorServiceManager the custom manager
@@ -1705,24 +1581,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     void setUuidGenerator(UuidGenerator uuidGenerator);
 
     /**
-     * Whether or not type converters should be loaded lazy
-     *
-     * @return <tt>true</tt> to load lazy, <tt>false</tt> to load on startup
-     * @deprecated this option is no longer supported, will be removed in a future Camel release.
-     */
-    @Deprecated
-    Boolean isLazyLoadTypeConverters();
-
-    /**
-     * Sets whether type converters should be loaded lazy
-     *
-     * @param lazyLoadTypeConverters <tt>true</tt> to load lazy, <tt>false</tt> to load on startup
-     * @deprecated this option is no longer supported, will be removed in a future Camel release.
-     */
-    @Deprecated
-    void setLazyLoadTypeConverters(Boolean lazyLoadTypeConverters);
-
-    /**
      * Sets whether to load custom type converters by scanning classpath.
      * This can be turned off if you are only using Camel components
      * that does not provide type converters which is needed at runtime.
@@ -1844,15 +1702,6 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
     Map<String, Properties> findEips() throws LoadPropertiesException, IOException;
 
     /**
-     * Returns the HTML documentation for the given Camel component
-     *
-     * @return the HTML or <tt>null</tt> if the component is <b>not</b> built with HTML document included.
-     * @deprecated use camel-catalog instead
-     */
-    @Deprecated
-    String getComponentDocumentation(String componentName) throws IOException;
-
-    /**
      * Returns the JSON schema representation of the component and endpoint parameters for the given component name.
      *
      * @return the json or <tt>null</tt> if the component is <b>not</b> built with JSon schema support
@@ -2067,4 +1916,5 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
      * Sets a {@link HealthCheckRegistry}.
      */
     void setHealthCheckRegistry(HealthCheckRegistry healthCheckRegistry);
+
 }
diff --git a/camel-core/src/main/java/org/apache/camel/Component.java b/camel-core/src/main/java/org/apache/camel/Component.java
index b21e7a4..eae7d4d 100644
--- a/camel-core/src/main/java/org/apache/camel/Component.java
+++ b/camel-core/src/main/java/org/apache/camel/Component.java
@@ -57,30 +57,6 @@ public interface Component extends CamelContextAware {
     boolean useRawUri();
 
     /**
-     * Attempt to create a configuration object from the given uri
-     *
-     * @param uri the configuration URI
-     * @return a newly created {@link EndpointConfiguration}
-     * @throws Exception is thrown if the configuration URI is invalid
-     *
-     * @since Camel 2.9.0
-     */
-    @Deprecated
-    EndpointConfiguration createConfiguration(String uri) throws Exception;
-
-    /**
-     * Creates a configuration helper object for a component that lets you configure the various
-     * URI and parameter values; then create the full URI for it, create a new Endpoint from it
-     * or configure an existing Endpoint from the values.
-     *
-     * This method is intended to be used in cases where there is not yet a full URI to
-     * configure an endpoint yet; but rather there are a number of parameters to configure
-     * to then build up a new URI or directly create an Endpoint from the parameter values.
-     */
-    @Deprecated
-    ComponentConfiguration createComponentConfiguration();
-
-    /**
      * Gets a list of supported extensions.
      *
      * @return the list of extensions.
diff --git a/camel-core/src/main/java/org/apache/camel/ComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/ComponentConfiguration.java
deleted file mode 100644
index 78f8702..0000000
--- a/camel-core/src/main/java/org/apache/camel/ComponentConfiguration.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.net.URISyntaxException;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-
-import org.apache.camel.impl.ParameterConfiguration;
-
-/**
- * Represents a set of configuration values for an endpoint URI which can be created from a URI string
- * or a base URI string and a set of parameter names and values.
- *
- * The configuration values can then be introspected, modified and converted back into a URI string
- * or Endpoint.
- *
- * For {@link org.apache.camel.impl.UriEndpointComponent} implementations created for Endpoints annotated with {@link org.apache.camel.spi.UriEndpoint} and the
- * associated annotations then all the parameter values can be introspected and the parameter values are converted to their
- * correct type.
- *
- * Other implementations keep all the types as String and there is no validation until you try to create
- * an Endpoint from the values.
- */
-@Deprecated
-public interface ComponentConfiguration {
-
-    /**
-     * Returns the base URI without any query parameters added
-     */
-    String getBaseUri();
-
-    /**
-     * Sets the base URI without any query parameters added
-     */
-    void setBaseUri(String baseUri);
-
-    /**
-     * Returns the current parameters of the configuration (usually encoded as <tt>?foo=bar&whatnot=something</tt> URI query parameters)
-     */
-    Map<String, Object> getParameters();
-
-    /**
-     * Sets the parameter values of this configuration
-     */
-    void setParameters(Map<String, Object> propertyValues);
-
-    /**
-     * Returns the parameter value for the given name
-     *
-     * @param name the name of the URI query parameter to get
-     * @return the value of the parameter
-     */
-    Object getParameter(String name);
-
-    /**
-     * Sets the parameter value of the given name
-     *
-     * @param name  the name of the URI query parameter
-     * @param value the new value of the parameter
-     */
-    void setParameter(String name, Object value);
-
-    /**
-     * Returns the URI string (without schema) with query parameters for the current
-     * configuration which can then be used to create an {@link org.apache.camel.Endpoint}
-     */
-    String getUriString();
-
-    /**
-     * Sets the URI string (without schema but with optional query parameters)
-     * which will update the {@link #getBaseUri()} and the {@link #getParameters()} values
-     *
-     * @param newValue the new URI string with query arguments
-     */
-    void setUriString(String newValue) throws URISyntaxException;
-
-    /**
-     * Returns the URI query parameter configuration for the given parameter name or null if it does not exist
-     */
-    ParameterConfiguration getParameterConfiguration(String name);
-
-    /**
-     * Returns the sorted map of all the parameter names to their {@link ParameterConfiguration} objects
-     */
-    SortedMap<String, ParameterConfiguration> getParameterConfigurationMap();
-
-    /**
-     * Converts the configuration into a URI and then looks up the endpoint in the {@link CamelContext}
-     * which typically results in a new {@link Endpoint} instance being created.
-     */
-    Endpoint createEndpoint() throws Exception;
-
-    /**
-     * Applies the current set of parameters to the given endpoint instance.
-     * <p/>
-     * Note that typically parts of the URI are not injected into the Endpoint; this method purely
-     *
-     * @param endpoint the endpoint instance
-     */
-    void configureEndpoint(Endpoint endpoint);
-
-    /**
-     * Gets the named URI parameter value on the given endpoint
-     *
-     * @param endpoint the endpoint instance
-     * @param name     the name of the URI query parameter
-     * @return the value of the parameter
-     * @throws RuntimeCamelException if the parameter name does not exist on the endpoint
-     */
-    Object getEndpointParameter(Endpoint endpoint, String name) throws RuntimeCamelException;
-
-    /**
-     * Sets the named URI query parameter value on the given endpoint
-     *
-     * @param endpoint the endpoint instance
-     * @param name     the name of the URI query parameter
-     * @param value    the new value of the URI query parameter
-     * @throws RuntimeCamelException
-     */
-    void setEndpointParameter(Endpoint endpoint, String name, Object value) throws RuntimeCamelException;
-
-    /**
-     * A helper method for tools such as CLIs, IDEs or web tools that provides a completion list for Endpoint Paths
-     * rather like bash tab completion or Karaf attribute or option completion handlers.
-     *
-     * So given the current configuration data, return a list of completions given the specified text.
-     * e.g. return the files in a directory, the matching queues in a message broker, the database tables in a database component etc
-     *
-     * @param completionText the prefix text used to complete on (usually a matching bit of text)
-     * @return a list of matches
-     */
-    List<String> completeEndpointPath(String completionText);
-
-    /**
-     * Creates a <a href="http://json-schema.org/">JSON schema</a> representation of the
-     * configuration parameters for this endpoint and the types and validation rules.
-     *
-     * @return a JSON string which represents the JSON schema for this endpoints configuration parameters.
-     */
-    String createParameterJsonSchema();
-}
-
diff --git a/camel-core/src/main/java/org/apache/camel/ComponentVerifier.java b/camel-core/src/main/java/org/apache/camel/ComponentVerifier.java
deleted file mode 100644
index d95a7e7..0000000
--- a/camel-core/src/main/java/org/apache/camel/ComponentVerifier.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.util.Map;
-
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-
-/**
- * Defines the interface used for validating component/endpoint parameters. The central method of this
- * interface is {@link #verify(Scope, Map)} which takes a scope and a set of parameters which should be verified.
- * <p/>
- * The return value is a {@link Result} of the verification
- *
- * @deprecated use {@link ComponentVerifierExtension}
- */
-@Deprecated
-public interface ComponentVerifier extends ComponentVerifierExtension {
-}
diff --git a/camel-core/src/main/java/org/apache/camel/Endpoint.java b/camel-core/src/main/java/org/apache/camel/Endpoint.java
index 2069b8f..603812f 100644
--- a/camel-core/src/main/java/org/apache/camel/Endpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/Endpoint.java
@@ -39,14 +39,6 @@ public interface Endpoint extends IsSingleton, Service {
     String getEndpointUri();
 
     /**
-     * Returns the object representation of the endpoint configuration
-     *
-     * @return the endpoint configuration
-     */
-    @Deprecated
-    EndpointConfiguration getEndpointConfiguration();
-
-    /**
      * Returns a string key of this endpoint.
      * <p/>
      * This key is used by {@link org.apache.camel.spi.LifecycleStrategy} when registering endpoint.
@@ -77,17 +69,6 @@ public interface Endpoint extends IsSingleton, Service {
     Exchange createExchange(ExchangePattern pattern);
 
     /**
-     * Creates a new exchange for communicating with this endpoint using the
-     * given exchange to pre-populate the values of the headers and messages
-     *
-     * @param exchange given exchange to use for pre-populate
-     * @return a new exchange
-     * @deprecated will be removed in Camel 3.0
-     */
-    @Deprecated
-    Exchange createExchange(Exchange exchange);
-
-    /**
      * Returns the context which created the endpoint
      *
      * @return the context which created the endpoint
diff --git a/camel-core/src/main/java/org/apache/camel/EndpointConfiguration.java b/camel-core/src/main/java/org/apache/camel/EndpointConfiguration.java
deleted file mode 100644
index 8fc2563..0000000
--- a/camel-core/src/main/java/org/apache/camel/EndpointConfiguration.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.net.URI;
-
-/**
- * Holds an {@link Endpoint} configuration as a pojo that can be manipulated and validated.
- * Camel endpoint configuration is strongly related to URIs.
- */
-@Deprecated
-public interface EndpointConfiguration {
-
-    String URI_SCHEME               = "scheme";
-    String URI_SCHEME_SPECIFIC_PART = "schemeSpecificPart";
-    String URI_AUTHORITY            = "authority";
-    String URI_USER_INFO            = "userInfo";
-    String URI_HOST                 = "host";
-    String URI_PORT                 = "port";
-    String URI_PATH                 = "path";
-    String URI_QUERY                = "query";
-    String URI_FRAGMENT             = "fragment";
-
-    /**
-     * {@link org.apache.camel.spi.DataFormat} operations.
-     */
-    enum UriFormat {
-        Canonical, Provider, Consumer, Complete
-    }
-
-    /**
-     * Returns the URI configuration of an {@link Endpoint}.
-     *
-     * @return the configuration URI.
-     */
-    URI getURI();
-
-    /**
-     * Gets the value of a particular parameter.
-     *
-     * @param name the parameter name
-     * @return the configuration URI.
-     * @throws RuntimeCamelException is thrown if error getting the parameter
-     */
-    <T> T getParameter(String name) throws RuntimeCamelException;
-
-    /**
-     * Sets the value of a particular parameter.
-     *
-     * @param name  the parameter name
-     * @param value the parameter value
-     * @throws RuntimeCamelException is thrown if error setting the parameter
-     */
-    <T> void setParameter(String name, T value) throws RuntimeCamelException;
-
-    /**
-     * Returns the formatted configuration string of an {@link Endpoint}.
-     *
-     * @param format the format
-     * @return the configuration URI in String format.
-     */
-    String toUriString(UriFormat format);
-}
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java
index 6ca2ac6..500b782 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -522,21 +522,10 @@ public interface Exchange {
     /**
      * Creates a copy of the current message exchange so that it can be
      * forwarded to another destination
-     * <p/>
-     * Notice this operation invokes <tt>copy(false)</tt>
      */
     Exchange copy();
 
     /**
-     * Creates a copy of the current message exchange so that it can be
-     * forwarded to another destination
-     *
-     * @param safeCopy whether to copy exchange properties and message headers safely to a new map instance,
-     *                 or allow sharing the same map instances in the returned copy.
-     */
-    Exchange copy(boolean safeCopy);
-
-    /**
      * Returns the endpoint which originated this message exchange if a consumer on an endpoint
      * created the message exchange, otherwise this property will be <tt>null</tt>
      */
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangePattern.java b/camel-core/src/main/java/org/apache/camel/ExchangePattern.java
index b1bd103..0a04900 100644
--- a/camel-core/src/main/java/org/apache/camel/ExchangePattern.java
+++ b/camel-core/src/main/java/org/apache/camel/ExchangePattern.java
@@ -30,9 +30,7 @@ import javax.xml.bind.annotation.XmlType;
 @XmlType
 @XmlEnum
 public enum ExchangePattern {
-    InOnly, RobustInOnly, InOut, InOptionalOut, OutOnly, RobustOutOnly, OutIn, OutOptionalIn;
-
-    // TODO: We should deprecate and only support InOnly, InOut, and InOptionalOut
+    InOnly, InOut, InOptionalOut;
 
     protected static final Map<String, ExchangePattern> MAP = new HashMap<>();
 
@@ -47,16 +45,6 @@ public enum ExchangePattern {
             return "http://www.w3.org/ns/wsdl/in-opt-out";
         case InOut:
             return "http://www.w3.org/ns/wsdl/in-out";
-        case OutIn:
-            return "http://www.w3.org/ns/wsdl/out-in";
-        case OutOnly:
-            return "http://www.w3.org/ns/wsdl/out-only";
-        case OutOptionalIn:
-            return "http://www.w3.org/ns/wsdl/out-opt-in";
-        case RobustInOnly:
-            return "http://www.w3.org/ns/wsdl/robust-in-only";
-        case RobustOutOnly:
-            return "http://www.w3.org/ns/wsdl/robust-out-only";
         default:
             throw new IllegalArgumentException("Unknown message exchange pattern: " + this);
         }
@@ -66,13 +54,7 @@ public enum ExchangePattern {
      * Return true if there can be an IN message
      */
     public boolean isInCapable() {
-        switch (this) {
-        case OutOnly:
-        case RobustOutOnly:
-            return false;
-        default:
-            return true;
-        }
+        return true;
     }
 
     /**
@@ -81,7 +63,6 @@ public enum ExchangePattern {
     public boolean isOutCapable() {
         switch (this) {
         case InOnly:
-        case RobustInOnly:
             return false;
         default:
             return true;
@@ -94,7 +75,6 @@ public enum ExchangePattern {
     public boolean isFaultCapable() {
         switch (this) {
         case InOnly:
-        case OutOnly:
             return false;
         default:
             return true;
diff --git a/camel-core/src/main/java/org/apache/camel/Main.java b/camel-core/src/main/java/org/apache/camel/Main.java
deleted file mode 100644
index 8e1f58f..0000000
--- a/camel-core/src/main/java/org/apache/camel/Main.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-/**
- * @deprecated use {@link org.apache.camel.main.Main org.apache.camel.main.Main} instead
- */
-@Deprecated
-public class Main extends org.apache.camel.main.Main {
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/Message.java b/camel-core/src/main/java/org/apache/camel/Message.java
index 2dcc161..a0e1d0b 100644
--- a/camel-core/src/main/java/org/apache/camel/Message.java
+++ b/camel-core/src/main/java/org/apache/camel/Message.java
@@ -393,13 +393,4 @@ public interface Message {
      */
     boolean hasAttachments();
 
-    /**
-     * Returns the unique ID for a message exchange if this message is capable
-     * of creating one or <tt>null</tt> if not
-     *
-     * @return the created exchange id, or <tt>null</tt> if not capable of creating
-     * @deprecated will be removed in Camel 3.0. It is discouraged for messages to create exchange ids
-     */
-    @Deprecated
-    String createExchangeId();
 }
diff --git a/camel-core/src/main/java/org/apache/camel/MessageHistory.java b/camel-core/src/main/java/org/apache/camel/MessageHistory.java
index 217b9d2..e3fd0c3 100644
--- a/camel-core/src/main/java/org/apache/camel/MessageHistory.java
+++ b/camel-core/src/main/java/org/apache/camel/MessageHistory.java
@@ -35,14 +35,6 @@ public interface MessageHistory {
 
     /**
      * Gets the timestamp at the point of this history.
-     *
-     * @deprecated use {@link #getTime()}
-     */
-    @Deprecated
-    Date getTimestamp();
-
-    /**
-     * Gets the timestamp at the point of this history.
      */
     long getTime();
 
diff --git a/camel-core/src/main/java/org/apache/camel/Producer.java b/camel-core/src/main/java/org/apache/camel/Producer.java
index f6be6f4..89bdaa3 100644
--- a/camel-core/src/main/java/org/apache/camel/Producer.java
+++ b/camel-core/src/main/java/org/apache/camel/Producer.java
@@ -24,33 +24,4 @@ package org.apache.camel;
  */
 public interface Producer extends Processor, Service, IsSingleton, EndpointAware {
 
-    /**
-     * Creates a new exchange to send to this endpoint
-     * 
-     * @return a newly created exchange
-     * @deprecated use {@link Endpoint#createExchange()} - will be removed in Camel 3.0
-     */
-    @Deprecated
-    Exchange createExchange();
-
-    /**
-     * Creates a new exchange of the given pattern to send to this endpoint
-     *
-     * @param pattern the exchange pattern
-     * @return a newly created exchange
-     * @deprecated use {@link Endpoint#createExchange(ExchangePattern)} - will be removed in Camel 3.0
-     */
-    @Deprecated
-    Exchange createExchange(ExchangePattern pattern);
-
-    /**
-     * Creates a new exchange for communicating with this exchange using the
-     * given exchange to pre-populate the values of the headers and messages
-     *
-     * @param exchange the existing exchange
-     * @return the created exchange
-     * @deprecated will be removed in Camel 3.0
-     */
-    @Deprecated
-    Exchange createExchange(Exchange exchange);
 }
diff --git a/camel-core/src/main/java/org/apache/camel/Properties.java b/camel-core/src/main/java/org/apache/camel/Properties.java
deleted file mode 100644
index fc554ce..0000000
--- a/camel-core/src/main/java/org/apache/camel/Properties.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a parameter as being an injection point of the properties of an {@link Exchange}
- *
- * @deprecated use {@link ExchangeProperties} instead
- * @see Exchange#getProperties()  
- * @version 
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Target({ElementType.PARAMETER })
-@Deprecated
-public @interface Properties {
-}
\ No newline at end of file
diff --git a/camel-core/src/main/java/org/apache/camel/Property.java b/camel-core/src/main/java/org/apache/camel/Property.java
deleted file mode 100644
index a304e6f..0000000
--- a/camel-core/src/main/java/org/apache/camel/Property.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a parameter as being an injection point of a property of an {@link Exchange}
- *
- * @see Exchange#getProperty(String)  
- * @version
- * @deprecated use {@link org.apache.camel.ExchangeProperty} instead
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Target({ElementType.PARAMETER })
-@Deprecated
-public @interface Property {
-    String value();
-}
diff --git a/camel-core/src/main/java/org/apache/camel/Route.java b/camel-core/src/main/java/org/apache/camel/Route.java
index 7dd5af3..53fddce 100644
--- a/camel-core/src/main/java/org/apache/camel/Route.java
+++ b/camel-core/src/main/java/org/apache/camel/Route.java
@@ -27,8 +27,8 @@ import org.apache.camel.spi.RouteContext;
  * from a specific {@link org.apache.camel.Endpoint} within a {@link org.apache.camel.CamelContext}.
  * <p/>
  * Use the API from {@link org.apache.camel.CamelContext} to control the lifecycle of a route,
- * such as starting and stopping using the {@link org.apache.camel.CamelContext#startRoute(String)}
- * and {@link org.apache.camel.CamelContext#stopRoute(String)} methods.
+ * such as starting and stopping using the {@link org.apache.camel.spi.RouteController#startRoute(String)}
+ * and {@link org.apache.camel.spi.RouteController#stopRoute(String)} methods.
  */
 public interface Route extends EndpointAware {
 
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java b/camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java
index 991e8cc..6124007 100644
--- a/camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java
+++ b/camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java
@@ -133,7 +133,7 @@ public interface RuntimeConfiguration {
      * <b>Note:</b> When setting auto startup <tt>false</tt> on {@link CamelContext} then that takes precedence
      * and <i>no</i> routes is started. You would need to start {@link CamelContext} explicit using
      * the {@link org.apache.camel.CamelContext#start()} method, to start the context, and then
-     * you would need to start the routes manually using {@link CamelContext#startRoute(String)}.
+     * you would need to start the routes manually using {@link org.apache.camel.spi.RouteController#startRoute(String)}.
      * <p/>
      * Default is <tt>true</tt> to always start up.
      *
diff --git a/camel-core/src/main/java/org/apache/camel/URIField.java b/camel-core/src/main/java/org/apache/camel/URIField.java
deleted file mode 100644
index b54c0cb..0000000
--- a/camel-core/src/main/java/org/apache/camel/URIField.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Used to indicate the field of an {@link EndpointConfiguration}.
- * A naming convention makes the annotation necessary only for parameters
- *
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Target({ElementType.FIELD})
-@Deprecated
-public @interface URIField {
-    String component() default "";
-    String parameter() default "";
-}
diff --git a/camel-core/src/main/java/org/apache/camel/VerifiableComponent.java b/camel-core/src/main/java/org/apache/camel/VerifiableComponent.java
deleted file mode 100644
index 2e2b6f6..0000000
--- a/camel-core/src/main/java/org/apache/camel/VerifiableComponent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel;
-
-/**
- * An interface to represent an object which support validation
- *
- * @deprecated see {@link org.apache.camel.extension.ComponentExtension}
- */
-@Deprecated
-public interface VerifiableComponent {
-    /**
-     * Get the {@link ComponentVerifier}
-     *
-     * @return the Component Verifier
-     */
-    ComponentVerifier getVerifier();
-}
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
index c9623ac..83483a4 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.api.management.mbean;
 
-import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -50,10 +49,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
     @ManagedAttribute(description = "Camel Management StatisticsLevel")
     String getManagementStatisticsLevel();
 
-    @Deprecated
-    @ManagedAttribute(description = "Camel Properties")
-    Map<String, String> getProperties();
-
     @ManagedAttribute(description = "Camel Global Options")
     Map<String, String> getGlobalOptions();
 
@@ -69,10 +64,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
     @ManagedAttribute(description = "HeadersMapFactory class name")
     String getHeadersMapFactoryClassName();
 
-    @Deprecated
-    @ManagedOperation(description = "Gets the value of a Camel global option")
-    String getProperty(String key) throws Exception;
-
     /**
      * Gets the value of a CamelContext global option
      *
@@ -83,10 +74,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
     @ManagedOperation(description = "Gets the value of a Camel global option")
     String getGlobalOption(String key) throws Exception;
 
-    @Deprecated
-    @ManagedOperation(description = "Sets the value of a Camel global option")
-    void setProperty(String key, String value) throws Exception;
-
     /**
      * Sets the value of a CamelContext property name
      *
@@ -103,13 +90,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
     @ManagedAttribute(description = "Tracing")
     void setTracing(Boolean tracing);
 
-    /**
-     * @deprecated use {@link #getExchangesInflight()}
-     */
-    @ManagedAttribute(description = "Current number of inflight Exchanges")
-    @Deprecated
-    Integer getInflightExchanges();
-
     @ManagedAttribute(description = "Total number of routes")
     Integer getTotalRoutes();
 
@@ -373,32 +353,6 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
     @ManagedOperation(description = "Reset counters")
     void reset(boolean includeRoutes) throws Exception;
 
-    /**
-     * Helper method for tooling which returns the completion list of the endpoint path
-     * from the given endpoint name, properties and current path expression.
-     * <p/>
-     * For example if using the file endpoint, this should complete a list of files (rather like bash completion)
-     * or for an ActiveMQ component this should complete the list of queues or topics.
-     *
-     * @param componentName  the component name
-     * @param endpointParameters  parameters of the endpoint
-     * @param completionText  the entered text which we want to have completion suggestions for
-     * @throws Exception is thrown if error occurred
-     */
-    @ManagedOperation(description = "Returns the list of available endpoint paths for the given component name, endpoint properties and completion text")
-    @Deprecated
-    List<String> completeEndpointPath(String componentName, Map<String, Object> endpointParameters, String completionText) throws Exception;
-
-    /**
-     * Returns the HTML documentation for the given camel component
-     *
-     * @param componentName  the component name
-     * @deprecated use camel-catalog instead
-     */
-    @ManagedOperation(description = "Returns the HTML documentation for the given camel component")
-    @Deprecated
-    String getComponentDocumentation(String componentName) throws IOException;
-
     @ManagedOperation(description = "Returns the JSON representation of all the static and dynamic endpoints defined in all the routes")
     String createRouteStaticEndpointJson();
 
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCircuitBreakerLoadBalancerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCircuitBreakerLoadBalancerMBean.java
deleted file mode 100644
index 53d2ec9..0000000
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCircuitBreakerLoadBalancerMBean.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.api.management.mbean;
-
-import javax.management.openmbean.TabularData;
-
-import org.apache.camel.api.management.ManagedAttribute;
-import org.apache.camel.api.management.ManagedOperation;
-
-public interface ManagedCircuitBreakerLoadBalancerMBean extends ManagedProcessorMBean {
-
-    @ManagedAttribute(description = "Number of processors in the load balancer")
-    Integer getSize();
-
-    @ManagedAttribute(description = "The timeout in millis to use as threshold to move state from closed to half-open or open state")
-    Long getHalfOpenAfter();
-
-    @ManagedAttribute(description = "Number of previous failed messages to use as threshold to move state from closed to half-open or open state")
-    Integer getThreshold();
-
-    @ManagedAttribute(description = "The class names of the exceptions the load balancer uses (separated by comma)")
-    String getExceptions();
-
-    @ManagedAttribute(description = "The current state of the circuit breaker")
-    String getCircuitBreakerState();
-
-    @ManagedOperation(description = "Dumps the state of the load balancer")
-    String dumpState();
-
-    @ManagedOperation(description = "Statistics of the content based router for each exception")
-    TabularData exceptionStatistics();
-
-}
\ No newline at end of file
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
index baf70e1..ad4ee9b 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
@@ -20,9 +20,9 @@ import java.util.Map;
 
 import javax.management.openmbean.TabularData;
 
-import org.apache.camel.ComponentVerifier;
 import org.apache.camel.api.management.ManagedAttribute;
 import org.apache.camel.api.management.ManagedOperation;
+import org.apache.camel.component.extension.ComponentVerifierExtension;
 
 public interface ManagedComponentMBean {
 
@@ -48,5 +48,5 @@ public interface ManagedComponentMBean {
     boolean isVerifySupported();
 
     @ManagedOperation(description = "Verify options against a given scope")
-    ComponentVerifier.Result verify(String scope, Map<String, String> options);
+    ComponentVerifierExtension.Result verify(String scope, Map<String, String> options);
 }
\ No newline at end of file
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
index 544ebab..b17b15e 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
@@ -49,13 +49,6 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean {
     @ManagedAttribute(description = "Route Uptime [milliseconds]")
     long getUptimeMillis();
 
-    /**
-     * @deprecated use {@link #getExchangesInflight()}
-     */
-    @ManagedAttribute(description = "Current number of inflight Exchanges")
-    @Deprecated
-    Integer getInflightExchanges();
-
     @ManagedAttribute(description = "Camel ID")
     String getCamelId();
 
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
index 7950f6c..ebd484a 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java
@@ -26,13 +26,6 @@ public interface ManagedSendProcessorMBean extends ManagedProcessorMBean, Manage
     @ManagedAttribute(description = "Destination as Endpoint URI", mask = true)
     String getDestination();
 
-    /**
-     * @deprecated no longer in use. Will be removed in a future Camel release.
-     */
-    @ManagedAttribute(description = "Destination as Endpoint URI")
-    @Deprecated
-    void setDestination(String uri);
-
     @ManagedAttribute(description = "Message Exchange Pattern")
     String getMessageExchangePattern();
 
diff --git a/camel-core/src/main/java/org/apache/camel/builder/AdviceWithTasks.java b/camel-core/src/main/java/org/apache/camel/builder/AdviceWithTasks.java
index c87ca73..67605e3 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/AdviceWithTasks.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/AdviceWithTasks.java
@@ -391,9 +391,8 @@ public final class AdviceWithTasks {
         return new AdviceWithTask() {
             public void task() throws Exception {
                 FromDefinition from = route.getInputs().get(0);
-                LOG.info("AdviceWith replace input from [{}] --> [{}]", from.getUriOrRef(), uri);
+                LOG.info("AdviceWith replace input from [{}] --> [{}]", from.getUri(), uri);
                 from.setEndpoint(null);
-                from.setRef(null);
                 from.setUri(uri);
             }
         };
@@ -403,8 +402,7 @@ public final class AdviceWithTasks {
         return new AdviceWithTask() {
             public void task() throws Exception {
                 FromDefinition from = route.getInputs().get(0);
-                LOG.info("AdviceWith replace input from [{}] --> [{}]", from.getUriOrRef(), endpoint.getEndpointUri());
-                from.setRef(null);
+                LOG.info("AdviceWith replace input from [{}] --> [{}]", from.getUri(), endpoint.getEndpointUri());
                 from.setUri(null);
                 from.setEndpoint(endpoint);
             }
diff --git a/camel-core/src/main/java/org/apache/camel/builder/Builder.java b/camel-core/src/main/java/org/apache/camel/builder/Builder.java
index 6633f2b..d0d63e5 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/Builder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/Builder.java
@@ -139,16 +139,6 @@ public final class Builder {
 
     /**
      * Returns a predicate and value builder for properties on an exchange
-     *
-     * @deprecated use {@link #exchangeProperty(String)} instead
-     */
-    @Deprecated
-    public static ValueBuilder property(String name) {
-        return exchangeProperty(name);
-    }
-    
-    /**
-     * Returns a predicate and value builder for properties on an exchange
      */
     public static ValueBuilder exchangeProperty(String name) {
         Expression exp = new ExchangePropertyExpression(name);
@@ -174,51 +164,6 @@ public final class Builder {
     }
 
     /**
-     * Returns a predicate and value builder for the outbound body on an
-     * exchange
-     *
-     * @deprecated use {@link #body()}
-     */
-    @Deprecated
-    public static ValueBuilder outBody() {
-        Expression exp = new SimpleExpression("${out.body}");
-        return new ValueBuilder(exp);
-    }
-
-    /**
-     * Returns a predicate and value builder for the outbound message body as a
-     * specific type
-     *
-     * @deprecated use {@link #bodyAs(Class)}
-     */
-    @Deprecated
-    public static <T> ValueBuilder outBodyAs(Class<T> type) {
-        Expression expression = ExpressionBuilder.outBodyExpression(type);
-        return new ValueBuilder(expression);
-    }
-
-    /**
-     * Returns a predicate and value builder for the fault body on an
-     * exchange
-     */
-    public static ValueBuilder faultBody() {
-        Expression expression = ExpressionBuilder.faultBodyExpression();
-        return new ValueBuilder(expression);
-    }
-
-    /**
-     * Returns a predicate and value builder for the fault message body as a
-     * specific type
-     *
-     * @deprecated use {@link #bodyAs(Class)}
-     */
-    @Deprecated
-    public static <T> ValueBuilder faultBodyAs(Class<T> type) {
-        Expression expression = ExpressionBuilder.faultBodyExpression(type);
-        return new ValueBuilder(expression);
-    }
-
-    /**
      * Returns an expression for the given system property
      */
     public static ValueBuilder systemProperty(final String name) {
@@ -267,17 +212,4 @@ public final class Builder {
         return new ValueBuilder(newExp);
     }
 
-    /**
-     * Returns an expression processing the exchange to the given endpoint uri.
-     *
-     * @param uri   endpoint uri
-     * @return the builder
-     * @deprecated not in use, and not available in XML DSL
-     */
-    @Deprecated
-    public static ValueBuilder sendTo(String uri) {
-        Expression expression = ExpressionBuilder.toExpression(uri);
-        return new ValueBuilder(expression);
-    }
-
 }
diff --git a/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java b/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
index 23a6012..51d999e 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
@@ -23,7 +23,6 @@ import java.util.List;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Expression;
-import org.apache.camel.LoggingLevel;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.builder.xml.XPathBuilder;
 import org.apache.camel.model.ModelCamelContext;
@@ -31,8 +30,6 @@ import org.apache.camel.model.language.ExchangePropertyExpression;
 import org.apache.camel.model.language.HeaderExpression;
 import org.apache.camel.model.language.JsonPathExpression;
 import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Base class for implementation inheritance for different clauses in the <a
@@ -63,17 +60,6 @@ public abstract class BuilderSupport {
     }
 
     /**
-     *
-     * Returns a value builder for the given exchange property
-     * @deprecated use {@link #exchangeProperty(String)} instead
-     */
-    @Deprecated
-    public ValueBuilder property(String name) {
-        Expression exp = new ExchangePropertyExpression(name);
-        return new ValueBuilder(exp);
-    }
-
-    /**
      * Returns a value builder for the given exchange property
      */
     public ValueBuilder exchangeProperty(String name) {
@@ -91,64 +77,12 @@ public abstract class BuilderSupport {
     /**
      * Returns a predicate and value builder for the inbound message body as a
      * specific type
-     *
-     * @deprecated use {@link #bodyAs(Class)}
-     */
-    @Deprecated
-    public <T> ValueBuilder body(Class<T> type) {
-        return bodyAs(type);
-    }
-
-    /**
-     * Returns a predicate and value builder for the inbound message body as a
-     * specific type
      */
     public <T> ValueBuilder bodyAs(Class<T> type) {
         return Builder.bodyAs(type);
     }
 
     /**
-     * Returns a predicate and value builder for the outbound body on an
-     * exchange
-     *
-     * @deprecated use {@link #body()}
-     */
-    @Deprecated
-    public ValueBuilder outBody() {
-        return Builder.outBody();
-    }
-
-    /**
-     * Returns a predicate and value builder for the outbound message body as a
-     * specific type
-     *
-     * @deprecated use {@link #bodyAs(Class)}
-     */
-    @Deprecated
-    public <T> ValueBuilder outBody(Class<T> type) {
-        return Builder.outBodyAs(type);
-    }
-
-    /**
-     * Returns a predicate and value builder for the fault body on an
-     * exchange
-     */
-    public ValueBuilder faultBody() {
-        return Builder.faultBody();
-    }
-
-    /**
-     * Returns a predicate and value builder for the fault message body as a
-     * specific type
-     *
-     * @deprecated use {@link #bodyAs(Class)}
-     */
-    @Deprecated
-    public <T> ValueBuilder faultBodyAs(Class<T> type) {
-        return Builder.faultBodyAs(type);
-    }
-
-    /**
      * Returns a value builder for the given system property
      */
     public ValueBuilder systemProperty(String name) {
@@ -259,64 +193,6 @@ public abstract class BuilderSupport {
      *
      * @param beanOrBeanRef  either an instanceof a bean or a reference to bean to lookup in the Registry
      * @return the builder
-     * @deprecated use {@link #method(Object)} instead
-     */
-    @Deprecated
-    public ValueBuilder bean(Object beanOrBeanRef) {
-        return bean(beanOrBeanRef, null);
-    }
-
-    /**
-     * Returns a <a href="http://camel.apache.org/bean-language.html">method call expression</a>
-     * value builder
-     * <p/>
-     * This method accepts dual parameters. Either an bean instance or a reference to a bean (String).
-     *
-     * @param beanOrBeanRef  either an instanceof a bean or a reference to bean to lookup in the Registry
-     * @param method   name of method to invoke
-     * @return the builder
-     * @deprecated use {@link #method(Object, String)} instead
-     */
-    @Deprecated
-    public ValueBuilder bean(Object beanOrBeanRef, String method) {
-        return Builder.bean(beanOrBeanRef, method);
-    }
-
-    /**
-     * Returns a <a href="http://camel.apache.org/bean-language.html">method call expression</a>
-     * value builder
-     *
-     * @param beanType the Class of the bean which we want to invoke
-     * @return the builder
-     * @deprecated use {@link #method(Class)} instead
-     */
-    @Deprecated
-    public ValueBuilder bean(Class<?> beanType) {
-        return Builder.bean(beanType);
-    }
-
-    /**
-     * Returns a <a href="http://camel.apache.org/bean-language.html">method call expression</a>
-     * value builder
-     *
-     * @param beanType the Class of the bean which we want to invoke
-     * @param method   name of method to invoke
-     * @return the builder
-     * @deprecated use {@link #method(Class, String)} instead
-     */
-    @Deprecated
-    public ValueBuilder bean(Class<?> beanType, String method) {
-        return Builder.bean(beanType, method);
-    }
-
-    /**
-     * Returns a <a href="http://camel.apache.org/bean-language.html">method call expression</a>
-     * value builder
-     * <p/>
-     * This method accepts dual parameters. Either an bean instance or a reference to a bean (String).
-     *
-     * @param beanOrBeanRef  either an instanceof a bean or a reference to bean to lookup in the Registry
-     * @return the builder
      */
     public ValueBuilder method(Object beanOrBeanRef) {
         return method(beanOrBeanRef, null);
@@ -360,18 +236,6 @@ public abstract class BuilderSupport {
     }
 
     /**
-     * Returns an expression processing the exchange to the given endpoint uri
-     *
-     * @param uri endpoint uri to send the exchange to
-     * @return the builder
-     * @deprecated not in use, and not available in XML DSL
-     */
-    @Deprecated
-    public ValueBuilder sendTo(String uri) {
-        return Builder.sendTo(uri);
-    }
-
-    /**
      * Returns an expression value builder that replaces all occurrences of the
      * regular expression with the given replacement
      */
diff --git a/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java b/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
index a02a47d..036648b 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
@@ -940,7 +940,9 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, boolean secureTagContents) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
         return dataFormat(xsdf);
     }
     
@@ -948,7 +950,10 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setNamespaces(namespaces);
         return dataFormat(xsdf);
     }
 
@@ -956,7 +961,10 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, boolean secureTagContents, String passPhrase) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, passPhrase);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setPassPhrase(passPhrase);
         return dataFormat(xsdf);
     }
     
@@ -964,7 +972,11 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String passPhrase) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, passPhrase);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setNamespaces(namespaces);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setPassPhrase(passPhrase);
         return dataFormat(xsdf);
     }
     
@@ -972,7 +984,11 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, boolean secureTagContents, String passPhrase, String xmlCipherAlgorithm) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, passPhrase, xmlCipherAlgorithm);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setPassPhrase(passPhrase);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
     }
     
@@ -981,7 +997,12 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String passPhrase, String xmlCipherAlgorithm) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, passPhrase, xmlCipherAlgorithm);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setNamespaces(namespaces);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setPassPhrase(passPhrase);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
     }
     
@@ -1034,25 +1055,19 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
         return dataFormat(xsdf);
     }
-    
-    /**
-     * @deprecated Use {@link #secureXML(String, Map, boolean, String, String, String, String)} instead.
-     * Uses the XML Security data format
-     */
-    @Deprecated
-    public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, 
-            String keyCipherAlgorithm) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, keyCipherAlgorithm);
-        return dataFormat(xsdf);
-    }
-    
+
     /**
      * Uses the XML Security data format
      */
     public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, 
             String keyCipherAlgorithm, String keyOrTrustStoreParametersId) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-            keyCipherAlgorithm, keyOrTrustStoreParametersId);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParametersId(keyOrTrustStoreParametersId);
         return dataFormat(xsdf);
     }
     
@@ -1061,8 +1076,14 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, 
             String keyCipherAlgorithm, String keyOrTrustStoreParametersId, String keyPassword) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-            keyCipherAlgorithm, keyOrTrustStoreParametersId, keyPassword);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParametersId(keyOrTrustStoreParametersId);
+        xsdf.setKeyPassword(keyPassword);
         return dataFormat(xsdf);
     }    
     
@@ -1071,8 +1092,13 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, 
             String keyCipherAlgorithm, KeyStoreParameters keyOrTrustStoreParameters) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-            keyCipherAlgorithm, keyOrTrustStoreParameters);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParameters(keyOrTrustStoreParameters);
         return dataFormat(xsdf);
     }
     
@@ -1081,8 +1107,14 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, 
             String keyCipherAlgorithm, KeyStoreParameters keyOrTrustStoreParameters, String keyPassword) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-            keyCipherAlgorithm, keyOrTrustStoreParameters, keyPassword);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParameters(keyOrTrustStoreParameters);
+        xsdf.setKeyPassword(keyPassword);
         return dataFormat(xsdf);
     }    
     
@@ -1091,8 +1123,13 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String recipientKeyAlias, 
             String xmlCipherAlgorithm, String keyCipherAlgorithm, String keyOrTrustStoreParametersId) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-                keyCipherAlgorithm, keyOrTrustStoreParametersId);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParametersId(keyOrTrustStoreParametersId);
         return dataFormat(xsdf);
     }
     
@@ -1101,8 +1138,14 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String recipientKeyAlias, 
             String xmlCipherAlgorithm, String keyCipherAlgorithm, String keyOrTrustStoreParametersId, String keyPassword) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-                keyCipherAlgorithm, keyOrTrustStoreParametersId, keyPassword);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParametersId(keyOrTrustStoreParametersId);
+        xsdf.setKeyPassword(keyPassword);
         return dataFormat(xsdf);
     }    
     
@@ -1111,8 +1154,13 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String recipientKeyAlias, 
             String xmlCipherAlgorithm, String keyCipherAlgorithm, KeyStoreParameters keyOrTrustStoreParameters) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-                keyCipherAlgorithm, keyOrTrustStoreParameters);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParameters(keyOrTrustStoreParameters);
         return dataFormat(xsdf);
     }
     
@@ -1121,8 +1169,15 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
      */
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String recipientKeyAlias, 
             String xmlCipherAlgorithm, String keyCipherAlgorithm, KeyStoreParameters keyOrTrustStoreParameters, String keyPassword) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-                keyCipherAlgorithm, keyOrTrustStoreParameters, keyPassword);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setNamespaces(namespaces);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParameters(keyOrTrustStoreParameters);
+        xsdf.setKeyPassword(keyPassword);
         return dataFormat(xsdf);
     }   
     
@@ -1132,8 +1187,16 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     public T secureXML(String secureTag, Map<String, String> namespaces, boolean secureTagContents, String recipientKeyAlias, 
             String xmlCipherAlgorithm, String keyCipherAlgorithm, KeyStoreParameters keyOrTrustStoreParameters, String keyPassword,
             String digestAlgorithm) {
-        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, namespaces, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, 
-                keyCipherAlgorithm, keyOrTrustStoreParameters, keyPassword, digestAlgorithm);
+        XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat();
+        xsdf.setSecureTag(secureTag);
+        xsdf.setNamespaces(namespaces);
+        xsdf.setSecureTagContents(secureTagContents);
+        xsdf.setRecipientKeyAlias(recipientKeyAlias);
+        xsdf.setXmlCipherAlgorithm(xmlCipherAlgorithm);
+        xsdf.setKeyCipherAlgorithm(keyCipherAlgorithm);
+        xsdf.setKeyOrTrustStoreParameters(keyOrTrustStoreParameters);
+        xsdf.setDigestAlgorithm(digestAlgorithm);
+        xsdf.setKeyPassword(keyPassword);
         return dataFormat(xsdf);
     }
 
diff --git a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
index 97ef0b9..48bff89 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
@@ -131,15 +131,6 @@ public class DefaultErrorHandlerBuilder extends ErrorHandlerBuilderSupport {
         return this;
     }
 
-    /**
-     * @deprecated will be removed in the near future. Use {@link #redeliveryDelay(long)} instead
-     */
-    @Deprecated
-    public DefaultErrorHandlerBuilder redeliverDelay(long delay) {
-        getRedeliveryPolicy().redeliveryDelay(delay);
-        return this;
-    }
-
     public DefaultErrorHandlerBuilder redeliveryDelay(long delay) {
         getRedeliveryPolicy().redeliveryDelay(delay);
         return this;
@@ -392,15 +383,6 @@ public class DefaultErrorHandlerBuilder extends ErrorHandlerBuilderSupport {
     }
 
     /**
-     * @deprecated use {@link #deadLetterHandleNewException(boolean)}} with value <tt>false</tt>
-     */
-    @Deprecated
-    public DefaultErrorHandlerBuilder checkException() {
-        setDeadLetterHandleNewException(false);
-        return this;
-    }
-
-    /**
      * Sets a custom {@link org.apache.camel.Processor} to prepare the {@link org.apache.camel.Exchange} before
      * handled by the failure processor / dead letter channel. This allows for example to enrich the message
      * before sending to a dead letter queue.
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java b/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
index 04e1913..7915647 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
@@ -158,7 +158,7 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport {
 
     protected static ErrorHandlerFactory lookupErrorHandlerBuilder(ModelCamelContext camelContext) {
         @SuppressWarnings("deprecation")
-        ErrorHandlerFactory answer = camelContext.getErrorHandlerBuilder();
+        ErrorHandlerFactory answer = camelContext.getErrorHandlerFactory();
         if (answer instanceof ErrorHandlerBuilderRef) {
             ErrorHandlerBuilderRef other = (ErrorHandlerBuilderRef) answer;
             String otherRef = other.getRef();
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
index 80ad2e6..5c9a34e 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
@@ -590,28 +590,6 @@ public final class ExpressionBuilder {
      *
      * @param propertyName the name of the property the expression will return
      * @return an expression object which will return the property value
-     * @deprecated use {@link #exchangePropertyExpression(String)} instead
-     */
-    @Deprecated
-    public static Expression propertyExpression(final String propertyName) {
-        return new ExpressionAdapter() {
-            public Object evaluate(Exchange exchange) {
-                String text = simpleExpression(propertyName).evaluate(exchange, String.class);
-                return exchange.getProperty(text);
-            }
-
-            @Override
-            public String toString() {
-                return "exchangeProperty(" + propertyName + ")";
-            }
-        };
-    }
-
-    /**
-     * Returns an expression for the property value of exchange with the given name
-     *
-     * @param propertyName the name of the property the expression will return
-     * @return an expression object which will return the property value
      */
     public static Expression exchangePropertyExpression(final String propertyName) {
         return new ExpressionAdapter() {
@@ -644,17 +622,6 @@ public final class ExpressionBuilder {
     }
 
     /**
-     * Returns an expression for the properties of exchange
-     *
-     * @return an expression object which will return the properties
-     * @deprecated use {@link #exchangeExceptionExpression()} instead
-     */
-    @Deprecated
-    public static Expression propertiesExpression() {
-        return exchangeExceptionExpression();
-    }
-
-    /**
      * Returns an expression for the exchange properties of exchange
      *
      * @return an expression object which will return the exchange properties
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
index 1251973..7319bbe 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
@@ -308,16 +308,6 @@ public class ExpressionClause<T> extends ExpressionDefinition {
 
     /**
      * An expression of an exchange property of the given name
-     *
-     * @deprecated use {@link #exchangeProperty(String)} instead
-     */
-    @Deprecated
-    public T property(String name) {
-        return exchangeProperty(name);
-    }
-
-    /**
-     * An expression of an exchange property of the given name
      */
     public T exchangeProperty(String name) {
         return delegate.exchangeProperty(name);
@@ -325,16 +315,6 @@ public class ExpressionClause<T> extends ExpressionDefinition {
 
     /**
      * An expression of the exchange properties
-     *
-     * @deprecated use {@link #exchangeProperties()} instead
-     */
-    @Deprecated
-    public T properties() {
-        return exchangeProperties();
-    }
-
-    /**
-     * An expression of the exchange properties
      */
     public T exchangeProperties() {
         return delegate.exchangeProperties();
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
index d815f2c..b448e4f 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
@@ -180,16 +180,6 @@ public class ExpressionClauseSupport<T> {
 
     /**
      * An expression of an exchange property of the given name
-     *
-     * @deprecated use {@link #exchangeProperty(String)} instead
-     */
-    @Deprecated
-    public T property(String name) {
-        return expression(new ExchangePropertyExpression(name));
-    }
-
-    /**
-     * An expression of an exchange property of the given name
      */
     public T exchangeProperty(String name) {
         return expression(new ExchangePropertyExpression(name));
@@ -197,16 +187,6 @@ public class ExpressionClauseSupport<T> {
 
     /**
      * An expression of the exchange properties
-     *
-     * @deprecated use {@link #exchangeProperties()} instead
-     */
-    @Deprecated
-    public T properties() {
-        return exchangeProperties();
-    }
-
-    /**
-     * An expression of the exchange properties
      */
     public T exchangeProperties() {
         return expression(ExpressionBuilder.exchangePropertiesExpression());
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
index 25a6f9f..90b9043 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
@@ -57,26 +57,6 @@ public final class ProcessorBuilder {
     }
 
     /**
-     * Creates a processor which sets the body of the OUT message to the value of the expression
-     *
-     * @deprecated use {@link #setBody(org.apache.camel.Expression)}
-     */
-    @Deprecated
-    public static Processor setOutBody(final Expression expression) {
-        return new Processor() {
-            public void process(Exchange exchange) {
-                Object newBody = expression.evaluate(exchange, Object.class);
-                exchange.getOut().setBody(newBody);
-            }
-
-            @Override
-            public String toString() {
-                return "setOutBody(" + expression + ")";
-            }
-        };
-    }
-
-    /**
      * Creates a processor which sets the body of the FAULT message to the value of the expression
      */
     public static Processor setFaultBody(final Expression expression) {
@@ -121,26 +101,6 @@ public final class ProcessorBuilder {
     }
 
     /**
-     * Sets the header on the OUT message
-     *
-     * @deprecated use {@link #setHeader(String, org.apache.camel.Expression)}
-     */
-    @Deprecated
-    public static Processor setOutHeader(final String name, final Expression expression) {
-        return new Processor() {
-            public void process(Exchange exchange) {
-                Object value = expression.evaluate(exchange, Object.class);
-                exchange.getOut().setHeader(name, value);
-            }
-
-            @Override
-            public String toString() {
-                return "setOutHeader(" + name + ", " + expression + ")";
-            }
-        };
-    }
-
-    /**
      * Sets the header on the FAULT message
      */
     public static Processor setFaultHeader(final String name, final Expression expression) {
@@ -241,25 +201,6 @@ public final class ProcessorBuilder {
     }
 
     /**
-     * Removes the header on the FAULT message (FAULT must be OUT)
-     * @deprecated will be removed in the near future. Instead use {@link #removeHeader(String)}
-     */
-    @Deprecated
-    public static Processor removeFaultHeader(final String name) {
-        return new Processor() {
-            public void process(Exchange exchange) {
-                exchange.getOut().setFault(true);
-                exchange.getOut().removeHeader(name);
-            }
-
-            @Override
-            public String toString() {
-                return "removeFaultHeader(" + name +  ")";
-            }
-        };
-    }
-
-    /**
      * Removes the property on the exchange
      */
     public static Processor removeProperty(final String name) {
diff --git a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
index e4bd4b2..94f6ce9 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -447,7 +447,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
     @Override
     public void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder) {
         super.setErrorHandlerBuilder(errorHandlerBuilder);
-        getRouteCollection().setErrorHandlerBuilder(getErrorHandlerBuilder());
+        getRouteCollection().setErrorHandlerFactory(getErrorHandlerBuilder());
     }
 
     // Implementation methods
@@ -457,8 +457,8 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
         if (initialized.compareAndSet(false, true)) {
             // Set the CamelContext ErrorHandler here
             ModelCamelContext camelContext = getContext();
-            if (camelContext.getErrorHandlerBuilder() != null) {
-                setErrorHandlerBuilder(camelContext.getErrorHandlerBuilder());
+            if (camelContext.getErrorHandlerFactory() instanceof ErrorHandlerBuilder) {
+                setErrorHandlerBuilder((ErrorHandlerBuilder) camelContext.getErrorHandlerFactory());
             }
             configure();
             // mark all route definitions as custom prepared because
@@ -588,16 +588,4 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
         // noop
     }
 
-    /**
-     * Adds a collection of routes to this context
-     *
-     * @param routes the routes
-     * @throws Exception if the routes could not be created for whatever reason
-     * @deprecated will be removed in Camel 3.0. Instead use {@link #includeRoutes(org.apache.camel.RoutesBuilder) includeRoutes} instead.
-     */
-    @Deprecated
-    protected void addRoutes(RoutesBuilder routes) throws Exception {
-        includeRoutes(routes);
-    }
-
 }
diff --git a/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
index 4ce9243..c1f78ad 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
@@ -18,6 +18,7 @@ package org.apache.camel.builder;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
+import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.transformer.CustomTransformerDefinition;
 import org.apache.camel.model.transformer.DataFormatTransformerDefinition;
 import org.apache.camel.model.transformer.EndpointTransformerDefinition;
@@ -180,6 +181,6 @@ public class TransformerBuilder {
             transformer.setToType(to);
         }
         
-        camelContext.getTransformers().add(transformer);
+        camelContext.adapt(ModelCamelContext.class).getTransformers().add(transformer);
     }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValidatorBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValidatorBuilder.java
index 7193c3d..499d492 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValidatorBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValidatorBuilder.java
@@ -19,6 +19,7 @@ package org.apache.camel.builder;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
+import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.model.validator.CustomValidatorDefinition;
 import org.apache.camel.model.validator.EndpointValidatorDefinition;
@@ -161,6 +162,6 @@ public class ValidatorBuilder {
         }
         
         validator.setType(type);
-        camelContext.getValidators().add(validator);
+        camelContext.adapt(ModelCamelContext.class).getValidators().add(validator);
     }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java b/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java
index b6fe229..fb67ca3 100644
--- a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java
+++ b/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java
@@ -37,17 +37,6 @@ public interface CamelClusterView extends Service, CamelContextAware {
     String getNamespace();
 
     /**
-     * Provides the master member if elected.
-     *
-     * @return the master member.
-     * @deprecated use {@link #getLeader()}
-     */
-    @Deprecated
-    default Optional<CamelClusterMember> getMaster() {
-        return getLeader();
-    }
-
-    /**
      * Provides the leader member if elected.
      *
      * @return the leader member.
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
index 68f1344..b5546f6 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
@@ -289,9 +289,12 @@ public abstract class AbstractCamelInvocationHandler implements InvocationHandle
         // re-create it (its a shared static instance)
         if (executorService == null || executorService.isTerminated() || executorService.isShutdown()) {
             // try to lookup a pool first based on id/profile
-            executorService = context.getExecutorServiceStrategy().lookup(CamelInvocationHandler.class, "CamelInvocationHandler", "CamelInvocationHandler");
+            executorService = context.getRegistry().lookupByNameAndType("CamelInvocationHandler", ExecutorService.class);
             if (executorService == null) {
-                executorService = context.getExecutorServiceStrategy().newDefaultThreadPool(CamelInvocationHandler.class, "CamelInvocationHandler");
+                executorService = context.getExecutorServiceManager().newThreadPool(CamelInvocationHandler.class, "CamelInvocationHandler", "CamelInvocationHandler");
+            }
+            if (executorService == null) {
+                executorService = context.getExecutorServiceManager().newDefaultThreadPool(CamelInvocationHandler.class, "CamelInvocationHandler");
             }
         }
         return executorService;
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java
index c12320d..7c441bd 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.bean;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.LRUCache;
@@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
 /**
  * The <a href="http://camel.apache.org/bean.html">Bean Component</a> is for invoking Java beans from Camel.
  */
-public class BeanComponent extends UriEndpointComponent {
+public class BeanComponent extends DefaultComponent {
 
     private static final Logger LOG = LoggerFactory.getLogger(BeanComponent.class);
     // use an internal soft cache for BeanInfo as they are costly to introspect
@@ -43,11 +43,11 @@ public class BeanComponent extends UriEndpointComponent {
     private Boolean cache;
 
     public BeanComponent() {
-        super(BeanEndpoint.class);
+        super();
     }
     
     public BeanComponent(Class<? extends Endpoint> endpointClass) {
-        super(endpointClass);
+        super();
     }
 
     // Implementation methods
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
index 4dc9521..3b6a1c3 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
@@ -44,8 +44,6 @@ import org.apache.camel.Header;
 import org.apache.camel.Headers;
 import org.apache.camel.Message;
 import org.apache.camel.OutHeaders;
-import org.apache.camel.Properties;
-import org.apache.camel.Property;
 import org.apache.camel.PropertyInject;
 import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.language.LanguageAnnotation;
@@ -964,14 +962,9 @@ public class BeanInfo {
             return ExpressionBuilder.attachmentObjectsExpression();
         } else if (annotation instanceof Attachments) {
             return ExpressionBuilder.attachmentsExpression();
-        } else if (annotation instanceof Property) {
-            Property propertyAnnotation = (Property)annotation;
-            return ExpressionBuilder.exchangePropertyExpression(propertyAnnotation.value());
         } else if (annotation instanceof ExchangeProperty) {
             ExchangeProperty propertyAnnotation = (ExchangeProperty)annotation;
             return ExpressionBuilder.exchangePropertyExpression(propertyAnnotation.value());
-        } else if (annotation instanceof Properties) {
-            return ExpressionBuilder.exchangePropertiesExpression();
         } else if (annotation instanceof ExchangeProperties) {
             return ExpressionBuilder.exchangePropertiesExpression();
         } else if (annotation instanceof Header) {
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/CamelInvocationHandler.java b/camel-core/src/main/java/org/apache/camel/component/bean/CamelInvocationHandler.java
index 0b45b3f22..e524b48 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/CamelInvocationHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/CamelInvocationHandler.java
@@ -33,11 +33,6 @@ public class CamelInvocationHandler extends AbstractCamelInvocationHandler imple
     private final MethodInfoCache methodInfoCache;
     private final boolean binding;
 
-    @Deprecated
-    public CamelInvocationHandler(Endpoint endpoint, Producer producer, MethodInfoCache methodInfoCache) {
-        this(endpoint, false, producer, methodInfoCache);
-    }
-
     public CamelInvocationHandler(Endpoint endpoint, boolean binding, Producer producer, MethodInfoCache methodInfoCache) {
         super(endpoint, producer);
         this.binding = binding;
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/ProxyHelper.java b/camel-core/src/main/java/org/apache/camel/component/bean/ProxyHelper.java
index 0cf61e6..5e761a03 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/ProxyHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/ProxyHelper.java
@@ -37,16 +37,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxyObject(Endpoint endpoint, Producer producer, ClassLoader classLoader, Class<T>[] interfaces, MethodInfoCache methodCache) {
-        return createProxyObject(endpoint, true, producer, classLoader, interfaces, methodCache);
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     @SuppressWarnings("unchecked")
     public static <T> T createProxyObject(Endpoint endpoint, boolean binding, Producer producer, ClassLoader classLoader, Class<T>[] interfaces, MethodInfoCache methodCache) {
@@ -55,16 +45,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxy(Endpoint endpoint, ClassLoader cl, Class<T> interfaceClass, MethodInfoCache methodCache) throws Exception {
-        return createProxy(endpoint, true, cl, toArray(interfaceClass), methodCache);
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     public static <T> T createProxy(Endpoint endpoint, boolean binding, ClassLoader cl, Class<T> interfaceClass, MethodInfoCache methodCache) throws Exception {
         return createProxy(endpoint, binding, cl, toArray(interfaceClass), methodCache);
@@ -72,16 +52,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxy(Endpoint endpoint, ClassLoader cl, Class<T>[] interfaceClasses, MethodInfoCache methodCache) throws Exception {
-        return createProxy(endpoint, true, cl, interfaceClasses, methodCache);
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     public static <T> T createProxy(Endpoint endpoint, boolean binding, ClassLoader cl, Class<T>[] interfaceClasses, MethodInfoCache methodCache) throws Exception {
         Producer producer = DeferServiceFactory.createProducer(endpoint);
@@ -98,16 +68,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxy(Endpoint endpoint, ClassLoader cl, Class<T>... interfaceClasses) throws Exception {
-        return createProxy(endpoint, true, cl, interfaceClasses);
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     public static <T> T createProxy(Endpoint endpoint, boolean binding, ClassLoader cl, Class<T>... interfaceClasses) throws Exception {
         return createProxy(endpoint, binding, cl, interfaceClasses, createMethodInfoCache(endpoint));
@@ -122,16 +82,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxy(Endpoint endpoint, Class<T>... interfaceClasses) throws Exception {
-        return createProxy(endpoint, true, interfaceClasses);
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     public static <T> T createProxy(Endpoint endpoint, boolean binding, Class<T>... interfaceClasses) throws Exception {
         return createProxy(endpoint, binding, getClassLoader(interfaceClasses), interfaceClasses);
@@ -146,16 +96,6 @@ public final class ProxyHelper {
 
     /**
      * Creates a Proxy which sends the exchange to the endpoint.
-     *
-     * @deprecated use the same method name with binding as parameter
-     */
-    @Deprecated
-    public static <T> T createProxy(Endpoint endpoint, Producer producer, Class<T>... interfaceClasses) throws Exception {
-        return createProxyObject(endpoint, true, producer, getClassLoader(interfaceClasses), interfaceClasses, createMethodInfoCache(endpoint));
-    }
-
-    /**
-     * Creates a Proxy which sends the exchange to the endpoint.
      */
     public static <T> T createProxy(Endpoint endpoint, boolean binding, Producer producer, Class<T>... interfaceClasses) throws Exception {
         return createProxyObject(endpoint, binding, producer, getClassLoader(interfaceClasses), interfaceClasses, createMethodInfoCache(endpoint));
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingComponent.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingComponent.java
deleted file mode 100644
index b1e8264..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingComponent.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.binding;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
-import org.apache.camel.spi.Binding;
-import org.apache.camel.util.ObjectHelper;
-
-import static org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint;
-
-/**
- * A composite {@link org.apache.camel.Component} which creates a {@link BindingEndpoint} from a
- * configured {@link Binding} instance and using the optional {@link #setUriPrefix(String)}
- * and {@link #setUriPostfix(String)} to create the underlying endpoint from the remaining URI
- *
- * @deprecated use {@link org.apache.camel.component.binding.BindingNameComponent}
- */
-@Deprecated
-public class BindingComponent extends DefaultComponent {
-    private Binding binding;
-    private String uriPrefix;
-    private String uriPostfix;
-
-    public BindingComponent() {
-    }
-
-    public BindingComponent(Binding binding) {
-        this.binding = binding;
-    }
-
-    public BindingComponent(Binding binding, String uriPrefix) {
-        this(binding);
-        this.uriPrefix = uriPrefix;
-    }
-
-    public BindingComponent(Binding binding, String uriPrefix, String uriPostfix) {
-        this(binding, uriPrefix);
-        this.uriPostfix = uriPostfix;
-    }
-
-    public Binding getBinding() {
-        return binding;
-    }
-
-    public void setBinding(Binding binding) {
-        this.binding = binding;
-    }
-
-    public String getUriPostfix() {
-        return uriPostfix;
-    }
-
-    public void setUriPostfix(String uriPostfix) {
-        this.uriPostfix = uriPostfix;
-    }
-
-    public String getUriPrefix() {
-        return uriPrefix;
-    }
-
-    public void setUriPrefix(String uriPrefix) {
-        this.uriPrefix = uriPrefix;
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        Binding bindingValue = getBinding();
-        ObjectHelper.notNull(bindingValue, "binding");
-
-        CamelContext camelContext = getCamelContext();
-        String delegateURI = createDelegateURI(remaining, parameters);
-        Endpoint delegate = getMandatoryEndpoint(camelContext, delegateURI);
-        return new BindingEndpoint(uri, this, bindingValue, delegate);
-    }
-
-    protected String createDelegateURI(String remaining, Map<String, Object> parameters) {
-        return getOrEmpty(uriPrefix) + remaining + getOrEmpty(uriPostfix);
-    }
-
-    protected static String getOrEmpty(String text) {
-        return text != null ? text : "";
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingConsumerProcessor.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingConsumerProcessor.java
deleted file mode 100644
index f6d8b80..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingConsumerProcessor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.binding;
-
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.support.ServiceSupport;
-import org.apache.camel.util.ServiceHelper;
-
-/**
- * Applies a {@link org.apache.camel.spi.Binding} to a consumer
- */
-public class BindingConsumerProcessor extends ServiceSupport implements Processor {
-    private final BindingEndpoint endpoint;
-    private final Processor delegateProcessor;
-    private final Processor bindingProcessor;
-
-    public BindingConsumerProcessor(BindingEndpoint endpoint, Processor delegateProcessor) {
-        this.endpoint = endpoint;
-        this.delegateProcessor = delegateProcessor;
-        this.bindingProcessor = endpoint.getBinding().createConsumeProcessor();
-    }
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        endpoint.pipelineBindingProcessor(bindingProcessor, exchange, delegateProcessor);
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        // inject CamelContext
-        if (bindingProcessor instanceof CamelContextAware) {
-            ((CamelContextAware) bindingProcessor).setCamelContext(endpoint.getCamelContext());
-        }
-        if (delegateProcessor instanceof CamelContextAware) {
-            ((CamelContextAware) delegateProcessor).setCamelContext(endpoint.getCamelContext());
-        }
-        ServiceHelper.startServices(bindingProcessor, delegateProcessor);
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        ServiceHelper.stopServices(delegateProcessor, bindingProcessor);
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
deleted file mode 100644
index 0af96df..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.binding;
-
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.Component;
-import org.apache.camel.Consumer;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.processor.PipelineHelper;
-import org.apache.camel.spi.Binding;
-import org.apache.camel.spi.HasBinding;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriPath;
-import org.apache.camel.util.CamelContextHelper;
-import org.apache.camel.util.ServiceHelper;
-
-import static org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint;
-
-/**
- * The binding component is used for as a of wrapping an Endpoint in a contract with a data format.
- *
- * In Camel terms a binding is a way of wrapping an Endpoint in a contract; such as a Data Format,
- * a Content Enricher or validation step. Bindings are completely optional and you can choose to use
- * them on any camel endpoint.
- * Bindings are inspired by the work of SwitchYard project adding service contracts to various technologies
- * like Camel and many others. But rather than the SwitchYard approach of wrapping Camel in SCA,
- * Camel Bindings provide a way of wrapping Camel endpoints with contracts inside the Camel framework itself;
- * so you can use them easily inside any Camel route.
- *
- * Applies a {@link org.apache.camel.spi.Binding} to an underlying {@link Endpoint} so that the binding processes messages
- * before its sent to the endpoint and processes messages received by the endpoint consumer before its passed
- * to the real consumer.
- *
- * @deprecated use {@link org.apache.camel.spi.Contract} instead
- */
-@Deprecated @Metadata(deprecationNode = "Use org.apache.camel.spi.Contract instead")
-@UriEndpoint(firstVersion = "2.11.0", scheme = "binding", title = "Binding", syntax = "binding:bindingName:delegateUri",
-    consumerClass = BindingConsumerProcessor.class, label = "core,transformation")
-public class BindingEndpoint extends DefaultEndpoint implements HasBinding {
-
-    @UriPath @Metadata(required = "true")
-    private final String bindingName;
-    @UriPath @Metadata(required = "true")
-    private final String delegateUri;
-    private Binding binding;
-    private Endpoint delegate;
-
-    @Deprecated
-    public BindingEndpoint(String uri, Component component, Binding binding, Endpoint delegate) {
-        super(uri, component);
-        this.binding = binding;
-        this.delegate = delegate;
-        this.bindingName = null;
-        this.delegateUri = null;
-    }
-
-    public BindingEndpoint(String uri, Component component, String bindingName, String delegateUri) {
-        super(uri, component);
-        this.bindingName = bindingName;
-        this.delegateUri = delegateUri;
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        return new BindingProducer(this);
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        Processor bindingProcessor = new BindingConsumerProcessor(this, processor);
-        return delegate.createConsumer(bindingProcessor);
-    }
-
-    @Override
-    public boolean isSingleton() {
-        return true;
-    }
-
-    @Override
-    public Binding getBinding() {
-        return binding;
-    }
-
-    public Endpoint getDelegate() {
-        return delegate;
-    }
-
-    /**
-     * Name of the binding to lookup in the Camel registry.
-     */
-    public String getBindingName() {
-        return bindingName;
-    }
-
-    /**
-     * Uri of the delegate endpoint.
-     */
-    public String getDelegateUri() {
-        return delegateUri;
-    }
-
-    /**
-     * Applies the {@link Binding} processor to the given exchange before passing it on to the delegateProcessor (either a producer or consumer)
-     */
-    public void pipelineBindingProcessor(Processor bindingProcessor, Exchange exchange, Processor delegateProcessor) throws Exception {
-        bindingProcessor.process(exchange);
-
-        Exchange delegateExchange = PipelineHelper.createNextExchange(exchange);
-        delegateProcessor.process(delegateExchange);
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        if (binding == null) {
-            binding = CamelContextHelper.mandatoryLookup(getCamelContext(), bindingName, Binding.class);
-        }
-        if (delegate == null) {
-            delegate = getMandatoryEndpoint(getCamelContext(), delegateUri);
-        }
-
-        // inject CamelContext
-        if (binding instanceof CamelContextAware) {
-            ((CamelContextAware) binding).setCamelContext(getCamelContext());
-        }
-        ServiceHelper.startServices(delegate, binding);
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        ServiceHelper.stopServices(delegate, binding);
-        super.doStop();
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingNameComponent.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingNameComponent.java
deleted file mode 100644
index 31b32db..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingNameComponent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.binding;
-
-import java.util.Map;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
-
-/**
- * The <a href="http://camel.apache.org/binding.html>Binding Component<a/> is for composing a Camel component with a Camel data-format as a single binding unit.
- * <p/>
- *
- * A Binding component using the URI form <code>binding:nameOfBinding:endpointURI</code>
- * to extract the binding name which is then resolved from the registry and used to create a
- * {@link BindingEndpoint} from the underlying {@link Endpoint}
- */
-public class BindingNameComponent extends UriEndpointComponent {
-
-    protected static final String BAD_FORMAT_MESSAGE = "URI should be of the format binding:nameOfBinding:endpointURI";
-
-    public BindingNameComponent() {
-        super(BindingEndpoint.class);
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        int idx = remaining.indexOf(":");
-        if (idx <= 0) {
-            throw new IllegalArgumentException(BAD_FORMAT_MESSAGE);
-        }
-        String bindingName = remaining.substring(0, idx);
-        String delegateURI = remaining.substring(idx + 1);
-        if (delegateURI.isEmpty()) {
-            throw new IllegalArgumentException(BAD_FORMAT_MESSAGE);
-        }
-        return new BindingEndpoint(uri, this, bindingName, delegateURI);
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingProducer.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingProducer.java
deleted file mode 100644
index 4d728e7..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingProducer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.binding;
-
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.impl.DefaultProducer;
-import org.apache.camel.util.ServiceHelper;
-
-/**
- * A {@link Producer} which applies a {@link org.apache.camel.spi.Binding} before invoking the underlying {@link Producer} on the {@link Endpoint}
- */
-public class BindingProducer extends DefaultProducer {
-    private final BindingEndpoint endpoint;
-    private final Processor bindingProcessor;
-    private final Producer delegateProducer;
-
-    public BindingProducer(BindingEndpoint endpoint) throws Exception {
-        super(endpoint);
-        this.endpoint = endpoint;
-        this.bindingProcessor = endpoint.getBinding().createProduceProcessor();
-        this.delegateProducer = endpoint.getDelegate().createProducer();
-    }
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        endpoint.pipelineBindingProcessor(bindingProcessor, exchange, delegateProducer);
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        // inject CamelContext
-        if (bindingProcessor instanceof CamelContextAware) {
-            ((CamelContextAware) bindingProcessor).setCamelContext(getEndpoint().getCamelContext());
-        }
-        if (delegateProducer instanceof CamelContextAware) {
-            ((CamelContextAware) delegateProducer).setCamelContext(getEndpoint().getCamelContext());
-        }
-        ServiceHelper.startServices(bindingProcessor, delegateProducer);
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        ServiceHelper.stopServices(delegateProducer, bindingProcessor);
-        super.doStop();
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/package.html b/camel-core/src/main/java/org/apache/camel/component/binding/package.html
deleted file mode 100644
index 525f550..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/binding/package.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<html>
-<head>
-</head>
-<body>
-
-The <a href="http://camel.apache.org/binding.html">Binding Component</a> which is
-a way of wrapping an Endpoint in a contract; such as a Data Format, a Content Enricher or validation step.
-
-</body>
-</html>
diff --git a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseComponent.java b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseComponent.java
index e3a6716..9ae9ec8 100644
--- a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.browse;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 
 /**
  * The <a href="http://camel.apache.org/browse.html">Browse Component</a> provides a simple
@@ -27,10 +27,10 @@ import org.apache.camel.impl.UriEndpointComponent;
  *
  * @version 
  */
-public class BrowseComponent extends UriEndpointComponent {
+public class BrowseComponent extends DefaultComponent {
 
     public BrowseComponent() {
-        super(BrowseEndpoint.class);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusComponent.java b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusComponent.java
index 25bac71..257d85e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusComponent.java
@@ -20,17 +20,17 @@ import java.util.Map;
 import java.util.concurrent.ExecutorService;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 
 /**
  * The <a href="http://camel.apache.org/controlbus.html">Control Bus component</a> allows sending messages to a control-bus endpoint to control the lifecycle of routes.
  */
-public class ControlBusComponent extends UriEndpointComponent {
+public class ControlBusComponent extends DefaultComponent {
 
     private ExecutorService executorService;
 
     public ControlBusComponent() {
-        super(ControlBusEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
index 90333fb..f10b094 100644
--- a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
@@ -157,19 +157,19 @@ public class ControlBusProducer extends DefaultAsyncProducer {
             try {
                 if ("start".equals(action)) {
                     log.debug("Starting route: {}", id);
-                    getEndpoint().getCamelContext().startRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().startRoute(id);
                 } else if ("stop".equals(action)) {
                     log.debug("Stopping route: {}", id);
-                    getEndpoint().getCamelContext().stopRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().stopRoute(id);
                 } else if ("suspend".equals(action)) {
                     log.debug("Suspending route: {}", id);
-                    getEndpoint().getCamelContext().suspendRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().suspendRoute(id);
                 } else if ("resume".equals(action)) {
                     log.debug("Resuming route: {}", id);
-                    getEndpoint().getCamelContext().resumeRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().resumeRoute(id);
                 } else if ("restart".equals(action)) {
                     log.debug("Restarting route: {}", id);
-                    getEndpoint().getCamelContext().stopRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().stopRoute(id);
                     int delay = getEndpoint().getRestartDelay();
                     if (delay > 0) {
                         try {
@@ -179,10 +179,10 @@ public class ControlBusProducer extends DefaultAsyncProducer {
                             // ignore
                         }
                     }
-                    getEndpoint().getCamelContext().startRoute(id);
+                    getEndpoint().getCamelContext().getRouteController().startRoute(id);
                 } else if ("status".equals(action)) {
                     log.debug("Route status: {}", id);
-                    ServiceStatus status = getEndpoint().getCamelContext().getRouteStatus(id);
+                    ServiceStatus status = getEndpoint().getCamelContext().getRouteController().getRouteStatus(id);
                     if (status != null) {
                         result = status.name();
                     }
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
index 01a9961..aff3c81 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.dataformat;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.StringHelper;
@@ -29,10 +29,10 @@ import org.apache.camel.util.StringHelper;
  *
  * @version
  */
-public class DataFormatComponent extends UriEndpointComponent {
+public class DataFormatComponent extends DefaultComponent {
 
     public DataFormatComponent() {
-        super(DataFormatEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetComponent.java b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetComponent.java
index 069c21a..fed4f34 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.dataset;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.util.CamelContextHelper;
 
 /**
@@ -27,10 +27,10 @@ import org.apache.camel.util.CamelContextHelper;
  *
  * @version 
  */
-public class DataSetComponent extends UriEndpointComponent {
+public class DataSetComponent extends DefaultComponent {
 
     public DataSetComponent() {
-        super(DataSetEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
index a781d4f..ff40053 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
@@ -64,13 +64,6 @@ public class DataSetEndpoint extends MockEndpoint implements Service {
     @UriParam(enums = "strict,lenient,off", defaultValue = "lenient")
     private String dataSetIndex = "lenient";
 
-    @Deprecated
-    public DataSetEndpoint() {
-        this.log = LoggerFactory.getLogger(DataSetEndpoint.class);
-        // optimize as we dont need to copy the exchange
-        setCopyOnExchange(false);
-    }
-
     public DataSetEndpoint(String endpointUri, Component component, DataSet dataSet) {
         super(endpointUri, component);
         this.dataSet = dataSet;
diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java b/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java
index 5b385b1..81c10c7 100644
--- a/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java
@@ -20,7 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ServiceHelper;
 
@@ -29,7 +29,7 @@ import org.apache.camel.util.ServiceHelper;
  *
  * @version
  */
-public class DirectComponent extends UriEndpointComponent {
+public class DirectComponent extends DefaultComponent {
 
     // must keep a map of consumers on the component to ensure endpoints can lookup old consumers
     // later in case the DirectEndpoint was re-created due the old was evicted from the endpoints LRUCache
@@ -41,7 +41,7 @@ public class DirectComponent extends UriEndpointComponent {
     private long timeout = 30000L;
 
     public DirectComponent() {
-        super(DirectEndpoint.class);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java
index cacaaa1..d8d3a2f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java
@@ -24,14 +24,14 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.Metadata;
 
 /**
  * The <a href="http://camel.apache.org/direct-vm.html">Direct VM Component</a> manages {@link DirectVmEndpoint} and holds the list of named direct-vm endpoints.
  */
-public class DirectVmComponent extends UriEndpointComponent {
+public class DirectVmComponent extends DefaultComponent {
 
     private static final AtomicInteger START_COUNTER = new AtomicInteger();
 
@@ -49,7 +49,7 @@ public class DirectVmComponent extends UriEndpointComponent {
     private boolean propagateProperties = true;
 
     public DirectVmComponent() {
-        super(DirectVmEndpoint.class);
+        super();
     }
 
     /**
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
index 98eb984..f92273e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
@@ -52,7 +52,7 @@ public class DirectVmProducer extends DefaultAsyncProducer {
         final HeaderFilterStrategy headerFilterStrategy = endpoint.getHeaderFilterStrategy();
 
         // Only clone the Exchange if we actually need to filter out properties or headers.
-        final Exchange submitted = (!endpoint.isPropagateProperties() || headerFilterStrategy != null) ? exchange.copy(true) : exchange;
+        final Exchange submitted = (!endpoint.isPropagateProperties() || headerFilterStrategy != null) ? exchange.copy() : exchange;
 
         // Clear properties in the copy if we are not propagating them.
         if (!endpoint.isPropagateProperties()) {
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtensionHelper.java b/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtensionHelper.java
deleted file mode 100644
index 2bb93ae..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtensionHelper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.extension;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.util.ObjectHelper;
-
-public final class ComponentExtensionHelper {
-    private ComponentExtensionHelper() {
-    }
-
-    /**
-     * @deprecated use {@link ObjectHelper#trySetCamelContext(Object, CamelContext)}
-     */
-    @Deprecated
-    public static <T> T trySetCamelContext(T object, CamelContext camelContext) {
-        return ObjectHelper.trySetCamelContext(object, camelContext);
-    }
-
-    /**
-     * @deprecated use {@link ObjectHelper#trySetComponent(Object, Component)}
-     */
-    @Deprecated
-    public static <T> T trySetComponent(T object, Component component) {
-        return ObjectHelper.trySetComponent(object, component);
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java b/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
index f9acf0e..d2f9287 100644
--- a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
+++ b/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
@@ -22,9 +22,15 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.camel.Component;
-import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.ErrorAttribute;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.ErrorCode;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.ExceptionErrorAttribute;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.GroupErrorAttribute;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.HttpErrorAttribute;
+import org.apache.camel.component.extension.verifier.ComponentVerifierExtensionHelper.StandardErrorCode;
 import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
 import org.apache.camel.util.ObjectHelper;
+
 /**
  * Defines the interface used for validating component/endpoint parameters. The central method of this
  * interface is {@link #verify(ComponentVerifierExtension.Scope, Map)} which takes a scope and a set of parameters which should be verified.
@@ -49,7 +55,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
      * @param parameters the parameters to verify which are interpreted individually by each component verifier
      * @return the verification result
      */
-    ComponentVerifierExtension.Result verify(ComponentVerifierExtension.Scope scope, Map<String, Object> parameters);
+    Result verify(Scope scope, Map<String, Object> parameters);
 
     /**
      * The result of a verification
@@ -75,12 +81,12 @@ public interface ComponentVerifierExtension extends ComponentExtension {
         }
 
         /**
-         * Scope of the verification. This is the scope given to the call to {@link #verify(ComponentVerifierExtension.Scope, Map)}  and
+         * Scope of the verification. This is the scope given to the call to {@link #verify(Scope, Map)}  and
          * can be used for correlation.
          *
          * @return the scope against which the parameters have been validated.
          */
-        ComponentVerifierExtension.Scope getScope();
+        Scope getScope();
 
         /**
          * Result of the validation as status. This should be the first datum to check after a verification
@@ -88,7 +94,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          *
          * @return the status
          */
-        ComponentVerifierExtension.Result.Status getStatus();
+        Status getStatus();
 
         /**
          * Collection of errors happened for the verification. This list is empty (but non null) if the verification
@@ -96,7 +102,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          *
          * @return a list of errors. Can be empty when verification was successful
          */
-        List<ComponentVerifierExtension.VerificationError> getErrors();
+        List<VerificationError> getErrors();
     }
 
     /**
@@ -123,8 +129,8 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          * @param scope the scope as string, which can be in any case
          * @return the scope enum represented by this string
          */
-        public static ComponentVerifierExtension.Scope fromString(String scope) {
-            for (ComponentVerifierExtension.Scope value : VALUES) {
+        public static Scope fromString(String scope) {
+            for (Scope value : VALUES) {
                 if (ObjectHelper.equal(scope, value.name(), true)) {
                     return value;
                 }
@@ -172,7 +178,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          *
          * @return a number of key/value pair with additional information related to the verification.
          */
-        Map<ComponentVerifierExtension.VerificationError.Attribute, Object> getDetails();
+        Map<Attribute, Object> getDetails();
 
         /**
          * Get a single detail for a given attribute
@@ -180,8 +186,8 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          * @param attribute the attribute to lookup
          * @return the detail value or null if no such attribute exists
          */
-        default Object getDetail(ComponentVerifierExtension.VerificationError.Attribute attribute) {
-            Map<ComponentVerifierExtension.VerificationError.Attribute, Object> details = getDetails();
+        default Object getDetail(Attribute attribute) {
+            Map<Attribute, Object> details = getDetails();
             if (details != null) {
                 return details.get(attribute);
             }
@@ -206,7 +212,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          * @return error code
          */
         static Code asCode(String code) {
-            return new ComponentVerifierExtensionHelper.ErrorCode(code);
+            return new ErrorCode(code);
         }
 
         /**
@@ -218,7 +224,7 @@ public interface ComponentVerifierExtension extends ComponentExtension {
          * @return generated attribute
          */
         static Attribute asAttribute(String attribute) {
-            return new ComponentVerifierExtensionHelper.ErrorAttribute(attribute);
+            return new ErrorAttribute(attribute);
         }
 
         /**
@@ -253,56 +259,56 @@ public interface ComponentVerifierExtension extends ComponentExtension {
             /**
              * Authentication failed
              */
-            StandardCode AUTHENTICATION = new ComponentVerifierExtensionHelper.StandardErrorCode("AUTHENTICATION");
+            StandardCode AUTHENTICATION = new StandardErrorCode("AUTHENTICATION");
             /**
              * An exception occurred
              */
-            StandardCode EXCEPTION = new ComponentVerifierExtensionHelper.StandardErrorCode("EXCEPTION");
+            StandardCode EXCEPTION = new StandardErrorCode("EXCEPTION");
             /**
              * Internal error while performing the verification
              */
-            StandardCode INTERNAL = new ComponentVerifierExtensionHelper.StandardErrorCode("INTERNAL");
+            StandardCode INTERNAL = new StandardErrorCode("INTERNAL");
             /**
              * A mandatory parameter is missing
              */
-            StandardCode MISSING_PARAMETER = new ComponentVerifierExtensionHelper.StandardErrorCode("MISSING_PARAMETER");
+            StandardCode MISSING_PARAMETER = new StandardErrorCode("MISSING_PARAMETER");
             /**
              * A given parameter is not known to the component
              */
-            StandardCode UNKNOWN_PARAMETER = new ComponentVerifierExtensionHelper.StandardErrorCode("UNKNOWN_PARAMETER");
+            StandardCode UNKNOWN_PARAMETER = new StandardErrorCode("UNKNOWN_PARAMETER");
             /**
              * A given parameter is illegal
              */
-            StandardCode ILLEGAL_PARAMETER = new ComponentVerifierExtensionHelper.StandardErrorCode("ILLEGAL_PARAMETER");
+            StandardCode ILLEGAL_PARAMETER = new StandardErrorCode("ILLEGAL_PARAMETER");
             /**
-             * A combination of parameters is illegal. See {@link ComponentVerifierExtension.VerificationError#getParameterKeys()} for the set
+             * A combination of parameters is illegal. See {@link VerificationError#getParameterKeys()} for the set
              * of affected parameters
              */
-            StandardCode ILLEGAL_PARAMETER_GROUP_COMBINATION = new ComponentVerifierExtensionHelper.StandardErrorCode("ILLEGAL_PARAMETER_GROUP_COMBINATION");
+            StandardCode ILLEGAL_PARAMETER_GROUP_COMBINATION = new StandardErrorCode("ILLEGAL_PARAMETER_GROUP_COMBINATION");
             /**
              * A parameter <em>value</em> is not valid
              */
-            StandardCode ILLEGAL_PARAMETER_VALUE = new ComponentVerifierExtensionHelper.StandardErrorCode("ILLEGAL_PARAMETER_VALUE");
+            StandardCode ILLEGAL_PARAMETER_VALUE = new StandardErrorCode("ILLEGAL_PARAMETER_VALUE");
             /**
              * A group of parameters is not complete in order to be valid
              */
-            StandardCode INCOMPLETE_PARAMETER_GROUP = new ComponentVerifierExtensionHelper.StandardErrorCode("INCOMPLETE_PARAMETER_GROUP");
+            StandardCode INCOMPLETE_PARAMETER_GROUP = new StandardErrorCode("INCOMPLETE_PARAMETER_GROUP");
             /**
              * The verification is not supported
              */
-            StandardCode UNSUPPORTED = new ComponentVerifierExtensionHelper.StandardErrorCode("UNSUPPORTED");
+            StandardCode UNSUPPORTED = new StandardErrorCode("UNSUPPORTED");
             /**
-             * The requested {@link ComponentVerifierExtension.Scope} is not supported
+             * The requested {@link Scope} is not supported
              */
-            StandardCode UNSUPPORTED_SCOPE = new ComponentVerifierExtensionHelper.StandardErrorCode("UNSUPPORTED_SCOPE");
+            StandardCode UNSUPPORTED_SCOPE = new StandardErrorCode("UNSUPPORTED_SCOPE");
             /**
              * The requested {@link Component} is not supported
              */
-            StandardCode UNSUPPORTED_COMPONENT = new ComponentVerifierExtensionHelper.StandardErrorCode("UNSUPPORTED_COMPONENT");
+            StandardCode UNSUPPORTED_COMPONENT = new StandardErrorCode("UNSUPPORTED_COMPONENT");
             /**
-             * Generic error which is explained in more details with {@link ComponentVerifierExtension.VerificationError#getDetails()}
+             * Generic error which is explained in more details with {@link VerificationError#getDetails()}
              */
-            StandardCode GENERIC = new ComponentVerifierExtensionHelper.StandardErrorCode("GENERIC");
+            StandardCode GENERIC = new StandardErrorCode("GENERIC");
         }
 
         /**
@@ -342,11 +348,11 @@ public interface ComponentVerifierExtension extends ComponentExtension {
              * The exception object that has been thrown. Note that this can be a complex
              * object and can cause large content when e.g. serialized as JSON
              */
-            ExceptionAttribute EXCEPTION_INSTANCE = new ComponentVerifierExtensionHelper.ExceptionErrorAttribute("EXCEPTION_INSTANCE");
+            ExceptionAttribute EXCEPTION_INSTANCE = new ExceptionErrorAttribute("EXCEPTION_INSTANCE");
             /**
              * The exception class
              */
-            ExceptionAttribute EXCEPTION_CLASS = new ComponentVerifierExtensionHelper.ExceptionErrorAttribute("EXCEPTION_CLASS");
+            ExceptionAttribute EXCEPTION_CLASS = new ExceptionErrorAttribute("EXCEPTION_CLASS");
         }
 
         /**
@@ -356,16 +362,16 @@ public interface ComponentVerifierExtension extends ComponentExtension {
             /**
              * The erroneous HTTP code that occurred
              */
-            HttpAttribute HTTP_CODE = new ComponentVerifierExtensionHelper.HttpErrorAttribute("HTTP_CODE");
+            HttpAttribute HTTP_CODE = new HttpErrorAttribute("HTTP_CODE");
             /**
              * HTTP response's body
              */
-            HttpAttribute HTTP_TEXT = new ComponentVerifierExtensionHelper.HttpErrorAttribute("HTTP_TEXT");
+            HttpAttribute HTTP_TEXT = new HttpErrorAttribute("HTTP_TEXT");
             /**
              * If given as details, specifies that a redirect happened and the
              * content of this detail is the redirect URL
              */
-            HttpAttribute HTTP_REDIRECT = new ComponentVerifierExtensionHelper.HttpErrorAttribute("HTTP_REDIRECT");
+            HttpAttribute HTTP_REDIRECT = new HttpErrorAttribute("HTTP_REDIRECT");
         }
 
         /**
@@ -375,11 +381,11 @@ public interface ComponentVerifierExtension extends ComponentExtension {
             /**
              * Group name
              */
-            GroupAttribute GROUP_NAME = new ComponentVerifierExtensionHelper.GroupErrorAttribute("GROUP_NAME");
+            GroupAttribute GROUP_NAME = new GroupErrorAttribute("GROUP_NAME");
             /**
              * Options for the group
              */
-            GroupAttribute GROUP_OPTIONS = new ComponentVerifierExtensionHelper.GroupErrorAttribute("GROUP_OPTIONS");
+            GroupAttribute GROUP_OPTIONS = new GroupErrorAttribute("GROUP_OPTIONS");
         }
     }
 }
\ No newline at end of file
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java b/camel-core/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
index b123ab2..3de4638 100644
--- a/camel-core/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
+++ b/camel-core/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
@@ -25,7 +25,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Component;
 import org.apache.camel.ComponentAware;
-import org.apache.camel.ComponentVerifier;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
 import org.apache.camel.runtimecatalog.EndpointValidationResult;
@@ -36,7 +35,7 @@ import org.apache.camel.util.IntrospectionSupport;
 
 import static org.apache.camel.util.StreamUtils.stream;
 
-public class DefaultComponentVerifierExtension implements ComponentVerifierExtension, ComponentVerifier, CamelContextAware, ComponentAware {
+public class DefaultComponentVerifierExtension implements ComponentVerifierExtension, CamelContextAware, ComponentAware {
     private final String defaultScheme;
     private Component component;
     private CamelContext camelContext;
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java b/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
index baa86c3..1bd1b6a 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java
@@ -17,21 +17,16 @@
 package org.apache.camel.component.file;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.ComponentConfiguration;
-import org.apache.camel.spi.EndpointCompleter;
 import org.apache.camel.util.FileUtil;
-import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 
 /**
  *  * The <a href="http://camel.apache.org/file.html">File Component</a> provides access to file systems.
  */
-public class FileComponent extends GenericFileComponent<File> implements EndpointCompleter {
+public class FileComponent extends GenericFileComponent<File> {
     /**
      * GenericFile property on Camel Exchanges.
      */
@@ -43,12 +38,10 @@ public class FileComponent extends GenericFileComponent<File> implements Endpoin
     public static final String DEFAULT_LOCK_FILE_POSTFIX = ".camelLock";
 
     public FileComponent() {
-        setEndpointClass(FileEndpoint.class);
     }
 
     public FileComponent(CamelContext context) {
         super(context);
-        setEndpointClass(FileEndpoint.class);
     }
 
     protected GenericFileEndpoint<File> buildFileEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
@@ -75,52 +68,4 @@ public class FileComponent extends GenericFileComponent<File> implements Endpoin
         // noop
     }
 
-    public List<String> completeEndpointPath(ComponentConfiguration configuration, String completionText) {
-        boolean empty = ObjectHelper.isEmpty(completionText);
-        String pattern = completionText;
-        File file = new File(completionText);
-        String prefix = completionText;
-        if (file.exists()) {
-            pattern = "";
-        } else {
-            String startPath = ".";
-            if (!empty) {
-                int idx = completionText.lastIndexOf('/');
-                if (idx >= 0) {
-                    startPath = completionText.substring(0, idx);
-                    if (startPath.length() == 0) {
-                        startPath = "/";
-                    }
-                    pattern = completionText.substring(idx + 1);
-                }
-            }
-            file = new File(startPath);
-            prefix = startPath;
-        }
-        if (prefix.length() > 0 && !prefix.endsWith("/")) {
-            prefix += "/";
-        }
-        if (prefix.equals("./")) {
-            prefix = "";
-        }
-        File[] list = file.listFiles();
-        List<String> answer = new ArrayList<>();
-        for (File aFile : list) {
-            String name = aFile.getName();
-            if (pattern.length() == 0 || name.contains(pattern)) {
-                if (isValidEndpointCompletion(configuration, completionText, aFile)) {
-                    answer.add(prefix + name);
-                }
-            }
-        }
-        return answer;
-    }
-
-    /**
-     * Returns true if this is a valid file for completion. By default we should ignore files that start with a "."
-     */
-    protected boolean isValidEndpointCompletion(ComponentConfiguration configuration, String completionText,
-                                           File file) {
-        return !file.getName().startsWith(".");
-    }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java b/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
index 86cdd97..65aebda 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
@@ -180,19 +180,6 @@ public class FileConsumer extends GenericFileConsumer<File> {
      *
      * @param endpointPath the starting directory the endpoint was configured with
      * @param file the source file
-     * @return wrapped as a GenericFile
-     * @deprecated use {@link #asGenericFile(String, File, String, boolean)}
-     */
-    @Deprecated
-    public static GenericFile<File> asGenericFile(String endpointPath, File file, String charset) {
-        return asGenericFile(endpointPath, file, charset, false);
-    }
-
-    /**
-     * Creates a new GenericFile<File> based on the given file.
-     *
-     * @param endpointPath the starting directory the endpoint was configured with
-     * @param file the source file
      * @param probeContentType whether to probe the content type of the file or not
      * @return wrapped as a GenericFile
      */
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
index 7ca7dd7..666ae02 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
@@ -130,7 +130,7 @@ public class GenericFile<T> implements WrappedFile<T>  {
         Map<String, Object> headers;
 
         exchange.setProperty(FileComponent.FILE_EXCHANGE_FILE, this);
-        GenericFileMessage<T> msg = new GenericFileMessage<>(this);
+        GenericFileMessage<T> msg = new GenericFileMessage<>(exchange, this);
         if (exchange.hasOut()) {
             headers = exchange.getOut().hasHeaders() ? exchange.getOut().getHeaders() : null;
             exchange.setOut(msg);
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
index 4fd9849..91647f8 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
@@ -22,7 +22,7 @@ import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -35,16 +35,16 @@ import static org.apache.camel.util.ObjectHelper.isNotEmpty;
 /**
  * Base class file component. To be extended.
  */
-public abstract class GenericFileComponent<T> extends UriEndpointComponent {
+public abstract class GenericFileComponent<T> extends DefaultComponent {
 
     protected Logger log = LoggerFactory.getLogger(getClass());
 
     public GenericFileComponent() {
-        super(GenericFileEndpoint.class);
+        super();
     }
 
     public GenericFileComponent(CamelContext context) {
-        super(context, GenericFileEndpoint.class);
+        super(context);
     }
 
     protected GenericFileEndpoint<T> createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
index 1cc7d0d..ff01940 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
@@ -681,20 +681,6 @@ public abstract class GenericFileConsumer<T> extends ScheduledBatchPollingConsum
      */
     protected abstract boolean isMatched(GenericFile<T> file, String doneFileName, List<T> files);
 
-    /**
-     * Is the given file already in progress.
-     *
-     * @param file the file
-     * @return <tt>true</tt> if the file is already in progress
-     * @deprecated no longer in use, use {@link org.apache.camel.component.file.GenericFileEndpoint#getInProgressRepository()} instead.
-     */
-    @Deprecated
-    protected boolean isInProgress(GenericFile<T> file) {
-        String key = file.getAbsoluteFilePath();
-        // must use add, to have operation as atomic
-        return !endpoint.getInProgressRepository().add(key);
-    }
-
     protected String evaluateFileExpression() {
         if (fileExpressionResult == null && endpoint.getFileName() != null) {
             // create a dummy exchange as Exchange is needed for expression evaluation
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java
index dbdbfd3..bb71009 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.file;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.impl.DefaultMessage;
 
@@ -26,22 +27,12 @@ import org.apache.camel.impl.DefaultMessage;
 public class GenericFileMessage<T> extends DefaultMessage {
     private GenericFile<T> file;
 
-    /**
-     * @deprecated use {@link #GenericFileMessage(CamelContext)}
-     */
-    @Deprecated
-    public GenericFileMessage() {
-    }
-
     public GenericFileMessage(CamelContext camelContext) {
         super(camelContext);
     }
 
-    /**
-     * @deprecated use {@link #GenericFileMessage(CamelContext, GenericFile)}
-     */
-    @Deprecated
-    public GenericFileMessage(GenericFile<T> file) {
+    public GenericFileMessage(Exchange exchange, GenericFile<T> file) {
+        super(exchange);
         this.file = file;
     }
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java b/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
index a9124fe..3fca7bf 100644
--- a/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
@@ -20,7 +20,7 @@ import java.net.URLDecoder;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Language;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
@@ -32,12 +32,12 @@ import org.apache.camel.util.StringHelper;
  *
  * @version 
  */
-public class LanguageComponent extends UriEndpointComponent {
+public class LanguageComponent extends DefaultComponent {
 
     public static final String RESOURCE = "resource:";
 
     public LanguageComponent() {
-        super(LanguageEndpoint.class);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java b/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
index 5655c09..8d3c7c5 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
@@ -21,7 +21,7 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.LoggingLevel;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.processor.DefaultExchangeFormatter;
 import org.apache.camel.spi.ExchangeFormatter;
 import org.apache.camel.spi.Metadata;
@@ -35,14 +35,14 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-public class LogComponent extends UriEndpointComponent {
+public class LogComponent extends DefaultComponent {
     private static final Logger LOG = LoggerFactory.getLogger(LogComponent.class);
 
     @Metadata(label = "advanced")
     private ExchangeFormatter exchangeFormatter;
 
     public LogComponent() {
-        super(LogEndpoint.class);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java b/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java
index 7f42a89..d0324fd 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/MockComponent.java
@@ -18,9 +18,10 @@ package org.apache.camel.component.mock;
 
 import java.util.Map;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.processor.ThroughputLogger;
 import org.apache.camel.util.CamelLogger;
 
@@ -29,10 +30,14 @@ import org.apache.camel.util.CamelLogger;
  *
  * @version 
  */
-public class MockComponent extends UriEndpointComponent {
+public class MockComponent extends DefaultComponent {
 
     public MockComponent() {
-        super(MockEndpoint.class);
+        super();
+    }
+
+    public MockComponent(CamelContext context) {
+        super(context);
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
index 6bb30e4..9c0663e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
@@ -136,21 +136,14 @@ public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint {
     @UriParam(label = "producer,advanced", defaultValue = "true")
     private boolean copyOnExchange = true;
 
-    public MockEndpoint(String endpointUri, Component component) {
-        super(endpointUri, component);
-        init();
+    public MockEndpoint() {
     }
 
-    @Deprecated
-    public MockEndpoint(String endpointUri) {
-        super(endpointUri);
+    public MockEndpoint(String endpointUri, Component component) {
+        super(endpointUri, component);
         init();
     }
 
-    public MockEndpoint() {
-        this(null);
-    }
-
     /**
      * A helper method to resolve the mock endpoint of the given URI on the given context
      *
@@ -1142,14 +1135,6 @@ public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint {
     }
 
     /**
-     * @deprecated use {@link #setResultMinimumWaitTime(long)}
-     */
-    @Deprecated
-    public void setMinimumResultWaitTime(long resultMinimumWaitTime) {
-        setResultMinimumWaitTime(resultMinimumWaitTime);
-    }
-
-    /**
      * Specifies the expected number of message exchanges that should be
      * received by this endpoint.
      * <p/>
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java b/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
index 005d662..690df1c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
@@ -28,7 +28,7 @@ import java.util.Properties;
 import java.util.stream.Collectors;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.FilePathResolver;
 import org.apache.camel.util.LRUCacheFactory;
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * The <a href="http://camel.apache.org/properties">Properties Component</a> allows you to use property placeholders when defining Endpoint URIs
  */
-public class PropertiesComponent extends UriEndpointComponent {
+public class PropertiesComponent extends DefaultComponent {
 
     /**
      * The default prefix token.
@@ -50,20 +50,6 @@ public class PropertiesComponent extends UriEndpointComponent {
      * The default suffix token.
      */
     public static final String DEFAULT_SUFFIX_TOKEN = "}}";
-    
-    /**
-     * The default prefix token.
-     * @deprecated Use {@link #DEFAULT_PREFIX_TOKEN} instead.
-     */
-    @Deprecated
-    public static final String PREFIX_TOKEN = DEFAULT_PREFIX_TOKEN;
-    
-    /**
-     * The default suffix token.
-     * @deprecated Use {@link #DEFAULT_SUFFIX_TOKEN} instead.
-     */
-    @Deprecated
-    public static final String SUFFIX_TOKEN = DEFAULT_SUFFIX_TOKEN;
 
     /**
      *  Never check system properties.
@@ -124,7 +110,7 @@ public class PropertiesComponent extends UriEndpointComponent {
     private int systemPropertiesMode = SYSTEM_PROPERTIES_MODE_OVERRIDE;
 
     public PropertiesComponent() {
-        super(PropertiesEndpoint.class);
+        super();
         // include out of the box functions
         addFunction(new EnvPropertiesFunction());
         addFunction(new SysPropertiesFunction());
diff --git a/camel-core/src/main/java/org/apache/camel/component/ref/RefComponent.java b/camel-core/src/main/java/org/apache/camel/component/ref/RefComponent.java
index 2f6f6c4..e7a582d 100644
--- a/camel-core/src/main/java/org/apache/camel/component/ref/RefComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/ref/RefComponent.java
@@ -19,17 +19,17 @@ package org.apache.camel.component.ref;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 
 /**
  * The <a href="http://camel.apache.org/ref.html">Ref Component</a> is for lookup of existing endpoints bound in the {@link org.apache.camel.spi.Registry}.
  * <p/>
  * This component uses the <tt>ref:</tt> notation instead of the mostly common <tt>uri:</tt> notation. 
  */
-public class RefComponent extends UriEndpointComponent {
+public class RefComponent extends DefaultComponent {
 
     public RefComponent() {
-        super(RefEndpoint.class);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiComponent.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
index a3646fc..f7e100a 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiComponent.java
@@ -19,15 +19,15 @@ package org.apache.camel.component.rest;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 
 /**
  * Rest API component.
  */
-public class RestApiComponent extends UriEndpointComponent {
+public class RestApiComponent extends DefaultComponent {
 
     public RestApiComponent() {
-        super(RestApiEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
index 24127c7..d2cb33f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
@@ -24,9 +24,7 @@ import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.ComponentVerifier;
 import org.apache.camel.Endpoint;
-import org.apache.camel.VerifiableComponent;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
 import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.model.rest.RestConstants;
@@ -42,7 +40,7 @@ import org.apache.camel.util.URISupport;
  * Rest component.
  */
 @Metadata(label = "verifiers", enums = "parameters,connectivity")
-public class RestComponent extends DefaultComponent implements VerifiableComponent {
+public class RestComponent extends DefaultComponent {
 
     @Metadata(label = "common")
     private String componentName;
@@ -240,8 +238,7 @@ public class RestComponent extends DefaultComponent implements VerifiableCompone
         }
     }
 
-    @Override
-    public ComponentVerifier getVerifier() {
+    public ComponentVerifierExtension getVerifier() {
         return (scope, parameters) -> getExtension(ComponentVerifierExtension.class).orElseThrow(UnsupportedOperationException::new).verify(scope, parameters);
     }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
index 7a7fe76..280e83e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
@@ -21,7 +21,6 @@ import java.util.Map;
 import java.util.Optional;
 
 import org.apache.camel.Component;
-import org.apache.camel.ComponentVerifier;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
 import org.apache.camel.component.extension.verifier.CatalogVerifierCustomizer;
 import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
@@ -34,7 +33,7 @@ import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.function.Suppliers;
 
-public class RestComponentVerifierExtension extends DefaultComponentVerifierExtension implements ComponentVerifier {
+public class RestComponentVerifierExtension extends DefaultComponentVerifierExtension {
     private static final CatalogVerifierCustomizer CUSTOMIZER = new CatalogVerifierCustomizer().excludeUnknown();
 
     RestComponentVerifierExtension() {
diff --git a/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerComponent.java b/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerComponent.java
index e00bbea..a3fe390 100644
--- a/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerComponent.java
@@ -23,10 +23,10 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 
-public class SchedulerComponent extends UriEndpointComponent {
+public class SchedulerComponent extends DefaultComponent {
 
     private final Map<String, ScheduledExecutorService> executors = new HashMap<>();
     private final Map<String, AtomicInteger> refCounts = new HashMap<>();
@@ -35,7 +35,7 @@ public class SchedulerComponent extends UriEndpointComponent {
     private int concurrentTasks = 1;
 
     public SchedulerComponent() {
-        super(SchedulerEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/CollectionProducer.java b/camel-core/src/main/java/org/apache/camel/component/seda/CollectionProducer.java
deleted file mode 100644
index 5795403..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/seda/CollectionProducer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.seda;
-
-import java.util.Collection;
-
-import org.apache.camel.AsyncCallback;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultAsyncProducer;
-
-/**
- * A simple {@link org.apache.camel.Producer} which just appends to a {@link Collection} the {@link Exchange} object.
- *
- * @deprecated will be removed in a future Camel release
- * @version 
- */
-@Deprecated
-public class CollectionProducer extends DefaultAsyncProducer {
-    protected final Collection<Exchange> queue;
-
-    public CollectionProducer(Endpoint endpoint, Collection<Exchange> queue) {
-        super(endpoint);
-        this.queue = queue;
-    }
-
-    public boolean process(Exchange exchange, AsyncCallback callback) {
-        Exchange copy = exchange.copy();
-        queue.add(copy);
-        callback.done(true);
-        return true;
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
index 1337215..7f2431c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
@@ -23,7 +23,7 @@ import java.util.concurrent.BlockingQueue;
 import org.apache.camel.Component;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.SedaConstants;
 import org.slf4j.Logger;
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-public class SedaComponent extends UriEndpointComponent {
+public class SedaComponent extends DefaultComponent {
     protected final Logger log = LoggerFactory.getLogger(getClass());
     protected final int maxConcurrentConsumers = SedaConstants.MAX_CONCURRENT_CONSUMERS;
 
@@ -52,11 +52,11 @@ public class SedaComponent extends UriEndpointComponent {
     private final Map<String, QueueReference> queues = new HashMap<>();
 
     public SedaComponent() {
-        super(SedaEndpoint.class);
+        super();
     }
 
     public SedaComponent(Class<? extends Endpoint> endpointClass) {
-        super(endpointClass);
+        super();
     }
 
     /**
@@ -119,22 +119,6 @@ public class SedaComponent extends UriEndpointComponent {
         this.defaultOfferTimeout = defaultOfferTimeout;
     }
 
-    /**
-     * @deprecated use
-     */
-    @Deprecated
-    public synchronized QueueReference getOrCreateQueue(SedaEndpoint endpoint, Integer size) {
-        return getOrCreateQueue(endpoint, size, null);
-    }
-
-    /**
-     * @deprecated use {@link #getOrCreateQueue(SedaEndpoint, Integer, Boolean, BlockingQueueFactory)}
-     */
-    @Deprecated
-    public synchronized QueueReference getOrCreateQueue(SedaEndpoint endpoint, Integer size, Boolean multipleConsumers) {
-        return getOrCreateQueue(endpoint, size, multipleConsumers, null);
-    }
-
     public synchronized QueueReference getOrCreateQueue(SedaEndpoint endpoint, Integer size, Boolean multipleConsumers, BlockingQueueFactory<Exchange> customQueueFactory) {
         String key = getQueueKey(endpoint.getEndpointUri());
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaProducer.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaProducer.java
index 1201084..8e75292 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaProducer.java
@@ -33,41 +33,21 @@ import org.apache.camel.util.ExchangeHelper;
  */
 public class SedaProducer extends DefaultAsyncProducer {
     
-    /**
-     * @deprecated Better make use of the {@link SedaEndpoint#getQueue()} API which delivers the accurate reference to the queue currently being used.
-     */
-    @Deprecated
-    protected final BlockingQueue<Exchange> queue;
     private final SedaEndpoint endpoint;
     private final WaitForTaskToComplete waitForTaskToComplete;
     private final long timeout;
     private final boolean blockWhenFull;
     private final long offerTimeout;
 
-    /**
-     * @deprecated Use {@link #SedaProducer(SedaEndpoint, WaitForTaskToComplete, long, boolean) the other constructor}.
-     */
-    @Deprecated
-    public SedaProducer(SedaEndpoint endpoint, BlockingQueue<Exchange> queue, WaitForTaskToComplete waitForTaskToComplete, long timeout) {
-        this(endpoint, waitForTaskToComplete, timeout, false, 0);
-    }
-
-    /**
-     * @deprecated Use {@link #SedaProducer(SedaEndpoint, WaitForTaskToComplete, long, boolean) the other constructor}.
-     */
-    @Deprecated
-    public SedaProducer(SedaEndpoint endpoint, BlockingQueue<Exchange> queue, WaitForTaskToComplete waitForTaskToComplete, long timeout, boolean blockWhenFull, long offerTimeout) {
-        this(endpoint, waitForTaskToComplete, timeout, blockWhenFull, offerTimeout);
-    }
-
     public SedaProducer(SedaEndpoint endpoint, WaitForTaskToComplete waitForTaskToComplete, long timeout, boolean blockWhenFull, long offerTimeout) {
         super(endpoint);
-        this.queue = endpoint.getQueue();
         this.endpoint = endpoint;
         this.waitForTaskToComplete = waitForTaskToComplete;
         this.timeout = timeout;
         this.blockWhenFull = blockWhenFull;
         this.offerTimeout = offerTimeout;
+        // Force the creation of the queue
+        endpoint.getQueue();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java b/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
index fe01672..c1b78ba 100644
--- a/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.test;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.URISupport;
 
@@ -31,10 +31,10 @@ import org.apache.camel.util.URISupport;
  *
  * @version 
  */
-public class TestComponent extends UriEndpointComponent {
+public class TestComponent extends DefaultComponent {
 
     public TestComponent() {
-        super(TestEndpoint.class);
+        super();
     }
 
     @Override
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
index e51f0a2..63b8a6f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
@@ -25,7 +25,7 @@ import java.util.Timer;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 
 /**
  * The <a href="http://camel.apache.org/timer.html">Timer Component</a> is for generating message exchanges when a timer fires.
@@ -35,12 +35,12 @@ import org.apache.camel.impl.UriEndpointComponent;
  *
  * @version 
  */
-public class TimerComponent extends UriEndpointComponent {
+public class TimerComponent extends DefaultComponent {
     private final Map<String, Timer> timers = new HashMap<>();
     private final Map<String, AtomicInteger> refCounts = new HashMap<>();
 
     public TimerComponent() {
-        super(TimerEndpoint.class);
+        super();
     }
 
     public Timer getTimer(TimerConsumer consumer) {
diff --git a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorComponent.java b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorComponent.java
index 2a609bc..4585c3a 100644
--- a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorComponent.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.validator;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 
 /**
@@ -27,7 +27,7 @@ import org.apache.camel.spi.Metadata;
  *
  * @version
  */
-public class ValidatorComponent extends UriEndpointComponent {
+public class ValidatorComponent extends DefaultComponent {
 
     @Metadata(label = "advanced", description = "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI")
     private ValidatorResourceResolverFactory resourceResolverFactory;
@@ -37,7 +37,7 @@ public class ValidatorComponent extends UriEndpointComponent {
     }
 
     public ValidatorComponent(Class<? extends Endpoint> endpointClass) {
-        super(endpointClass);
+        super();
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
index cadd990..993e5d2 100644
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
@@ -24,7 +24,7 @@ import javax.xml.transform.URIResolver;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.converter.jaxp.XmlConverter;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.ResourceHelper;
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
 /**
  * The <a href="http://camel.apache.org/xslt.html">XSLT Component</a> is for performing XSLT transformations of messages
  */
-public class XsltComponent extends UriEndpointComponent {
+public class XsltComponent extends DefaultComponent {
 
     private static final Logger LOG = LoggerFactory.getLogger(XsltComponent.class);
 
@@ -55,7 +55,7 @@ public class XsltComponent extends UriEndpointComponent {
     private boolean saxon;
 
     public XsltComponent() {
-        super(XsltEndpoint.class);
+        super();
     }
 
     public XmlConverter getXmlConverter() {
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltConstants.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltConstants.java
deleted file mode 100644
index 1c76b41..0000000
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltConstants.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.xslt;
-
-/**
- * XSLT component constants.
- */
-public final class XsltConstants {
-
-    @Deprecated 
-    // XsltComponent don't support this message any more
-    // Please create the XsltEndpoint directly from the URI
-    public static final String XSLT_RESOURCE_URI = "CamelXsltResourceUri";
-
-    private XsltConstants() {
-        // Utility class
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
index 06ba801..96d5ac6 100644
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
@@ -102,15 +102,6 @@ public class XsltEndpoint extends ProcessorEndpoint {
     @UriParam(label = "advanced")
     private EntityResolver entityResolver;
 
-    @Deprecated
-    public XsltEndpoint(String endpointUri, Component component, XsltBuilder xslt, String resourceUri,
-            boolean cacheStylesheet) throws Exception {
-        super(endpointUri, component, xslt);
-        this.xslt = xslt;
-        this.resourceUri = resourceUri;
-        this.contentCache = cacheStylesheet;
-    }
-
     public XsltEndpoint(String endpointUri, Component component) {
         super(endpointUri, component);
     }
diff --git a/camel-core/src/main/java/org/apache/camel/converter/HasAnnotation.java b/camel-core/src/main/java/org/apache/camel/converter/HasAnnotation.java
deleted file mode 100644
index edff4e0..0000000
--- a/camel-core/src/main/java/org/apache/camel/converter/HasAnnotation.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.converter;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Used to indicate that the actual type of a parameter on a converter method must have the given annotation class
- * to be applicable. e.g. this annotation could be used on a JAXB converter which only applies to objects with a
- * JAXB annotation on them
- *
- * @version
- * @deprecated not in use, will be removed in next Camel release.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Target({ElementType.PARAMETER })
-@Deprecated
-public @interface HasAnnotation {
-
-    Class<?> value();
-}
diff --git a/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java b/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
index ae02a2c..06f52f0 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
@@ -96,14 +96,6 @@ public final class IOConverter {
         }
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static BufferedReader toReader(File file) throws IOException {
-        return toReader(file, (String) null);
-    }
-
     @Converter
     public static BufferedReader toReader(File file, Exchange exchange) throws IOException {
         return toReader(file, IOHelper.getCharsetName(exchange));
@@ -124,15 +116,6 @@ public final class IOConverter {
         return IOHelper.buffered(new FileOutputStream(file));
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static BufferedWriter toWriter(File file) throws IOException {
-        FileOutputStream os = new FileOutputStream(file, false);
-        return toWriter(os, IOHelper.getCharsetName(null, true));
-    }
-    
     @Converter
     public static BufferedWriter toWriter(File file, Exchange exchange) throws IOException {
         FileOutputStream os = new FileOutputStream(file, false);
@@ -147,14 +130,6 @@ public final class IOConverter {
         return IOHelper.buffered(new EncodingFileWriter(os, charset));
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static Reader toReader(InputStream in) throws IOException {
-        return toReader(in, null);
-    }
-
     @Converter
     public static Reader toReader(InputStream in, Exchange exchange) throws IOException {
         return IOHelper.buffered(new InputStreamReader(in, IOHelper.getCharsetName(exchange)));
@@ -165,14 +140,6 @@ public final class IOConverter {
         return toReader(new ByteArrayInputStream(data), exchange);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static Writer toWriter(OutputStream out) throws IOException {
-        return toWriter(out, null);
-    }
-    
     @Converter
     public static Writer toWriter(OutputStream out, Exchange exchange) throws IOException {
         return IOHelper.buffered(new OutputStreamWriter(out, IOHelper.getCharsetName(exchange)));
@@ -185,14 +152,6 @@ public final class IOConverter {
         return new StringReader(text);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static InputStream toInputStream(String text) throws IOException {
-        return toInputStream(text, null);
-    }
-    
     @Converter
     public static InputStream toInputStream(String text, Exchange exchange) throws IOException {
         return toInputStream(text.getBytes(IOHelper.getCharsetName(exchange)));
@@ -207,41 +166,17 @@ public final class IOConverter {
     public static InputStream toInputStream(StringBuilder builder, Exchange exchange) throws IOException {
         return toInputStream(builder.toString(), exchange);
     }
-    
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static InputStream toInputStream(BufferedReader buffer) throws IOException {
-        return toInputStream(buffer, null);
-    }
-    
+
     @Converter
     public static InputStream toInputStream(BufferedReader buffer, Exchange exchange) throws IOException {
         return toInputStream(toString(buffer), exchange);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static String toString(byte[] data) throws IOException {
-        return toString(data, null);
-    }
-    
     @Converter
     public static String toString(byte[] data, Exchange exchange) throws IOException {
         return new String(data, IOHelper.getCharsetName(exchange));
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static String toString(File file) throws IOException {
-        return toString(file, null);
-    }
-    
     @Converter
     public static String toString(File file, Exchange exchange) throws IOException {
         return toString(toReader(file, exchange));
@@ -256,28 +191,12 @@ public final class IOConverter {
             IOHelper.close(is, "file", LOG);
         }
     }
-    
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static byte[] toByteArray(Reader reader) throws IOException {
-        return toByteArray(reader, null);
-    }
-    
+
     @Converter
     public static byte[] toByteArray(Reader reader, Exchange exchange) throws IOException {
         return toByteArray(IOHelper.buffered(reader), exchange);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static String toString(URL url) throws IOException {
-        return toString(url, null);
-    }
-
     @Converter
     public static String toString(URL url, Exchange exchange) throws IOException {
         InputStream is = toInputStream(url);
@@ -309,42 +228,18 @@ public final class IOConverter {
 
         return sb.toString();
     }
-    
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static byte[] toByteArray(BufferedReader reader) throws IOException {
-        return toByteArray(reader, null);
-    }
-    
+
     @Converter
     public static byte[] toByteArray(BufferedReader reader, Exchange exchange) throws IOException {
         String s = toString(reader);
         return toByteArray(s, exchange);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static byte[] toByteArray(String value) throws IOException {
-        return toByteArray(value, null);
-    }
-
     @Converter
     public static byte[] toByteArray(String value, Exchange exchange) throws IOException {
         return value.getBytes(IOHelper.getCharsetName(exchange));
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static String toString(InputStream in) throws IOException {
-        return toString(in, null);
-    }
-
     @Converter
     public static String toString(InputStream in, Exchange exchange) throws IOException {
         return toString(toReader(in, exchange));
@@ -414,14 +309,6 @@ public final class IOConverter {
         return ByteBuffer.wrap(os.toByteArray());
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public static String toString(ByteArrayOutputStream os) throws IOException {
-        return toString(os, null);
-    }
-
     @Converter
     public static String toString(ByteArrayOutputStream os, Exchange exchange) throws IOException {
         return os.toString(IOHelper.getCharsetName(exchange));
@@ -462,23 +349,6 @@ public final class IOConverter {
     }
 
     /**
-     * Gets the charset name if set as header or property {@link Exchange#CHARSET_NAME}.
-     *
-     * @param exchange  the exchange
-     * @param useDefault should we fallback and use JVM default charset if no property existed?
-     * @return the charset, or <tt>null</tt> if no found
-     */
-    @Deprecated
-    public static String getCharsetName(Exchange exchange, boolean useDefault) {
-        return IOHelper.getCharsetName(exchange, useDefault);
-    }
-    
-    @Deprecated
-    public static String getCharsetName(Exchange exchange) {
-        return getCharsetName(exchange, true);
-    }
-
-    /**
      * Encoding-aware input stream.
      */
     public static class EncodingInputStream extends InputStream {
@@ -578,18 +448,5 @@ public final class IOConverter {
             }
         }
     }
-    
-    /**
-     * This method will take off the quotes and double quotes of the charset
-     */
-    @Deprecated
-    public static String normalizeCharset(String charset) {
-        return IOHelper.normalizeCharset(charset);
-    }
-    
-    @Deprecated
-    public static void validateCharset(String charset) throws UnsupportedCharsetException {
-        IOHelper.validateCharset(charset);
-    }
 
 }
diff --git a/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java b/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
index 2935480..8eb04ca 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
@@ -40,14 +40,6 @@ public final class ObjectConverter {
     }
 
     /**
-     * @deprecated not in use
-     */
-    @Deprecated
-    public static boolean isCollection(Object value) {
-        return value instanceof Collection || (value != null && value.getClass().isArray());
-    }
-
-    /**
      * Converts the given value to a boolean, handling strings or Boolean
      * objects; otherwise returning false if the value could not be converted to
      * a boolean
diff --git a/camel-core/src/main/java/org/apache/camel/converter/jaxp/StaxConverter.java b/camel-core/src/main/java/org/apache/camel/converter/jaxp/StaxConverter.java
index bc057ce..7d45089 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/jaxp/StaxConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/jaxp/StaxConverter.java
@@ -154,20 +154,7 @@ public class StaxConverter {
             returnXMLOutputFactory(factory);
         }
     }
-    
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException {
-        XMLInputFactory factory = getInputFactory();
-        try {
-            return factory.createXMLStreamReader(IOHelper.buffered(in));
-        } finally {
-            returnXMLInputFactory(factory);
-        }
-    }
-    
+
     @Converter
     public XMLStreamReader createXMLStreamReader(InputStream in, Exchange exchange) throws XMLStreamException {
         XMLInputFactory factory = getInputFactory();
@@ -222,19 +209,6 @@ public class StaxConverter {
             returnXMLInputFactory(factory);
         }
     }
-    
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException {
-        XMLInputFactory factory = getInputFactory();
-        try {
-            return factory.createXMLEventReader(IOHelper.buffered(in));
-        } finally {
-            returnXMLInputFactory(factory);
-        }
-    }
 
     @Converter
     public XMLEventReader createXMLEventReader(InputStream in, Exchange exchange) throws XMLStreamException {
diff --git a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
index 4f3125f..71b7201 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
@@ -83,9 +83,6 @@ import org.slf4j.LoggerFactory;
  */
 @Converter
 public class XmlConverter {
-    @Deprecated
-    //It will be removed in Camel 3.0, please use the Exchange.DEFAULT_CHARSET
-    public static final String DEFAULT_CHARSET_PROPERTY = "org.apache.camel.default.charset";
 
     public static final String OUTPUT_PROPERTIES_PREFIX = "org.apache.camel.xmlconverter.output.";
     public static final String DOCUMENT_BUILDER_FACTORY_FEATURE = "org.apache.camel.xmlconverter.documentBuilderFactory.feature";
@@ -170,24 +167,6 @@ public class XmlConverter {
     }
 
     /**
-     * Converts the given Document to a Source
-     * @deprecated use toDOMSource instead
-     */
-    @Deprecated
-    public DOMSource toSource(Document document) {
-        return new DOMSource(document);
-    }
-
-    /**
-     * Converts the given Node to a Source
-     * @deprecated  use toDOMSource instead
-     */
-    @Deprecated
-    public Source toSource(Node node) throws ParserConfigurationException, TransformerException {
-        return toDOMSource(node);
-    }
-
-    /**
      * Converts the given Node to a Source
      */
     @Converter
@@ -213,16 +192,6 @@ public class XmlConverter {
     }
 
     /**
-     * Converts the given input Source into text.
-     *
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public String toString(Source source) throws TransformerException {
-        return toString(source, null);
-    }
-
-    /**
      * Converts the given input Source into text
      */
     @Converter
@@ -275,16 +244,6 @@ public class XmlConverter {
 
     /**
      * Converts the given input Node into text
-     *
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public String toString(Node node) throws TransformerException {
-        return toString(node, null);
-    }
-
-    /**
-     * Converts the given input Node into text
      */
     @Converter
     public String toString(Node node, Exchange exchange) throws TransformerException {
@@ -312,16 +271,6 @@ public class XmlConverter {
     /**
      * Converts the source instance to a {@link DOMSource} or returns null if the conversion is not
      * supported (making it easy to derive from this class to add new kinds of conversion).
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public DOMSource toDOMSource(Source source) throws ParserConfigurationException, IOException, SAXException, TransformerException {
-        return toDOMSource(source, null);
-    }
-    
-    /**
-     * Converts the source instance to a {@link DOMSource} or returns null if the conversion is not
-     * supported (making it easy to derive from this class to add new kinds of conversion).
      */
     @Converter
     public DOMSource toDOMSource(Source source, Exchange exchange) throws ParserConfigurationException, IOException, SAXException, TransformerException {
@@ -345,7 +294,7 @@ public class XmlConverter {
     @Converter
     public DOMSource toDOMSource(String text) throws ParserConfigurationException, IOException, SAXException, TransformerException {
         Source source = toSource(text);
-        return toDOMSourceFromStream((StreamSource) source);
+        return toDOMSourceFromStream((StreamSource) source, null);
     }
 
     /**
@@ -356,7 +305,7 @@ public class XmlConverter {
     public DOMSource toDOMSource(byte[] bytes) throws IOException, SAXException, ParserConfigurationException {
         InputStream is = new ByteArrayInputStream(bytes);
         try {
-            return toDOMSource(is);
+            return toDOMSource(is, null);
         } finally {
             IOHelper.close(is);
         }
@@ -366,17 +315,6 @@ public class XmlConverter {
     /**
      * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
      * supported (making it easy to derive from this class to add new kinds of conversion).
-     *
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public SAXSource toSAXSource(String source) throws IOException, SAXException, TransformerException {
-        return toSAXSource(source, null);
-    }
-
-    /**
-     * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
-     * supported (making it easy to derive from this class to add new kinds of conversion).
      */
     @Converter
     public SAXSource toSAXSource(String source, Exchange exchange) throws IOException, SAXException, TransformerException {
@@ -408,17 +346,6 @@ public class XmlConverter {
     /**
      * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
      * supported (making it easy to derive from this class to add new kinds of conversion).
-     *
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public SAXSource toSAXSource(InputStream source) throws IOException, SAXException, TransformerException {
-        return toSAXSource(source, null);
-    }
-
-    /**
-     * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
-     * supported (making it easy to derive from this class to add new kinds of conversion).
      */
     @Converter
     public SAXSource toSAXSource(InputStream source, Exchange exchange) throws IOException, SAXException, TransformerException {
@@ -471,17 +398,6 @@ public class XmlConverter {
     /**
      * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
      * supported (making it easy to derive from this class to add new kinds of conversion).
-     *
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public SAXSource toSAXSource(Source source) throws IOException, SAXException, TransformerException {
-        return toSAXSource(source, null);
-    }
-
-    /**
-     * Converts the source instance to a {@link SAXSource} or returns null if the conversion is not
-     * supported (making it easy to derive from this class to add new kinds of conversion).
      */
     @Converter
     public SAXSource toSAXSource(Source source, Exchange exchange) throws IOException, SAXException, TransformerException {
@@ -498,14 +414,6 @@ public class XmlConverter {
         }
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public StreamSource toStreamSource(Source source) throws TransformerException {
-        return toStreamSource(source, null);
-    }
-
     @Converter
     public StreamSource toStreamSource(Source source, Exchange exchange) throws TransformerException {
         if (source instanceof StreamSource) {
@@ -548,14 +456,6 @@ public class XmlConverter {
         return new StreamSource(is);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public StreamSource toStreamSourceFromSAX(SAXSource source) throws TransformerException {
-        return toStreamSourceFromSAX(source, null);
-    }
-
     @Converter
     public StreamSource toStreamSourceFromSAX(SAXSource source, Exchange exchange) throws TransformerException {
         InputSource inputSource = source.getInputSource();
@@ -571,14 +471,6 @@ public class XmlConverter {
         return new StringSource(result);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public StreamSource toStreamSourceFromDOM(DOMSource source) throws TransformerException {
-        return toStreamSourceFromDOM(source, null);
-    }
-
     @Converter
     public StreamSource toStreamSourceFromDOM(DOMSource source, Exchange exchange) throws TransformerException {
         String result = toString(source, exchange);
@@ -590,14 +482,6 @@ public class XmlConverter {
         return new StringSource(result);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public SAXSource toSAXSourceFromStream(StreamSource source) throws SAXException {
-        return toSAXSourceFromStream(source, null);
-    }
-    
     @Converter
     public SAXSource toSAXSourceFromStream(StreamSource source, Exchange exchange) throws SAXException {
         InputSource inputSource;
@@ -633,14 +517,6 @@ public class XmlConverter {
         return new SAXSource(xmlReader, inputSource);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Reader toReaderFromSource(Source src) throws TransformerException {
-        return toReaderFromSource(src, null);
-    }
-
     @Converter
     public Reader toReaderFromSource(Source src, Exchange exchange) throws TransformerException {
         StreamSource stSrc = toStreamSource(src, exchange);
@@ -651,14 +527,6 @@ public class XmlConverter {
         return r;
     }
 
-    /**
-    * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-    */
-    @Deprecated
-    public DOMSource toDOMSource(InputStream is) throws ParserConfigurationException, IOException, SAXException {
-        return toDOMSource(is, null);
-    }
-    
     @Converter
     public DOMSource toDOMSource(InputStream is, Exchange exchange) throws ParserConfigurationException, IOException, SAXException {
         InputSource source = new InputSource(is);
@@ -668,28 +536,12 @@ public class XmlConverter {
         return new DOMSource(document, systemId);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public DOMSource toDOMSource(File file) throws ParserConfigurationException, IOException, SAXException {
-        return toDOMSource(file, null);
-    }
-    
     @Converter
     public DOMSource toDOMSource(File file, Exchange exchange) throws ParserConfigurationException, IOException, SAXException {
         InputStream is = IOHelper.buffered(new FileInputStream(file));
         return toDOMSource(is, exchange);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public DOMSource toDOMSourceFromStream(StreamSource source) throws ParserConfigurationException, IOException, SAXException {
-        return toDOMSourceFromStream(source, null);
-    }
-    
     @Converter
     public DOMSource toDOMSourceFromStream(StreamSource source, Exchange exchange) throws ParserConfigurationException, IOException, SAXException {
         Document document;
@@ -712,14 +564,6 @@ public class XmlConverter {
         return new DOMSource(document, systemId);
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public SAXSource toSAXSourceFromDOM(DOMSource source) throws TransformerException {
-        return toSAXSourceFromDOM(source, null);
-    }
-
     @Converter
     public SAXSource toSAXSourceFromDOM(DOMSource source, Exchange exchange) throws TransformerException {
         String str = toString(source, exchange);
@@ -792,7 +636,7 @@ public class XmlConverter {
      */
     @Converter(allowNull = true)
     public Node toDOMNode(Source source) throws TransformerException, ParserConfigurationException, IOException, SAXException {
-        DOMSource domSrc = toDOMSource(source);
+        DOMSource domSrc = toDOMSource(source, null);
         return domSrc != null ? domSrc.getNode() : null;
     }
 
@@ -824,18 +668,7 @@ public class XmlConverter {
         }
     }
 
-    
-    /**
-     * Converts the given data to a DOM document
-     *
-     * @param data is the data to be parsed
-     * @return the parsed document
-     */
-    @Deprecated
-    public Document toDOMDocument(byte[] data) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(data, null);
-    }
-    
+
     /**
      * Converts the given data to a DOM document
      *
@@ -853,18 +686,6 @@ public class XmlConverter {
      * Converts the given {@link InputStream} to a DOM document
      *
      * @param in is the data to be parsed
-     * @return the parsed document
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Document toDOMDocument(InputStream in) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(in, null);
-    }
-    
-    /**
-     * Converts the given {@link InputStream} to a DOM document
-     *
-     * @param in is the data to be parsed
      * @param exchange is the exchange to be used when calling the converter
      * @return the parsed document
      */
@@ -885,18 +706,6 @@ public class XmlConverter {
      * Converts the given {@link Reader} to a DOM document
      *
      * @param in is the data to be parsed
-     * @return the parsed document
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Document toDOMDocument(Reader in) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(new InputSource(in));
-    }
-    
-    /**
-     * Converts the given {@link Reader} to a DOM document
-     *
-     * @param in is the data to be parsed
      * @param exchange is the exchange to be used when calling the converter
      * @return the parsed document
      */
@@ -909,18 +718,6 @@ public class XmlConverter {
      * Converts the given {@link InputSource} to a DOM document
      *
      * @param in is the data to be parsed
-     * @return the parsed document
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Document toDOMDocument(InputSource in) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(in, null);
-    }
-    
-    /**
-     * Converts the given {@link InputSource} to a DOM document
-     *
-     * @param in is the data to be parsed
      * @param exchange is the exchange to be used when calling the converter
      * @return the parsed document
      */
@@ -934,18 +731,6 @@ public class XmlConverter {
      * Converts the given {@link String} to a DOM document
      *
      * @param text is the data to be parsed
-     * @return the parsed document
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Document toDOMDocument(String text) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(new StringReader(text));
-    }
-    
-    /**
-     * Converts the given {@link String} to a DOM document
-     *
-     * @param text is the data to be parsed
      * @param exchange is the exchange to be used when calling the converter
      * @return the parsed document
      */
@@ -958,18 +743,6 @@ public class XmlConverter {
      * Converts the given {@link File} to a DOM document
      *
      * @param file is the data to be parsed
-     * @return the parsed document
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public Document toDOMDocument(File file) throws IOException, SAXException, ParserConfigurationException {
-        return toDOMDocument(file, null);
-    }
-    
-    /**
-     * Converts the given {@link File} to a DOM document
-     *
-     * @param file is the data to be parsed
      * @param exchange is the exchange to be used when calling the converter
      * @return the parsed document
      */
@@ -1023,27 +796,11 @@ public class XmlConverter {
         }
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public InputStream toInputStream(DOMSource source) throws TransformerException, IOException {
-        return toInputStream(source, null);
-    }
-
     @Converter
     public InputStream toInputStream(DOMSource source, Exchange exchange) throws TransformerException, IOException {
         return new ByteArrayInputStream(toByteArray(source, exchange));
     }
 
-    /**
-     * @deprecated will be removed in Camel 3.0. Use the method which has 2 parameters.
-     */
-    @Deprecated
-    public InputStream toInputStream(Document dom) throws TransformerException, IOException {
-        return toInputStream(dom, null);
-    }
-
     @Converter
     public InputStream toInputStream(Document dom, Exchange exchange) throws TransformerException, IOException {
         return toInputStream(new DOMSource(dom), exchange);
@@ -1177,14 +934,6 @@ public class XmlConverter {
         return builder.newDocument();
     }
 
-    /**
-     * @deprecated use {@link #createTransformer}, will be removed in Camel 3.0
-     */
-    @Deprecated
-    public Transformer createTransfomer() throws TransformerConfigurationException {
-        return createTransformer();
-    }
-
     public Transformer createTransformer() throws TransformerConfigurationException {
         TransformerFactory factory = getTransformerFactory();
         return factory.newTransformer();
diff --git a/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java b/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
index d722baf..65066a1 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
@@ -39,14 +39,6 @@ import org.apache.camel.spi.StreamCachingStrategy;
  * fileInputStream(s) is/are closed after all the exchanges using the temp file are completed.
  */
 public class CachedOutputStream extends OutputStream {
-    @Deprecated
-    public static final String THRESHOLD = "CamelCachedOutputStreamThreshold";
-    @Deprecated
-    public static final String BUFFER_SIZE = "CamelCachedOutputStreamBufferSize";
-    @Deprecated
-    public static final String TEMP_DIR = "CamelCachedOutputStreamOutputDirectory";
-    @Deprecated
-    public static final String CIPHER_TRANSFORMATION = "CamelCachedOutputStreamCipherTransformation";
 
     private final StreamCachingStrategy strategy;
     private OutputStream currentStream;
@@ -130,14 +122,6 @@ public class CachedOutputStream extends OutputStream {
     }
 
     /**
-     * @deprecated  use {@link #newStreamCache()}
-     */
-    @Deprecated
-    public StreamCache getStreamCache() throws IOException {
-        return newStreamCache();
-    }
-
-    /**
      * Creates a new {@link StreamCache} from the data cached in this {@link OutputStream}.
      */
     public StreamCache newStreamCache() throws IOException {
@@ -168,14 +152,6 @@ public class CachedOutputStream extends OutputStream {
         }
     }
 
-    /**
-     * @deprecated  use {@link #getStrategyBufferSize()}
-     */
-    @Deprecated
-    public int getBufferSize() {
-        return getStrategyBufferSize();
-    }
-    
     public int getStrategyBufferSize() {
         return strategy.getBufferSize();
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java b/camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java
deleted file mode 100644
index 8be845b..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.net.ServerSocket;
-import java.util.concurrent.atomic.AtomicLong;
-
-import org.apache.camel.spi.UuidGenerator;
-import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.InetAddressUtil;
-import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * {@link org.apache.camel.spi.UuidGenerator} which is a fast implementation based on
- * how <a href="http://activemq.apache.org/">Apache ActiveMQ</a> generates its UUID.
- * <p/>
- * This implementation is not synchronized but it leverages API which may not be accessible
- * in the cloud (such as Google App Engine).
- * <p/>
- * The JVM system property {@link #PROPERTY_IDGENERATOR_PORT} can be used to set a specific port
- * number to be used as part of the initialization process to generate unique UUID.
- *
- * @deprecated replaced by {@link DefaultUuidGenerator}
- */
-@Deprecated
-public class ActiveMQUuidGenerator implements UuidGenerator {
-
-    // use same JVM property name as ActiveMQ
-    public static final String PROPERTY_IDGENERATOR_HOSTNAME = "activemq.idgenerator.hostname";
-    public static final String PROPERTY_IDGENERATOR_LOCALPORT = "activemq.idgenerator.localport";
-    public static final String PROPERTY_IDGENERATOR_PORT = "activemq.idgenerator.port";
-
-    private static final Logger LOG = LoggerFactory.getLogger(ActiveMQUuidGenerator.class);
-    private static final String UNIQUE_STUB;
-    private static int instanceCount;
-    private static String hostName;
-    private String seed;
-    // must use AtomicLong to ensure atomic get and update operation that is thread-safe
-    private final AtomicLong sequence = new AtomicLong(1);
-    private final int length;
-
-    static {
-        String stub = "";
-        boolean canAccessSystemProps = true;
-        try {
-            SecurityManager sm = System.getSecurityManager();
-            if (sm != null) {
-                sm.checkPropertiesAccess();
-            }
-        } catch (SecurityException se) {
-            canAccessSystemProps = false;
-        }
-
-        if (canAccessSystemProps) {
-            hostName = System.getProperty(PROPERTY_IDGENERATOR_HOSTNAME);
-            int localPort = Integer.parseInt(System.getProperty(PROPERTY_IDGENERATOR_LOCALPORT, "0"));
-
-            int idGeneratorPort = 0;
-            ServerSocket ss = null;
-            try {
-                if (hostName == null) {
-                    hostName = InetAddressUtil.getLocalHostName();
-                }
-                if (localPort == 0) {
-                    idGeneratorPort = Integer.parseInt(System.getProperty(PROPERTY_IDGENERATOR_PORT, "0"));
-                    LOG.trace("Using port {}", idGeneratorPort);
-                    ss = new ServerSocket(idGeneratorPort);
-                    localPort = ss.getLocalPort();
-                    stub = "-" + localPort + "-" + System.currentTimeMillis() + "-";
-                    Thread.sleep(100);
-                } else {
-                    stub = "-" + localPort + "-" + System.currentTimeMillis() + "-";
-                }
-            } catch (Exception e) {
-                if (LOG.isTraceEnabled()) {
-                    LOG.trace("Cannot generate unique stub by using DNS and binding to local port: {}", idGeneratorPort, e);
-                } else {
-                    LOG.warn("Cannot generate unique stub by using DNS and binding to local port: {} due {}", idGeneratorPort, e.getMessage());
-                }
-                // Restore interrupted state so higher level code can deal with it.
-                if (e instanceof InterruptedException) {
-                    Thread.currentThread().interrupt();
-                }
-            } finally {
-                IOHelper.close(ss);
-            }
-        }
-
-        // fallback to use localhost
-        if (hostName == null) {
-            hostName = "localhost";
-        }
-        hostName = sanitizeHostName(hostName);
-
-        if (ObjectHelper.isEmpty(stub)) {
-            stub = "-1-" + System.currentTimeMillis() + "-";
-        }
-        UNIQUE_STUB = stub;
-    }
-
-    public ActiveMQUuidGenerator(String prefix) {
-        synchronized (UNIQUE_STUB) {
-            this.seed = prefix + UNIQUE_STUB + (instanceCount++) + "-";
-            // let the ID be friendly for URL and file systems
-            this.seed = generateSanitizedId(this.seed);
-            this.length = seed.length() + ("" + Long.MAX_VALUE).length();
-        }
-    }
-
-    public ActiveMQUuidGenerator() {
-        this("ID-" + hostName);
-    }
-
-    /**
-     * As we have to find the hostname as a side-affect of generating a unique
-     * stub, we allow it's easy retrieval here
-     * 
-     * @return the local host name
-     */
-    public static String getHostName() {
-        return hostName;
-    }
-
-    public static String sanitizeHostName(String hostName) {
-        boolean changed = false;
-
-        StringBuilder sb = new StringBuilder();
-        for (char ch : hostName.toCharArray()) {
-            // only include ASCII chars
-            if (ch < 127) {
-                sb.append(ch);
-            } else {
-                changed = true;
-            }
-        }
-
-        if (changed) {
-            String newHost = sb.toString();
-            LOG.info("Sanitized hostname from: {} to: {}", hostName, newHost);
-            return newHost;
-        } else {
-            return hostName;
-        }
-    }
-
-    public String generateUuid() {
-        StringBuilder sb = new StringBuilder(length);
-        sb.append(seed);
-        sb.append(sequence.getAndIncrement());
-        return sb.toString();
-    }
-
-    /**
-     * Generate a unique ID - that is friendly for a URL or file system
-     * 
-     * @return a unique id
-     */
-    public String generateSanitizedId() {
-        return generateSanitizedId(generateUuid());
-    }
-
-    /**
-     * Ensures that the id is friendly for a URL or file system
-     *
-     * @param id the unique id
-     * @return the id as file friendly id
-     */
-    public static String generateSanitizedId(String id) {
-        id = id.replace(':', '-');
-        id = id.replace('_', '-');
-        id = id.replace('.', '-');
-        id = id.replace('/', '-');
-        return id;
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/AnnotatedParameterConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/AnnotatedParameterConfiguration.java
deleted file mode 100644
index 4533463..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/AnnotatedParameterConfiguration.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.lang.reflect.AccessibleObject;
-
-/**
- * An implementation of {@link ParameterConfiguration} which comes from a field or setter method
- * which has access to its underlying annotations to be able to expose additional validation
- * and conversion metadata for the parameter via annotations
- */
-@Deprecated
-public class AnnotatedParameterConfiguration extends ParameterConfiguration {
-    private final AccessibleObject accessibleObject;
-
-    public AnnotatedParameterConfiguration(String name, Class<?> type, AccessibleObject accessibleObject) {
-        super(name, type);
-        this.accessibleObject = accessibleObject;
-    }
-
-    public AccessibleObject getAccessibleObject() {
-        return accessibleObject;
-    }
-
-    @Override
-    public String toString() {
-        return "AnnotatedParameterConfiguration[" + getName() + " on " + accessibleObject + "]";
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ComponentConfigurationSupport.java b/camel-core/src/main/java/org/apache/camel/impl/ComponentConfigurationSupport.java
deleted file mode 100644
index 6932968..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ComponentConfigurationSupport.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-
-import org.apache.camel.Component;
-import org.apache.camel.ComponentConfiguration;
-import org.apache.camel.Endpoint;
-import org.apache.camel.spi.EndpointCompleter;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
-import org.apache.camel.util.UnsafeUriCharactersEncoder;
-
-/**
- * Useful base class for implementations of {@link ComponentConfiguration}
- */
-@Deprecated
-public abstract class ComponentConfigurationSupport implements ComponentConfiguration {
-    protected final Component component;
-    private Map<String, Object> propertyValues = new HashMap<>();
-    private String baseUri;
-
-    public ComponentConfigurationSupport(Component component) {
-        this.component = component;
-    }
-
-    @Override
-    public Map<String, Object> getParameters() {
-        return Collections.unmodifiableMap(propertyValues);
-    }
-
-    @Override
-    public void setParameters(Map<String, Object> newValues) {
-        ObjectHelper.notNull(newValues, "propertyValues");
-        this.propertyValues.clear();
-        // lets validate each property as we set it
-        Set<Map.Entry<String, Object>> entries = newValues.entrySet();
-        for (Map.Entry<String, Object> entry : entries) {
-            setParameter(entry.getKey(), entry.getValue());
-        }
-    }
-
-    @Override
-    public Object getParameter(String name) {
-        validatePropertyName(name);
-        return propertyValues.get(name);
-    }
-
-    @Override
-    public void setParameter(String name, Object value) {
-        Object convertedValue = validatePropertyValue(name, value);
-        propertyValues.put(name, convertedValue);
-    }
-
-    /**
-     * Returns the base URI without any scheme or URI query parameters (property values)
-     */
-    @Override
-    public String getBaseUri() {
-        return baseUri;
-    }
-
-    @Override
-    public void setBaseUri(String baseUri) {
-        this.baseUri = baseUri;
-    }
-
-    @Override
-    public Endpoint createEndpoint() throws Exception {
-        String uri = getUriString();
-        return component.createEndpoint(uri);
-    }
-
-    /**
-     * Configures the properties on the given endpoint
-     */
-    @Override
-    public void configureEndpoint(Endpoint endpoint) {
-        Map<String, Object> map = getParameters();
-        if (map != null) {
-            Set<Map.Entry<String, Object>> entries = map.entrySet();
-            for (Map.Entry<String, Object> entry : entries) {
-                setEndpointParameter(endpoint, entry.getKey(), entry.getValue());
-            }
-        }
-        // TODO validate all the values are valid (e.g. mandatory)
-    }
-
-    @Override
-    public String getUriString() {
-        List<String> queryParams = new ArrayList<>();
-        for (Map.Entry<String, Object> entry : getParameters().entrySet()) {
-            String key = entry.getKey();
-            Object value = entry.getValue();
-            // convert to "param=value" format here, order will be preserved
-            if (value instanceof List) {
-                for (Object item : (List<?>)value) {
-                    queryParams.add(key + "=" + UnsafeUriCharactersEncoder.encode(item.toString()));
-                }
-            } else {
-                queryParams.add(key + "=" + UnsafeUriCharactersEncoder.encode(value.toString()));
-            }
-        }
-        queryParams.sort(null);
-        StringBuilder builder = new StringBuilder();
-        String base = getBaseUri();
-        if (base != null) {
-            builder.append(base);
-        }
-        String separator = "?";
-        for (String entry : queryParams) {
-            builder.append(separator);
-            builder.append(entry);
-            separator = "&";
-        }
-        return builder.toString();
-    }
-
-    @Override
-    public void setUriString(String uri) throws URISyntaxException {
-        String path = uri;
-        int idx = path.indexOf('?');
-        Map<String, Object> newParameters = Collections.emptyMap();
-        if (idx >= 0) {
-            path = path.substring(0, idx);
-            String query = uri.substring(idx + 1);
-            newParameters = URISupport.parseQuery(query, true);
-        }
-        setBaseUri(path);
-        setParameters(newParameters);
-    }
-
-    @Override
-    public ParameterConfiguration getParameterConfiguration(String name) {
-        return getParameterConfigurationMap().get(name);
-    }
-
-    public List<String> completeEndpointPath(String completionText) {
-        if (component instanceof EndpointCompleter) {
-            EndpointCompleter completer = (EndpointCompleter) component;
-            return completer.completeEndpointPath(this, completionText);
-        }
-        return new ArrayList<>();
-    }
-
-    public String createParameterJsonSchema() {
-        // favor loading the json schema from the built-time generated file
-        String defaultName = component.getCamelContext().resolveComponentDefaultName(component.getClass().getName());
-        if (defaultName != null) {
-            try {
-                return component.getCamelContext().getComponentParameterJsonSchema(defaultName);
-            } catch (IOException e) {
-                // ignore as we fallback to create the json at runtime
-            }
-        }
-
-        // fallback to resolving at runtime
-        SortedMap<String, ParameterConfiguration> map = getParameterConfigurationMap();
-        StringBuilder buffer = new StringBuilder("{\n  \"properties\": {");
-        boolean first = true;
-        for (Map.Entry<String, ParameterConfiguration> entry :  map.entrySet()) {
-            if (first) {
-                first = false;
-            } else {
-                buffer.append(",");
-            }
-            buffer.append("\n    ");
-            buffer.append(entry.getValue().toJson());
-        }
-        buffer.append("\n  }\n}\n");
-        return buffer.toString();
-    }
-
-    /**
-     * Allow implementations to validate whether a property name is valid
-     * and either throw an exception or log a warning of an unknown property being used
-     */
-    protected void validatePropertyName(String name) {
-    }
-
-    /**
-     * Allow implementations to validate whether a property name is valid
-     * and either throw an exception or log a warning of an unknown property being used
-     * and to convert the given value to the correct type before updating the value.
-     */
-    protected Object validatePropertyValue(String name, Object value) {
-        validatePropertyName(name);
-        return value;
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/CompositeRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/CompositeRegistry.java
index 05b9688..ac2f4a7 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/CompositeRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/CompositeRegistry.java
@@ -107,15 +107,4 @@ public class CompositeRegistry implements Registry {
         return answer;
     }
 
-    public Object lookup(String name) {
-        return lookupByName(name);
-    }
-
-    public <T> T lookup(String name, Class<T> type) {
-        return lookupByNameAndType(name, type);
-    }
-
-    public <T> Map<String, T> lookupByType(Class<T> type) {
-        return findByTypeWithName(type);
-    }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ConfigurationHelper.java b/camel-core/src/main/java/org/apache/camel/impl/ConfigurationHelper.java
deleted file mode 100644
index 42c856d..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ConfigurationHelper.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.lang.reflect.Field;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.EndpointConfiguration;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.URIField;
-import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.URISupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Some helper methods for working with {@link EndpointConfiguration} instances
- *
- */
-@Deprecated
-public final class ConfigurationHelper {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ConfigurationHelper.class);
-
-    private ConfigurationHelper() {
-        //Utility Class
-    }
-
-    public interface ParameterSetter {
-
-        /**
-         * Sets the parameter on the configuration.
-         *
-         * @param camelContext  the camel context
-         * @param config        the configuration
-         * @param name          the name of the parameter
-         * @param value         the value to set
-         * @throws RuntimeCamelException is thrown if error setting the parameter
-         */
-        <T> void set(CamelContext camelContext, EndpointConfiguration config, String name, T value) throws RuntimeCamelException;
-    }
-
-    public static EndpointConfiguration createConfiguration(String uri, CamelContext context) throws Exception {
-        int schemeSeparator = uri.indexOf(':');
-        if (schemeSeparator == -1) {
-            // not an URIConfiguration
-            return null;
-        }
-        String scheme = uri.substring(0, schemeSeparator);
-        
-        Component component = context.getComponent(scheme);
-        if (LOG.isTraceEnabled()) {
-            LOG.trace("Lookup for Component handling \"{}:\" configuration returned {}",
-                new Object[]{scheme, component != null ? component.getClass().getName() : "<null>"});
-        }
-        if (component != null) {
-            EndpointConfiguration config = component.createConfiguration(scheme);
-            if (config instanceof DefaultEndpointConfiguration) {
-                ((DefaultEndpointConfiguration) config).setURI(uri);
-            }
-            return config;
-        } else {
-            // no component to create the configuration
-            return null;
-        }
-    }
-    
-    public static void populateFromURI(CamelContext camelContext, EndpointConfiguration config, ParameterSetter setter) {
-        URI uri = config.getURI();
-        
-        setter.set(camelContext, config, EndpointConfiguration.URI_SCHEME, uri.getScheme());
-        setter.set(camelContext, config, EndpointConfiguration.URI_SCHEME_SPECIFIC_PART, uri.getSchemeSpecificPart());
-        setter.set(camelContext, config, EndpointConfiguration.URI_AUTHORITY, uri.getAuthority());
-        setter.set(camelContext, config, EndpointConfiguration.URI_USER_INFO, uri.getUserInfo());
-        setter.set(camelContext, config, EndpointConfiguration.URI_HOST, uri.getHost());
-        setter.set(camelContext, config, EndpointConfiguration.URI_PORT, Integer.toString(uri.getPort()));
-        setter.set(camelContext, config, EndpointConfiguration.URI_PATH, uri.getPath());
-        setter.set(camelContext, config, EndpointConfiguration.URI_QUERY, uri.getQuery());
-        setter.set(camelContext, config, EndpointConfiguration.URI_FRAGMENT, uri.getFragment());
-        
-        // now parse query and set custom parameters
-        Map<String, Object> parameters;
-        try {
-            parameters = URISupport.parseParameters(uri);
-            for (Map.Entry<String, Object> pair : parameters.entrySet()) {
-                setter.set(camelContext, config, pair.getKey(), pair.getValue());
-            }
-        } catch (URISyntaxException e) {
-            throw new RuntimeCamelException(e);
-        }
-    }
-
-    public static Field findConfigurationField(EndpointConfiguration config, String name) {
-        if (config != null && name != null) {
-            Class<?> clazz = config.getClass();
-            Field[] fields = clazz.getDeclaredFields();
-    
-            Field found;
-            URIField anno;
-            for (final Field field : fields) {
-                anno = field.getAnnotation(URIField.class);
-                if (anno == null ? field.getName().equals(name) : anno.component().equals(name) 
-                    || (anno.component().equals(EndpointConfiguration.URI_QUERY) && anno.parameter().equals(name))) { 
-    
-                    found = field;
-                    LOG.trace("Found field {}.{} as candidate for parameter {}", clazz.getName(), found.getName(), name);
-                    return found;
-                }
-            }
-        }            
-        return null;
-    }
-
-    public static Object getConfigurationParameter(EndpointConfiguration config, String name) {
-        Field field = findConfigurationField(config, name);
-        return getConfigurationParameter(config, field);
-    }
-
-    public static Object getConfigurationParameter(EndpointConfiguration config, Field field) {
-        if (field != null) {
-            try {
-                return IntrospectionSupport.getProperty(config, field.getName());
-            } catch (Exception e) {
-                throw new RuntimeCamelException("Failed to get property '" + field.getName() + "' on " + config + " due " + e.getMessage(), e);
-            }
-        }
-        return null;
-    }
-
-    public static <T> void setConfigurationField(CamelContext camelContext, EndpointConfiguration config, String name, T value) {
-        Field field = findConfigurationField(config, name);
-        if (field == null) {
-            return;
-        }
-
-        try {
-            IntrospectionSupport.setProperty(camelContext.getTypeConverter(), config, name, value);
-        } catch (Exception e) {
-            throw new RuntimeCamelException("Failed to set property '" + name + "' on " + config + " due " + e.getMessage(), e);
-        }
-    }
-    
-    public static class FieldParameterSetter implements ParameterSetter {
-        @Override
-        public <T> void set(CamelContext camelContext, EndpointConfiguration config, String name, T value) {
-            setConfigurationField(camelContext, config, name, value);
-        }
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 39417ac..941c075 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -93,7 +93,6 @@ import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.impl.converter.BaseTypeConverterRegistry;
 import org.apache.camel.impl.converter.DefaultTypeConverter;
-import org.apache.camel.impl.converter.LazyLoadingTypeConverter;
 import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
 import org.apache.camel.impl.transformer.TransformerKey;
 import org.apache.camel.impl.validator.ValidatorKey;
@@ -119,16 +118,13 @@ import org.apache.camel.model.validator.ValidatorDefinition;
 import org.apache.camel.processor.interceptor.BacklogDebugger;
 import org.apache.camel.processor.interceptor.BacklogTracer;
 import org.apache.camel.processor.interceptor.Debug;
-import org.apache.camel.processor.interceptor.Delayer;
 import org.apache.camel.processor.interceptor.HandleFault;
-import org.apache.camel.processor.interceptor.StreamCaching;
 import org.apache.camel.runtimecatalog.DefaultRuntimeCamelCatalog;
 import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.spi.ComponentResolver;
-import org.apache.camel.spi.Container;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DataType;
@@ -255,7 +251,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private Boolean streamCache = Boolean.FALSE;
     private Boolean handleFault = Boolean.FALSE;
     private Boolean disableJMX = Boolean.FALSE;
-    private Boolean lazyLoadTypeConverters = Boolean.FALSE;
     private Boolean loadTypeConverters = Boolean.TRUE;
     private Boolean typeConverterStatisticsEnabled = Boolean.FALSE;
     private Boolean useMDCLogging = Boolean.FALSE;
@@ -997,11 +992,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return null;
     }
 
-    @Deprecated
-    public void setRoutes(List<Route> routes) {
-        throw new UnsupportedOperationException("Overriding existing routes is not supported yet, use addRouteCollection instead");
-    }
-
     void removeRouteCollection(Collection<Route> routes) {
         synchronized (this.routes) {
             this.routes.removeAll(routes);
@@ -1309,8 +1299,8 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         DefaultRouteError.reset(this, routeId);
 
         // remove the route from ErrorHandlerBuilder if possible
-        if (getErrorHandlerBuilder() instanceof ErrorHandlerBuilderSupport) {
-            ErrorHandlerBuilderSupport builder = (ErrorHandlerBuilderSupport)getErrorHandlerBuilder();
+        if (getErrorHandlerFactory() instanceof ErrorHandlerBuilderSupport) {
+            ErrorHandlerBuilderSupport builder = (ErrorHandlerBuilderSupport) getErrorHandlerFactory();
             builder.removeOnExceptionList(routeId);
         }
 
@@ -1608,10 +1598,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return CamelContextHelper.findEips(this);
     }
 
-    public String getComponentDocumentation(String componentName) throws IOException {
-        return null;
-    }
-
     public String getComponentParameterJsonSchema(String componentName) throws IOException {
         // use the component factory finder to find the package name of the component class, which is the location
         // where the documentation exists as well
@@ -2249,7 +2235,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             Map<String, String[]> uriOptions = new LinkedHashMap<>();
 
             // insert values from uri
-            Map<String, Object> options = EndpointHelper.endpointProperties(this, uri);
+            Map<String, Object> options = new HashMap<>(getRuntimeCamelCatalog().endpointProperties(uri));
 
             // extract consumer. prefix options
             Map<String, Object> consumerOptions = IntrospectionSupport.extractProperties(options, "consumer.");
@@ -2843,10 +2829,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
 
         if (interceptStrategy instanceof HandleFault) {
             setHandleFault(true);
-        } else if (interceptStrategy instanceof StreamCaching) {
-            setStreamCaching(true);
-        } else if (interceptStrategy instanceof Delayer) {
-            setDelayer(((Delayer)interceptStrategy).getDelay());
         }
     }
 
@@ -2977,12 +2959,12 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return answer;
     }
 
-    public ErrorHandlerBuilder getErrorHandlerBuilder() {
+    public ErrorHandlerBuilder getErrorHandlerFactory() {
         return (ErrorHandlerBuilder)errorHandlerBuilder;
     }
 
-    public void setErrorHandlerBuilder(ErrorHandlerFactory errorHandlerBuilder) {
-        this.errorHandlerBuilder = errorHandlerBuilder;
+    public void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory) {
+        this.errorHandlerBuilder = errorHandlerFactory;
     }
 
     public ScheduledExecutorService getErrorHandlerExecutorService() {
@@ -3082,7 +3064,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             }
         }
 
-        watch.stop();
+        watch.taken();
         if (log.isInfoEnabled()) {
             log.info("Apache Camel {} (CamelContext: {}) is suspended in {}", getVersion(), getName(), TimeUtils.printDuration(watch.taken()));
         }
@@ -3133,11 +3115,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             stopWatch.restart();
             log.info("Apache Camel {} (CamelContext: {}) is starting", getVersion(), getName());
 
-            // Note: This is done on context start as we want to avoid doing it during object construction
-            // where we could be dealing with CDI proxied camel contexts which may never be started (CAMEL-9657)
-            // [TODO] Remove in 3.0
-            Container.Instance.manage(this);
-
             // Start the route controller
             ServiceHelper.startServices(this.routeController);
 
@@ -3595,9 +3572,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
 
         // and clear start date
         startDate = null;
-
-        // [TODO] Remove in 3.0
-        Container.Instance.unmanage(this);
     }
 
     /**
@@ -4115,11 +4089,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
      */
     protected TypeConverter createTypeConverter() {
         BaseTypeConverterRegistry answer;
-        if (isLazyLoadTypeConverters()) {
-            answer = new LazyLoadingTypeConverter(packageScanClassResolver, getInjector(), getDefaultFactoryFinder());
-        } else {
-            answer = new DefaultTypeConverter(packageScanClassResolver, getInjector(), getDefaultFactoryFinder(), isLoadTypeConverters());
-        }
+        answer = new DefaultTypeConverter(packageScanClassResolver, getInjector(), getDefaultFactoryFinder(), isLoadTypeConverters());
         answer.setCamelContext(this);
         setTypeConverterRegistry(answer);
         return answer;
@@ -4223,22 +4193,11 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return dataFormats;
     }
 
-    @Deprecated
-    public Map<String, String> getProperties() {
-        return getGlobalOptions();
-    }
-
     @Override
     public Map<String, String> getGlobalOptions() {
         return globalOptions;
     }
 
-    @Deprecated
-    public void setProperties(Map<String, String> properties) {
-        this.setGlobalOptions(properties);
-    }
-
-    @Override
     public void setGlobalOptions(Map<String, String> globalOptions) {
         this.globalOptions = globalOptions;
     }
@@ -4388,16 +4347,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return autoStartup != null && autoStartup;
     }
 
-    @Deprecated
-    public Boolean isLazyLoadTypeConverters() {
-        return lazyLoadTypeConverters != null && lazyLoadTypeConverters;
-    }
-
-    @Deprecated
-    public void setLazyLoadTypeConverters(Boolean lazyLoadTypeConverters) {
-        this.lazyLoadTypeConverters = lazyLoadTypeConverters;
-    }
-
     public Boolean isLoadTypeConverters() {
         return loadTypeConverters != null && loadTypeConverters;
     }
@@ -4498,14 +4447,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         }
     }
 
-    /**
-     * @deprecated use {@link org.apache.camel.util.CamelContextHelper#lookupPropertiesComponent(org.apache.camel.CamelContext, boolean)}
-     */
-    @Deprecated
-    protected Component lookupPropertiesComponent() {
-        return CamelContextHelper.lookupPropertiesComponent(this, false);
-    }
-
     public ShutdownStrategy getShutdownStrategy() {
         return shutdownStrategy;
     }
@@ -4542,13 +4483,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         return this.executorServiceManager;
     }
 
-    @Deprecated
-    public org.apache.camel.spi.ExecutorServiceStrategy getExecutorServiceStrategy() {
-        // its okay to create a new instance as its stateless, and just delegate
-        // ExecutorServiceManager which is the new API
-        return new DefaultExecutorServiceStrategy(this);
-    }
-
     public void setExecutorServiceManager(ExecutorServiceManager executorServiceManager) {
         this.executorServiceManager = executorServiceManager;
     }
@@ -4604,12 +4538,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         this.restRegistry = restRegistry;
     }
 
-    @Deprecated
-    @Override
-    public String getProperty(String key) {
-        return getGlobalOption(key);
-    }
-
     @Override
     public String getGlobalOption(String key) {
         String value = getGlobalOptions().get(key);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
index bcdbd95..d059fab 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
@@ -29,12 +29,9 @@ import java.util.stream.Collectors;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
-import org.apache.camel.ComponentConfiguration;
 import org.apache.camel.Endpoint;
-import org.apache.camel.EndpointConfiguration;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.component.extension.ComponentExtension;
-import org.apache.camel.component.extension.ComponentExtensionHelper;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.CamelContextHelper;
@@ -144,18 +141,6 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
     }
 
     @Override
-    public ComponentConfiguration createComponentConfiguration() {
-        return new DefaultComponentConfiguration(this);
-    }
-
-    @Override
-    public EndpointConfiguration createConfiguration(String uri) throws Exception {
-        MappedEndpointConfiguration config = new MappedEndpointConfiguration(getCamelContext());
-        config.setURI(new URI(uri));
-        return config;
-    }
-
-    @Override
     public boolean useRawUri() {
         // should use encoded uri by default
         return false;
@@ -512,7 +497,7 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
             .filter(extensionType::isInstance)
             .findFirst()
             .map(extensionType::cast)
-            .map(e -> ComponentExtensionHelper.trySetComponent(e, this))
-            .map(e -> ComponentExtensionHelper.trySetCamelContext(e, getCamelContext()));
+            .map(e -> ObjectHelper.trySetComponent(e, this))
+            .map(e -> ObjectHelper.trySetCamelContext(e, getCamelContext()));
     }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponentConfiguration.java
deleted file mode 100644
index 5ea605f..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponentConfiguration.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.camel.Component;
-import org.apache.camel.Endpoint;
-import org.apache.camel.InvalidPropertyException;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.util.IntrospectionSupport;
-
-/**
- * Default implementation for components which do not inherit from {@link UriEndpointComponent} and
- * do not have Endpoint classes annotated with {@link org.apache.camel.spi.UriEndpoint}
- */
-@Deprecated
-public class DefaultComponentConfiguration extends ComponentConfigurationSupport {
-
-    public DefaultComponentConfiguration(Component component) {
-        super(component);
-    }
-
-    @Override
-    public Object getEndpointParameter(Endpoint endpoint, String name) throws RuntimeCamelException {
-        try {
-            return IntrospectionSupport.getProperty(endpoint, name);
-        } catch (Exception e) {
-            throw new RuntimeCamelException("Failed to get property " + name + " on endpoint " + endpoint + " due to " + e.getMessage(), e);
-        }
-    }
-
-    @Override
-    public void setEndpointParameter(Endpoint endpoint, String name, Object value) throws RuntimeCamelException {
-        boolean answer;
-        try {
-            answer = IntrospectionSupport.setProperty(endpoint, name, value);
-        } catch (Exception e) {
-            throw new RuntimeCamelException(
-                    "Failed to set property " + name + " with value " + value + " on endpoint " + endpoint + " due to " + e.getMessage(), e);
-        }
-        if (!answer) {
-            throw new InvalidPropertyException(endpoint, name);
-        }
-    }
-
-    /**
-     * Since we have no parameter metadata lets just return parameter configurations for each parameter we
-     * have right now.
-     *
-     * @return configurations for each current property value
-     */
-    @Override
-    public SortedMap<String, ParameterConfiguration> getParameterConfigurationMap() {
-        SortedMap<String, ParameterConfiguration> answer = new TreeMap<>();
-        Set<Map.Entry<String, Object>> entries = getParameters().entrySet();
-        for (Map.Entry<String, Object> entry : entries) {
-            String name = entry.getKey();
-            Object value = entry.getValue();
-            Class<?> type = (value != null) ? value.getClass() : String.class;
-            answer.put(name, new ParameterConfiguration(name, type));
-        }
-        return answer;
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumerTemplate.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumerTemplate.java
index 25184e5..27556a1 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumerTemplate.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumerTemplate.java
@@ -71,14 +71,6 @@ public class DefaultConsumerTemplate extends ServiceSupport implements ConsumerT
         }
     }
 
-    /**
-     * @deprecated use {@link #getCamelContext()}
-     */
-    @Deprecated
-    public CamelContext getContext() {
-        return getCamelContext();
-    }
-
     public CamelContext getCamelContext() {
         return camelContext;
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
index c5234d8..850090d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
@@ -24,7 +24,6 @@ import org.apache.camel.CamelContextAware;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
-import org.apache.camel.EndpointConfiguration;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.PollingConsumer;
@@ -60,7 +59,6 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
     private final String id = EndpointHelper.createEndpointId();
     private transient String endpointUriToString;
     private String endpointUri;
-    private EndpointConfiguration endpointConfiguration;
     private CamelContext camelContext;
     private Component component;
     @UriParam(label = "consumer", optionalPrefix = "consumer.", description = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while"
@@ -104,35 +102,6 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
     }
 
     /**
-     * Constructs a DefaultEndpoint instance which has <b>not</b> been created
-     * using a {@link Component}.
-     * <p/>
-     * <b>Note:</b> It is preferred to create endpoints using the associated
-     * component.
-     * 
-     * @param endpointUri the full URI used to create this endpoint
-     * @param camelContext the Camel Context in which this endpoint is operating
-     */
-    @Deprecated
-    protected DefaultEndpoint(String endpointUri, CamelContext camelContext) {
-        this(endpointUri);
-        this.camelContext = camelContext;
-    }
-
-    /**
-     * Constructs a partially-initialized DefaultEndpoint instance.
-     * <p/>
-     * <b>Note:</b> It is preferred to create endpoints using the associated
-     * component.
-     * 
-     * @param endpointUri the full URI used to create this endpoint
-     */
-    @Deprecated
-    protected DefaultEndpoint(String endpointUri) {
-        this.setEndpointUri(endpointUri);
-    }
-
-    /**
      * Constructs a partially-initialized DefaultEndpoint instance. Useful when
      * creating endpoints manually (e.g., as beans in Spring).
      * <p/>
@@ -195,23 +164,6 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
         return endpointUri;
     }
 
-    public EndpointConfiguration getEndpointConfiguration() {
-        if (endpointConfiguration == null) {
-            endpointConfiguration = createEndpointConfiguration(getEndpointUri());
-        }
-        return endpointConfiguration;
-    }
-
-    /**
-     * Sets a custom {@link EndpointConfiguration}
-     *
-     * @param endpointConfiguration a custom endpoint configuration to be used.
-     */
-    @Deprecated
-    public void setEndpointConfiguration(EndpointConfiguration endpointConfiguration) {
-        this.endpointConfiguration = endpointConfiguration;
-    }
-
     public String getEndpointKey() {
         if (isLenientProperties()) {
             // only use the endpoint uri without parameters as the properties are lenient
@@ -257,10 +209,6 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
         return consumer;
     }
 
-    public Exchange createExchange(Exchange exchange) {
-        return exchange.copy();
-    }
-
     public Exchange createExchange() {
         return createExchange(getExchangePattern());
     }
@@ -428,27 +376,6 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
     }
 
     /**
-     * A factory method to lazily create the endpoint configuration if none is specified
-     */
-    @Deprecated
-    protected EndpointConfiguration createEndpointConfiguration(String uri) {
-        // using this factory method to be backwards compatible with the old code
-        if (getComponent() != null) {
-            // prefer to use component endpoint configuration
-            try {
-                return getComponent().createConfiguration(uri);
-            } catch (Exception e) {
-                throw ObjectHelper.wrapRuntimeCamelException(e);
-            }
-        } else if (getCamelContext() != null) {
-            // fallback and use a mapped endpoint configuration
-            return new MappedEndpointConfiguration(getCamelContext(), uri);
-        }
-        // not configuration possible
-        return null;
-    }
-
-    /**
      * Sets the endpointUri if it has not been specified yet via some kind of
      * dependency injection mechanism. This allows dependency injection
      * frameworks such as Spring or Guice to set the default endpoint URI in
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointConfiguration.java
deleted file mode 100644
index 710cefd..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointConfiguration.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.EndpointConfiguration;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.UnsafeUriCharactersEncoder;
-
-/**
- * Default implementation of {@link EndpointConfiguration}.
- *
- * @version 
- */
-@Deprecated
-public abstract class DefaultEndpointConfiguration implements EndpointConfiguration {
-
-    private final CamelContext camelContext;
-    private URI uri;
-
-    public DefaultEndpointConfiguration(CamelContext camelContext) {
-        ObjectHelper.notNull(camelContext, "CamelContext");
-        this.camelContext = camelContext;
-    }
-
-    public DefaultEndpointConfiguration(CamelContext camelContext, String uri) {
-        this(camelContext);
-        try {
-            setURI(new URI(uri));
-        } catch (URISyntaxException e) {
-            throw new RuntimeCamelException(e);
-        }
-    }
-
-    @Override
-    public URI getURI() {
-        return uri;
-    }
-
-    public void setURI(URI uri) {
-        this.uri = uri;
-        parseURI();
-    }
-
-    public void setURI(String uri) {
-        try {
-            String encoded = UnsafeUriCharactersEncoder.encode(uri);
-            setURI(new URI(encoded));
-        } catch (URISyntaxException e) {
-            throw new RuntimeCamelException("Cannot parse uri: " + uri, e);
-        }
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T> T getParameter(String name) {
-        return (T)ConfigurationHelper.getConfigurationParameter(this, name);
-    }
-
-    @Override
-    public <T> void setParameter(String name, T value) {
-        ConfigurationHelper.setConfigurationField(camelContext, this, name, value);
-    }
-
-    protected CamelContext getCamelContext() {
-        return camelContext;
-    }
-
-    protected void parseURI() {
-        ConfigurationHelper.populateFromURI(camelContext, this, new ConfigurationHelper.FieldParameterSetter());
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java
index 683dc5e..b9bc9a3 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpointRegistry.java
@@ -70,7 +70,7 @@ public class DefaultEndpointRegistry extends AbstractMap<EndpointKey, Endpoint>
         Endpoint answer = staticMap.get(o);
         if (answer == null) {
             answer = dynamicMap.get(o);
-            if (answer != null && (context.isSetupRoutes() || context.isStartingRoutes())) {
+            if (answer != null && (context.isSetupRoutes() || context.getRouteController().isStartingRoutes())) {
                 dynamicMap.remove(o);
                 staticMap.put((EndpointKey) o, answer);
             }
@@ -96,7 +96,7 @@ public class DefaultEndpointRegistry extends AbstractMap<EndpointKey, Endpoint>
         }
 
         // we want endpoints to be static if they are part of setting up or starting routes
-        if (context.isSetupRoutes() || context.isStartingRoutes()) {
+        if (context.isSetupRoutes() || context.getRouteController().isStartingRoutes()) {
             answer = staticMap.put(key, endpoint);
         } else {
             answer = dynamicMap.put(key, endpoint);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
index 61230f3..eb85d4a 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
@@ -97,38 +97,27 @@ public final class DefaultExchange implements Exchange {
     }
 
     public Exchange copy() {
-        // to be backwards compatible as today
-        return copy(false);
-    }
-
-    public Exchange copy(boolean safeCopy) {
         DefaultExchange exchange = new DefaultExchange(this);
 
-        if (safeCopy) {
-            exchange.getIn().setBody(getIn().getBody());
-            exchange.getIn().setFault(getIn().isFault());
-            if (getIn().hasHeaders()) {
-                exchange.getIn().setHeaders(safeCopyHeaders(getIn().getHeaders()));
-                // just copy the attachments here
-                exchange.getIn().copyAttachments(getIn());
-            }
-            if (hasOut()) {
-                exchange.getOut().setBody(getOut().getBody());
-                exchange.getOut().setFault(getOut().isFault());
-                if (getOut().hasHeaders()) {
-                    exchange.getOut().setHeaders(safeCopyHeaders(getOut().getHeaders()));
-                }
-                // Just copy the attachments here
-                exchange.getOut().copyAttachments(getOut());
-            }
-        } else {
-            // old way of doing copy which is @deprecated
-            // TODO: remove this in Camel 3.0, and always do a safe copy
-            exchange.setIn(getIn().copy());
-            if (hasOut()) {
-                exchange.setOut(getOut().copy());
+        exchange.setIn(getIn().copy());
+        exchange.getIn().setBody(getIn().getBody());
+        exchange.getIn().setFault(getIn().isFault());
+        if (getIn().hasHeaders()) {
+            exchange.getIn().setHeaders(safeCopyHeaders(getIn().getHeaders()));
+            // just copy the attachments here
+            exchange.getIn().copyAttachments(getIn());
+        }
+        if (hasOut()) {
+            exchange.setOut(getOut().copy());
+            exchange.getOut().setBody(getOut().getBody());
+            exchange.getOut().setFault(getOut().isFault());
+            if (getOut().hasHeaders()) {
+                exchange.getOut().setHeaders(safeCopyHeaders(getOut().getHeaders()));
             }
+            // Just copy the attachments here
+            exchange.getOut().copyAttachments(getOut());
         }
+
         exchange.setException(getException());
 
         // copy properties after body as body may trigger lazy init
@@ -547,16 +536,8 @@ public final class DefaultExchange implements Exchange {
         }
     }
 
-    @SuppressWarnings("deprecation")
     protected String createExchangeId() {
-        String answer = null;
-        if (in != null) {
-            answer = in.createExchangeId();
-        }
-        if (answer == null) {
-            answer = context.getUuidGenerator().generateUuid();
-        }
-        return answer;
+        return context.getUuidGenerator().generateUuid();
     }
 
     protected Map<String, Object> createProperties() {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
deleted file mode 100644
index b2e6eca..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.RejectedExecutionHandler;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExecutorServiceStrategy;
-import org.apache.camel.spi.ThreadPoolProfile;
-import org.apache.camel.support.ServiceSupport;
-import org.apache.camel.util.concurrent.SynchronousExecutorService;
-
-/**
- * @deprecated use {@link org.apache.camel.spi.ExecutorServiceManager} instead, will be removed in a future Camel release
- */
-@Deprecated
-public class DefaultExecutorServiceStrategy extends ServiceSupport implements ExecutorServiceStrategy {
-
-    // delegate to ExecutorServiceManager
-
-    private final CamelContext camelContext;
-
-    public DefaultExecutorServiceStrategy(CamelContext camelContext) {
-        this.camelContext = camelContext;
-    }
-
-    public void registerThreadPoolProfile(ThreadPoolProfile profile) {
-        camelContext.getExecutorServiceManager().registerThreadPoolProfile(profile);
-    }
-
-    public ThreadPoolProfile getThreadPoolProfile(String id) {
-        return camelContext.getExecutorServiceManager().getThreadPoolProfile(id);
-    }
-
-    public ThreadPoolProfile getDefaultThreadPoolProfile() {
-        return camelContext.getExecutorServiceManager().getDefaultThreadPoolProfile();
-    }
-
-    public void setDefaultThreadPoolProfile(ThreadPoolProfile defaultThreadPoolProfile) {
-        camelContext.getExecutorServiceManager().setDefaultThreadPoolProfile(defaultThreadPoolProfile);
-    }
-
-    public String getThreadName(String name) {
-        return camelContext.getExecutorServiceManager().resolveThreadName(name);
-    }
-
-    public String getThreadNamePattern() {
-        return camelContext.getExecutorServiceManager().getThreadNamePattern();
-    }
-
-    public void setThreadNamePattern(String pattern) throws IllegalArgumentException {
-        camelContext.getExecutorServiceManager().setThreadNamePattern(pattern);
-    }
-
-    public ExecutorService lookup(Object source, String name, String executorServiceRef) {
-        ExecutorService answer = camelContext.getRegistry().lookupByNameAndType(executorServiceRef, ExecutorService.class);
-        if (answer == null) {
-            // try to see if we got a thread pool profile with that id
-            answer = newThreadPool(source, name, executorServiceRef);
-        }
-        return answer;
-    }
-
-    public ScheduledExecutorService lookupScheduled(Object source, String name, String executorServiceRef) {
-        ScheduledExecutorService answer = camelContext.getRegistry().lookupByNameAndType(executorServiceRef, ScheduledExecutorService.class);
-        if (answer == null) {
-            ThreadPoolProfile profile = getThreadPoolProfile(executorServiceRef);
-            if (profile != null) {
-                Integer poolSize = profile.getPoolSize();
-                if (poolSize == null) {
-                    poolSize = getDefaultThreadPoolProfile().getPoolSize();
-                }
-                answer = newScheduledThreadPool(source, name, poolSize);
-            }
-        }
-        return answer;
-    }
-
-    public ExecutorService newDefaultThreadPool(Object source, String name) {
-        return camelContext.getExecutorServiceManager().newDefaultThreadPool(source, name);
-    }
-
-    public ExecutorService newThreadPool(Object source, String name, String threadPoolProfileId) {
-        return camelContext.getExecutorServiceManager().newThreadPool(source, name, threadPoolProfileId);
-    }
-
-    public ExecutorService newCachedThreadPool(Object source, String name) {
-        return camelContext.getExecutorServiceManager().newCachedThreadPool(source, name);
-    }
-
-    public ScheduledExecutorService newScheduledThreadPool(Object source, String name, int poolSize) {
-        return camelContext.getExecutorServiceManager().newScheduledThreadPool(source, name, poolSize);
-    }
-
-    public ScheduledExecutorService newScheduledThreadPool(Object source, String name) {
-        return camelContext.getExecutorServiceManager().newDefaultScheduledThreadPool(source, name);
-    }
-
-    public ExecutorService newFixedThreadPool(Object source, String name, int poolSize) {
-        return camelContext.getExecutorServiceManager().newFixedThreadPool(source, name, poolSize);
-    }
-
-    public ExecutorService newSingleThreadExecutor(Object source, String name) {
-        return camelContext.getExecutorServiceManager().newSingleThreadExecutor(source, name);
-    }
-
-    public ExecutorService newSynchronousThreadPool(Object source, String name) {
-        return new SynchronousExecutorService();
-    }
-
-    public ExecutorService newThreadPool(Object source, String name, int corePoolSize, int maxPoolSize) {
-        return camelContext.getExecutorServiceManager().newThreadPool(source, name, corePoolSize, maxPoolSize);
-    }
-
-    public ExecutorService newThreadPool(Object source, String name, int corePoolSize, int maxPoolSize, int maxQueueSize) {
-        // use a profile with the settings
-        ThreadPoolProfile profile = new ThreadPoolProfile();
-        profile.setPoolSize(corePoolSize);
-        profile.setMaxPoolSize(maxPoolSize);
-        profile.setMaxQueueSize(maxQueueSize);
-
-        return camelContext.getExecutorServiceManager().newThreadPool(source, name, profile);
-    }
-
-    public ExecutorService newThreadPool(Object source, String name, int corePoolSize, int maxPoolSize,
-                                         long keepAliveTime, TimeUnit timeUnit, int maxQueueSize,
-                                         RejectedExecutionHandler rejectedExecutionHandler, boolean daemon) {
-        // use a profile with the settings
-        ThreadPoolProfile profile = new ThreadPoolProfile();
-        profile.setPoolSize(corePoolSize);
-        profile.setMaxPoolSize(maxPoolSize);
-        profile.setMaxQueueSize(maxQueueSize);
-        profile.setKeepAliveTime(keepAliveTime);
-        profile.setTimeUnit(timeUnit);
-
-        // must cast to ThreadPoolExecutor to be able to set the rejected execution handler
-        ThreadPoolExecutor answer = (ThreadPoolExecutor) camelContext.getExecutorServiceManager().newThreadPool(source, name, profile);
-        answer.setRejectedExecutionHandler(rejectedExecutionHandler);
-        return answer;
-    }
-
-    public void shutdown(ExecutorService executorService) {
-        camelContext.getExecutorServiceManager().shutdown(executorService);
-    }
-
-    public List<Runnable> shutdownNow(ExecutorService executorService) {
-        return camelContext.getExecutorServiceManager().shutdownNow(executorService);
-    }
-
-    protected void doStart() throws Exception {
-        // noop
-    }
-
-    protected void doStop() throws Exception {
-        // noop
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultInflightRepository.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultInflightRepository.java
index 7f079ac..f63569d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultInflightRepository.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultInflightRepository.java
@@ -28,7 +28,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.MessageHistory;
 import org.apache.camel.spi.InflightRepository;
@@ -73,11 +72,6 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
         return inflight.size();
     }
 
-    @Deprecated
-    public int size(Endpoint endpoint) {
-        return 0;
-    }
-
     @Override
     public void addRoute(String routeId) {
         routeCount.putIfAbsent(routeId, new AtomicInteger(0));
@@ -252,11 +246,6 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
         }
 
         @Override
-        public String getRouteId() {
-            return getAtRouteId();
-        }
-
-        @Override
         @SuppressWarnings("unchecked")
         public String getAtRouteId() {
             LinkedList<MessageHistory> list = exchange.getProperty(Exchange.MESSAGE_HISTORY, LinkedList.class);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
index 1103866..70f8b90 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
@@ -50,11 +50,9 @@ public class DefaultMessage extends MessageSupport {
     private Map<String, DataHandler> attachments;
     private Map<String, Attachment> attachmentObjects;
 
-    /**
-     * @deprecated use {@link #DefaultMessage(CamelContext)}
-     */
-    @Deprecated
-    public DefaultMessage() {
+    public DefaultMessage(Exchange exchange) {
+        setExchange(exchange);
+        setCamelContext(exchange != null ? exchange.getContext() : null);
     }
 
     public DefaultMessage(CamelContext camelContext) {
@@ -393,10 +391,6 @@ public class DefaultMessage extends MessageSupport {
         return headers != null;
     }
 
-    public String createExchangeId() {
-        return null;
-    }
-
     private static boolean isExcludePatternMatch(String key, String... excludePatterns) {
         for (String pattern : excludePatterns) {
             if (EndpointHelper.matchPattern(key, pattern)) {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistory.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistory.java
index 5083794..093cda5 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistory.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistory.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.impl;
 
-import java.util.Date;
-
 import org.apache.camel.MessageHistory;
 import org.apache.camel.NamedNode;
 
@@ -47,10 +45,6 @@ public class DefaultMessageHistory implements MessageHistory {
         return node;
     }
 
-    public Date getTimestamp() {
-        return new Date(timestamp);
-    }
-
     @Override
     public long getTime() {
         return timestamp;
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistoryFactory.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistoryFactory.java
index aa97e3c..5c30327 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistoryFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessageHistoryFactory.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.impl;
 
-import java.util.Date;
-
 import org.apache.camel.MessageHistory;
 import org.apache.camel.NamedNode;
 import org.apache.camel.spi.MessageHistoryFactory;
@@ -25,11 +23,6 @@ import org.apache.camel.spi.MessageHistoryFactory;
 public class DefaultMessageHistoryFactory implements MessageHistoryFactory {
 
     @Override
-    public MessageHistory newMessageHistory(String routeId, NamedNode node, Date timestamp) {
-        return new DefaultMessageHistory(routeId, node, timestamp.getTime());
-    }
-
-    @Override
     public MessageHistory newMessageHistory(String routeId, NamedNode node, long timestamp) {
         return new DefaultMessageHistory(routeId, node, timestamp);
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
index 880b92c..245154c 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
@@ -117,11 +117,6 @@ public class DefaultPackageScanClassResolver extends ServiceSupport implements P
         return Collections.unmodifiableSet(new LinkedHashSet<>(classLoaders));
     }
 
-    public void setClassLoaders(Set<ClassLoader> classLoaders) {
-        // add all the class loaders
-        this.classLoaders.addAll(classLoaders);
-    }
-
     public Set<Class<?>> findAnnotated(Class<? extends Annotation> annotation, String... packageNames) {
         if (packageNames == null) {
             return Collections.emptySet();
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultPollingEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultPollingEndpoint.java
index 9c6ab12..a4a1b0b 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultPollingEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultPollingEndpoint.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.impl;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
@@ -35,16 +34,6 @@ public abstract class DefaultPollingEndpoint extends ScheduledPollEndpoint  {
         super(endpointUri, component);
     }
 
-    @Deprecated
-    protected DefaultPollingEndpoint(String endpointUri) {
-        super(endpointUri);
-    }
-
-    @Deprecated
-    protected DefaultPollingEndpoint(String endpointUri, CamelContext context) {
-        super(endpointUri, context);
-    }
-
     public Consumer createConsumer(Processor processor) throws Exception {
         Consumer result = new DefaultScheduledPollConsumer(this, processor);
         configureConsumer(result);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultProducer.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultProducer.java
index c241b33..3885e64 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultProducer.java
@@ -18,7 +18,6 @@ package org.apache.camel.impl;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
 import org.apache.camel.Producer;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.URISupport;
@@ -55,15 +54,6 @@ public abstract class DefaultProducer extends ServiceSupport implements Producer
         return endpoint.createExchange();
     }
 
-    public Exchange createExchange(ExchangePattern pattern) {
-        return endpoint.createExchange(pattern);
-    }
-
-    @Deprecated
-    public Exchange createExchange(Exchange exchange) {
-        return endpoint.createExchange(exchange);
-    }
-
     /**
      * This implementation will delegate to the endpoint {@link org.apache.camel.Endpoint#isSingleton()}
      */
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
index a3dfd51..31a34e6 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
@@ -393,14 +393,6 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT
     // Properties
     // -----------------------------------------------------------------------
 
-    /**
-     * @deprecated use {@link #getCamelContext()}
-     */
-    @Deprecated
-    public CamelContext getContext() {
-        return getCamelContext();
-    }
-
     public CamelContext getCamelContext() {
         return camelContext;
     }
@@ -420,14 +412,6 @@ public class DefaultProducerTemplate extends ServiceSupport implements ProducerT
         setDefaultEndpoint(getCamelContext().getEndpoint(endpointUri));
     }
 
-    /**
-     * @deprecated use {@link CamelContext#getEndpoint(String, Class)}
-     */
-    @Deprecated
-    public <T extends Endpoint> T getResolvedEndpoint(String endpointUri, Class<T> expectedClass) {
-        return camelContext.getEndpoint(endpointUri, expectedClass);
-    }
-
     // Implementation methods
     // -----------------------------------------------------------------------
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java
index b63093c..b5cd297 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java
@@ -33,8 +33,8 @@ import org.apache.camel.util.TimeUtils;
  * Default implementation of {@link Route}.
  * <p/>
  * Use the API from {@link org.apache.camel.CamelContext} to control the lifecycle of a route,
- * such as starting and stopping using the {@link org.apache.camel.CamelContext#startRoute(String)}
- * and {@link org.apache.camel.CamelContext#stopRoute(String)} methods.
+ * such as starting and stopping using the {@link org.apache.camel.spi.RouteController#startRoute(String)}
+ * and {@link org.apache.camel.spi.RouteController#stopRoute(String)} methods.
  *
  * @version 
  */
@@ -122,7 +122,7 @@ public abstract class DefaultRoute extends ServiceSupport implements Route {
     }
 
     /**
-     * Do not invoke this method directly, use {@link org.apache.camel.CamelContext#startRoute(String)} to start a route.
+     * Do not invoke this method directly, use {@link org.apache.camel.spi.RouteController#startRoute(String)} to start a route.
      */
     @Override
     public void start() throws Exception {
@@ -130,7 +130,7 @@ public abstract class DefaultRoute extends ServiceSupport implements Route {
     }
 
     /**
-     * Do not invoke this method directly, use {@link org.apache.camel.CamelContext#stopRoute(String)} to stop a route.
+     * Do not invoke this method directly, use {@link org.apache.camel.spi.RouteController#stopRoute(String)} to stop a route.
      */
     @Override
     public void stop() throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
index 65dbaee..b39bfbb 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Experimental;
 import org.apache.camel.Route;
+import org.apache.camel.ServiceStatus;
 import org.apache.camel.spi.RouteController;
 
 @Experimental
@@ -70,6 +71,21 @@ public class DefaultRouteController extends org.apache.camel.support.ServiceSupp
     // ***************************************************
 
     @Override
+    public void startAllRoutes() throws Exception {
+        ((DefaultCamelContext) camelContext).startAllRoutes();
+    }
+
+    @Override
+    public boolean isStartingRoutes() {
+        return ((DefaultCamelContext) camelContext).isStartingRoutes();
+    }
+
+    @Override
+    public ServiceStatus getRouteStatus(String routeId) {
+        return ((DefaultCamelContext) camelContext).getRouteStatus(routeId);
+    }
+
+    @Override
     public void startRoute(String routeId) throws Exception {
         camelContext.startRoute(routeId);
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java
index 4730ab6..247d9b3 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java
@@ -75,10 +75,6 @@ public class DefaultRouteNode implements RouteNode {
         if (target instanceof Traceable) {
             Traceable trace = (Traceable) target;
             return trace.getTraceLabel();
-        } else if (target instanceof org.apache.camel.processor.Traceable) {
-            // to be backwards compatible
-            org.apache.camel.processor.Traceable trace = (org.apache.camel.processor.Traceable) target;
-            return trace.getTraceLabel();
         }
 
         // if we are a delegate then drill down
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
index 14f701f..4ee4acb 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
@@ -747,7 +747,7 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS
         for (InflightRepository.InflightExchange inflight : filtered) {
             sb.append("\n\tInflightExchange: [exchangeId=").append(inflight.getExchange().getExchangeId())
                     .append(", fromRouteId=").append(inflight.getExchange().getFromRouteId())
-                    .append(", routeId=").append(inflight.getRouteId())
+                    .append(", atRouteId=").append(inflight.getAtRouteId())
                     .append(", nodeId=").append(inflight.getNodeId())
                     .append(", elapsed=").append(inflight.getElapsed())
                     .append(", duration=").append(inflight.getDuration())
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
index fbedac5..e974d74 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
@@ -40,15 +40,6 @@ import org.slf4j.LoggerFactory;
  */
 public class DefaultStreamCachingStrategy extends org.apache.camel.support.ServiceSupport implements CamelContextAware, StreamCachingStrategy {
 
-    @Deprecated
-    public static final String THRESHOLD = "CamelCachedOutputStreamThreshold";
-    @Deprecated
-    public static final String BUFFER_SIZE = "CamelCachedOutputStreamBufferSize";
-    @Deprecated
-    public static final String TEMP_DIR = "CamelCachedOutputStreamOutputDirectory";
-    @Deprecated
-    public static final String CIPHER_TRANSFORMATION = "CamelCachedOutputStreamCipherTransformation";
-
     private static final Logger LOG = LoggerFactory.getLogger(DefaultStreamCachingStrategy.class);
 
     private CamelContext camelContext;
@@ -235,32 +226,6 @@ public class DefaultStreamCachingStrategy extends org.apache.camel.support.Servi
             return;
         }
 
-        String bufferSize = camelContext.getGlobalOption(BUFFER_SIZE);
-        String hold = camelContext.getGlobalOption(THRESHOLD);
-        String chiper = camelContext.getGlobalOption(CIPHER_TRANSFORMATION);
-        String dir = camelContext.getGlobalOption(TEMP_DIR);
-
-        boolean warn = false;
-        if (bufferSize != null) {
-            warn = true;
-            this.bufferSize = camelContext.getTypeConverter().convertTo(Integer.class, bufferSize);
-        }
-        if (hold != null) {
-            warn = true;
-            this.spoolThreshold = camelContext.getTypeConverter().convertTo(Long.class, hold);
-        }
-        if (chiper != null) {
-            warn = true;
-            this.spoolChiper = chiper;
-        }
-        if (dir != null) {
-            warn = true;
-            this.spoolDirectory = camelContext.getTypeConverter().convertTo(File.class, dir);
-        }
-        if (warn) {
-            LOG.warn("Configuring of StreamCaching using CamelContext properties is deprecated - use StreamCachingStrategy instead.");
-        }
-
         if (spoolUsedHeapMemoryThreshold > 99) {
             throw new IllegalArgumentException("SpoolHeapMemoryWatermarkThreshold must not be higher than 99, was: " + spoolUsedHeapMemoryThreshold);
         }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java
index 38d43fa..aeb54de 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultTransformerRegistry.java
@@ -148,7 +148,7 @@ public class DefaultTransformerRegistry extends AbstractMap<TransformerKey, Tran
         }
 
         // we want transformers to be static if they are part of setting up or starting routes
-        if (context.isSetupRoutes() || context.isStartingRoutes()) {
+        if (context.isSetupRoutes() || context.getRouteController().isStartingRoutes()) {
             answer = staticMap.put(key, transformer);
         } else {
             answer = dynamicMap.put(key, transformer);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultUuidGenerator.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultUuidGenerator.java
index e283844..d48551d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultUuidGenerator.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultUuidGenerator.java
@@ -25,8 +25,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Default {@link UuidGenerator} that is based on the {@link ActiveMQUuidGenerator} but
- * is optimized for Camel usage to startup faster and avoid use local network binding to obtain a random number.
+ * Default {@link UuidGenerator} optimized for Camel usage.
  */
 public class DefaultUuidGenerator implements UuidGenerator {
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java
index e2b577c..06bc5bd 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultValidatorRegistry.java
@@ -112,7 +112,7 @@ public class DefaultValidatorRegistry extends AbstractMap<ValidatorKey, Validato
         }
 
         // we want validators to be static if they are part of setting up or starting routes
-        if (context.isSetupRoutes() || context.isStartingRoutes()) {
+        if (context.isSetupRoutes() || context.getRouteController().isStartingRoutes()) {
             answer = staticMap.put(key, validator);
         } else {
             answer = dynamicMap.put(key, validator);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DeferProducer.java b/camel-core/src/main/java/org/apache/camel/impl/DeferProducer.java
index 0ddf1bf..aedd1a2 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DeferProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DeferProducer.java
@@ -40,31 +40,6 @@ public class DeferProducer extends org.apache.camel.support.ServiceSupport imple
     }
 
     @Override
-    public Exchange createExchange() {
-        if (delegate == null) {
-            throw new IllegalStateException("Not started");
-        }
-        return delegate.createExchange();
-    }
-
-    @Override
-    public Exchange createExchange(ExchangePattern pattern) {
-        if (delegate == null) {
-            throw new IllegalStateException("Not started");
-        }
-        return delegate.createExchange(pattern);
-    }
-
-    @Override
-    @Deprecated
-    public Exchange createExchange(Exchange exchange) {
-        if (delegate == null) {
-            throw new IllegalStateException("Not started");
-        }
-        return delegate.createExchange(exchange);
-    }
-
-    @Override
     public void process(Exchange exchange) throws Exception {
         if (delegate == null) {
             throw new IllegalStateException("Not started");
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DurationRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/DurationRoutePolicy.java
index 99019e0..781f4f3 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DurationRoutePolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DurationRoutePolicy.java
@@ -172,10 +172,10 @@ public class DurationRoutePolicy extends org.apache.camel.support.RoutePolicySup
                     camelContext.stop();
                 } else if (action == Action.STOP_ROUTE) {
                     log.info("Stopping route: {}{}", routeId, tail);
-                    camelContext.stopRoute(routeId);
+                    camelContext.getRouteController().stopRoute(routeId);
                 } else if (action == Action.SUSPEND_ROUTE) {
                     log.info("Suspending route: {}{}", routeId, tail);
-                    camelContext.suspendRoute(routeId);
+                    camelContext.getRouteController().suspendRoute(routeId);
                 } else if (action == Action.SUSPEND_ALL_ROUTES) {
                     log.info("Suspending all routes {}", tail);
                     camelContext.suspend();
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EmptyConsumerCache.java b/camel-core/src/main/java/org/apache/camel/impl/EmptyConsumerCache.java
index 219371a..18f2ba1 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EmptyConsumerCache.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EmptyConsumerCache.java
@@ -43,7 +43,7 @@ public class EmptyConsumerCache extends ConsumerCache {
             if (answer instanceof IsSingleton) {
                 singleton = ((IsSingleton) answer).isSingleton();
             }
-            if (getCamelContext().isStartingRoutes() && singleton) {
+            if (getCamelContext().getRouteController().isStartingRoutes() && singleton) {
                 // if we are currently starting a route, then add as service and enlist in JMX
                 // - but do not enlist non-singletons in JMX
                 // - note addService will also start the service
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EmptyProducerCache.java b/camel-core/src/main/java/org/apache/camel/impl/EmptyProducerCache.java
index 56a7582..fedc2fa 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EmptyProducerCache.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EmptyProducerCache.java
@@ -37,7 +37,7 @@ public class EmptyProducerCache extends ProducerCache {
         Producer answer;
         try {
             answer = endpoint.createProducer();
-            if (getCamelContext().isStartingRoutes() && answer.isSingleton()) {
+            if (getCamelContext().getRouteController().isStartingRoutes() && answer.isSingleton()) {
                 // if we are currently starting a route, then add as service and enlist in JMX
                 // - but do not enlist non-singletons in JMX
                 // - note addService will also start the service
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
index d0acf9f..6fca426 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenConsumerRoute.java
@@ -36,8 +36,8 @@ import org.apache.camel.util.EndpointHelper;
  * <a href="http://camel.apache.org/event-driven-consumer.html">Event Driven Consumer</a>
  * <p/>
  * Use the API from {@link org.apache.camel.CamelContext} to control the lifecycle of a route,
- * such as starting and stopping using the {@link org.apache.camel.CamelContext#startRoute(String)}
- * and {@link org.apache.camel.CamelContext#stopRoute(String)} methods.
+ * such as starting and stopping using the {@link org.apache.camel.spi.RouteController#startRoute(String)}
+ * and {@link org.apache.camel.spi.RouteController#stopRoute(String)} methods.
  *
  * @version 
  */
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ExpressionAdapter.java b/camel-core/src/main/java/org/apache/camel/impl/ExpressionAdapter.java
deleted file mode 100644
index 0f906c4..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ExpressionAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-/**
- * 
- * @deprecated
- * @see org.apache.camel.support.ExpressionAdapter
- */
-@Deprecated
-public class ExpressionAdapter extends org.apache.camel.support.ExpressionAdapter {
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ExpressionSupport.java b/camel-core/src/main/java/org/apache/camel/impl/ExpressionSupport.java
deleted file mode 100644
index 3c10ea6..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ExpressionSupport.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-/**
- * 
- * @deprecated
- * @see org.apache.camel.support.ExpressionSupport
- */
-@Deprecated
-public abstract class ExpressionSupport extends org.apache.camel.support.ExpressionSupport {
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/HeaderFilterStrategyComponent.java b/camel-core/src/main/java/org/apache/camel/impl/HeaderFilterStrategyComponent.java
index 903444b..a43f581 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/HeaderFilterStrategyComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/HeaderFilterStrategyComponent.java
@@ -25,17 +25,17 @@ import org.apache.camel.spi.Metadata;
 /**
  * Base class for components to support configuring a {@link org.apache.camel.spi.HeaderFilterStrategy}.
  */
-public abstract class HeaderFilterStrategyComponent extends UriEndpointComponent implements HeaderFilterStrategyAware {
+public abstract class HeaderFilterStrategyComponent extends DefaultComponent implements HeaderFilterStrategyAware {
 
     @Metadata(label = "filter", description = "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.")
     private HeaderFilterStrategy headerFilterStrategy;
     
     public HeaderFilterStrategyComponent(Class<? extends Endpoint> endpointClass) {
-        super(endpointClass);
+        super();
     }
 
     public HeaderFilterStrategyComponent(CamelContext context, Class<? extends Endpoint> endpointClass) {
-        super(context, endpointClass);
+        super(context);
     }
     
     public HeaderFilterStrategy getHeaderFilterStrategy() {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpoint.java
index b4d1d90..f168a15 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpoint.java
@@ -21,7 +21,6 @@ import java.util.Map;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
-import org.apache.camel.EndpointConfiguration;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.PollingConsumer;
@@ -73,10 +72,6 @@ public class InterceptSendToEndpoint implements Endpoint, ShutdownableService {
         return delegate.getEndpointUri();
     }
 
-    public EndpointConfiguration getEndpointConfiguration() {
-        return delegate.getEndpointConfiguration();
-    }
-
     public String getEndpointKey() {
         return delegate.getEndpointKey();
     }
@@ -89,11 +84,6 @@ public class InterceptSendToEndpoint implements Endpoint, ShutdownableService {
         return delegate.createExchange(pattern);
     }
 
-    @Deprecated
-    public Exchange createExchange(Exchange exchange) {
-        return delegate.createExchange(exchange);
-    }
-
     public CamelContext getCamelContext() {
         return delegate.getCamelContext();
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpointProcessor.java b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpointProcessor.java
index 76a854b..d8cc101 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpointProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToEndpointProcessor.java
@@ -52,19 +52,6 @@ public class InterceptSendToEndpointProcessor extends DefaultAsyncProducer {
         return producer.getEndpoint();
     }
 
-    public Exchange createExchange() {
-        return producer.createExchange();
-    }
-
-    public Exchange createExchange(ExchangePattern pattern) {
-        return producer.createExchange(pattern);
-    }
-
-    @Deprecated
-    public Exchange createExchange(Exchange exchange) {
-        return producer.createExchange(exchange);
-    }
-
     @Override
     public boolean process(Exchange exchange, AsyncCallback callback) {
         // process the detour so we do the detour routing
diff --git a/camel-core/src/main/java/org/apache/camel/impl/JndiRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/JndiRegistry.java
index 2fcf73f..7cbb9c3 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/JndiRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/JndiRegistry.java
@@ -126,18 +126,6 @@ public class JndiRegistry implements Registry {
         return answer;
     }
 
-    public Object lookup(String name) {
-        return lookupByName(name);
-    }
-
-    public <T> T lookup(String name, Class<T> type) {
-        return lookupByNameAndType(name, type);
-    }
-
-    public <T> Map<String, T> lookupByType(Class<T> type) {
-        return findByTypeWithName(type);
-    }
-
     public void bind(String name, Object object) {
         try {
             getContext().bind(name, object);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java b/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
deleted file mode 100644
index bb75282..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.LoggingLevel;
-import org.apache.camel.util.CamelLogger;
-
-/**
- * @deprecated use {@link org.apache.camel.support.LoggingExceptionHandler}
- */
-@Deprecated
-public class LoggingExceptionHandler extends org.apache.camel.support.LoggingExceptionHandler {
-
-    public LoggingExceptionHandler(Class<?> ownerType) {
-        super(ownerType);
-    }
-
-    public LoggingExceptionHandler(CamelContext camelContext, Class<?> ownerType) {
-        super(camelContext, ownerType);
-    }
-
-    public LoggingExceptionHandler(Class<?> ownerType, LoggingLevel level) {
-        super(ownerType, level);
-    }
-
-    public LoggingExceptionHandler(CamelContext camelContext, Class<?> ownerType, LoggingLevel level) {
-        super(camelContext, ownerType, level);
-    }
-
-    public LoggingExceptionHandler(CamelLogger logger) {
-        super(logger);
-    }
-
-    public LoggingExceptionHandler(CamelContext camelContext, CamelLogger logger) {
-        super(camelContext, logger);
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/MainSupport.java b/camel-core/src/main/java/org/apache/camel/impl/MainSupport.java
deleted file mode 100644
index ec83351..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/MainSupport.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-/**
- * @deprecated
- * @see org.apache.camel.main.MainSupport
- */
-@Deprecated
-public abstract class MainSupport extends org.apache.camel.main.MainSupport {
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/MappedEndpointConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/MappedEndpointConfiguration.java
deleted file mode 100644
index 317cc2d..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/MappedEndpointConfiguration.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.EndpointConfiguration;
-import org.apache.camel.TypeConverter;
-import org.apache.camel.util.UnsafeUriCharactersEncoder;
-
-/**
- * Fallback implementation of {@link EndpointConfiguration} used by {@link Component}s
- * that did not yet define a configuration type.
- */
-@Deprecated
-public final class MappedEndpointConfiguration extends DefaultEndpointConfiguration {
-    // TODO: need 2 sets to differentiate between user keys and fixed keys
-    private Map<String, Object> params = new LinkedHashMap<>();
-
-    MappedEndpointConfiguration(CamelContext camelContext) {
-        super(camelContext);
-    }
-
-    MappedEndpointConfiguration(CamelContext camelContext, String uri) {
-        super(camelContext);
-        setURI(uri);
-    }
-
-    @SuppressWarnings("unchecked")
-    public <T> T getParameter(String name) {
-        return (T) params.get(name);
-    }
-
-    @Override
-    public <T> void setParameter(String name, T value) {
-        params.put(name, value);
-    }
-    
-    @Override
-    public boolean equals(Object other) {
-        if (other == null || !(other instanceof MappedEndpointConfiguration)) {
-            return false;
-        }
-        // if all parameters including scheme are the same, the component and uri must be the same too
-        return this == other || (this.getClass() == other.getClass() && params.equals(((MappedEndpointConfiguration)other).params));
-    }
-
-    @Override
-    public int hashCode() {
-        return params.hashCode();
-    }
-
-    @Override
-    protected void parseURI() {
-        ConfigurationHelper.populateFromURI(getCamelContext(), this, new ConfigurationHelper.ParameterSetter() {
-            @Override
-            public <T> void set(CamelContext camelContext, EndpointConfiguration config, String name, T value) {
-                if (name != null && value != null) {
-                    params.put(name, value);
-                }
-            }
-        });
-    }
-
-    @Override
-    public String toUriString(UriFormat format) {
-        Set<Map.Entry<String, Object>> entries = params.entrySet();
-        List<String> queryParams = new ArrayList<>();
-        
-        String scheme = null;
-        String schemeSpecificPart = null;
-        String authority = null;
-        String path = null;
-        String fragment = null;
-
-        TypeConverter converter = getCamelContext().getTypeConverter();
-
-        // Separate URI values from query parameters
-        for (Map.Entry<String, Object> entry : entries) {
-            String key = entry.getKey();
-            Object value = entry.getValue();
-            if (key.equals(EndpointConfiguration.URI_SCHEME)) {
-                scheme = converter.convertTo(String.class, value);
-            } else if (key.equals(EndpointConfiguration.URI_SCHEME_SPECIFIC_PART)) {
-                schemeSpecificPart = converter.convertTo(String.class, value);
-            } else if (key.equals(EndpointConfiguration.URI_AUTHORITY)) {
-                authority = converter.convertTo(String.class, value);
-            } else if (key.equals(EndpointConfiguration.URI_USER_INFO)) {
-                // ignore, part of authority
-            } else if (key.equals(EndpointConfiguration.URI_HOST)) {
-                // ignore, part of authority
-            } else if (key.equals(EndpointConfiguration.URI_PORT)) {
-                // ignore, part of authority
-            } else if (key.equals(EndpointConfiguration.URI_PATH)) {
-                path = converter.convertTo(String.class, value);
-            } else if (key.equals(EndpointConfiguration.URI_QUERY)) {
-                // ignore, but this should not be the case, may be a good idea to log...
-            } else if (key.equals(EndpointConfiguration.URI_FRAGMENT)) {
-                fragment = converter.convertTo(String.class, value);
-            } else {
-                // convert to "param=value" format here, order will be preserved
-                if (value instanceof List) {
-                    for (Object item : (List<?>)value) {
-                        queryParams.add(key + "=" + UnsafeUriCharactersEncoder.encode(item.toString()));
-                    }
-                } else {
-                    queryParams.add(key + "=" + UnsafeUriCharactersEncoder.encode(value.toString()));
-                }
-            }
-        }
-
-        queryParams.sort(null);
-        StringBuilder q = new StringBuilder();
-        for (String entry : queryParams) {
-            q.append(q.length() == 0 ? "" : "&");
-            q.append(entry);
-        }
-
-        StringBuilder u = new StringBuilder(64);
-        if (scheme != null) {
-            u.append(scheme); // SHOULD NOT be null
-            u.append(":");
-        }
-        if (authority != null) {
-            u.append("//");
-            u.append(authority);
-            u.append(path);
-            if (q.length() > 0) {
-                u.append("?");
-                u.append(q);
-            }
-            if (fragment != null) {
-                u.append("#");
-                u.append(fragment);
-            }
-        } else {
-            // add leading // if not provided
-            if (!schemeSpecificPart.startsWith("//")) {
-                u.append("//");
-            }
-            u.append(schemeSpecificPart);
-        }
-        return u.toString();
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ParameterConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/ParameterConfiguration.java
deleted file mode 100644
index 6fbf867..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ParameterConfiguration.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.lang.reflect.Field;
-
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.util.CollectionStringBuffer;
-import org.apache.camel.util.JsonSchemaHelper;
-
-import static org.apache.camel.util.StringQuoteHelper.doubleQuote;
-
-/**
- * Represents the configuration of a URI query parameter value to allow type conversion
- * and better validation of the configuration of URIs and Endpoints
- */
-@Deprecated
-public class ParameterConfiguration {
-    private final String name;
-    private final Class<?> parameterType;
-
-    public ParameterConfiguration(String name, Class<?> parameterType) {
-        this.name = name;
-        this.parameterType = parameterType;
-    }
-
-    @Override
-    public String toString() {
-        return "ParameterConfiguration[" + name + " on " + parameterType + "]";
-    }
-
-    /**
-     * Returns the name of the parameter value
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the type of the parameter value
-     */
-    public Class<?> getParameterType() {
-        return parameterType;
-    }
-
-    /**
-     * Factory method to create a new ParameterConfiguration from a field
-     */
-    public static ParameterConfiguration newInstance(String name, Field field, UriParam uriParam) {
-        return new AnnotatedParameterConfiguration(name, field.getType(), field);
-    }
-
-    /**
-     * Returns the JSON format of this parameter configuration
-     */
-    public String toJson() {
-        if (parameterType.isEnum()) {
-            String typeName = "string";
-            CollectionStringBuffer sb = new CollectionStringBuffer();
-            for (Object value : parameterType.getEnumConstants()) {
-                sb.append(doubleQuote(value.toString()));
-            }
-            return doubleQuote(name) + ": { \"type\": " + doubleQuote(typeName)
-                    + ", \"javaType\": \"" + parameterType.getCanonicalName() + "\""
-                    + ", \"enum\": [ " + sb.toString() + " ] }";
-        } else if (parameterType.isArray()) {
-            String typeName = "array";
-            return doubleQuote(name) + ": { \"type\": " + doubleQuote(typeName)
-                    + ", \"javaType\": \"" + parameterType.getCanonicalName() + "\" }";
-        } else {
-            String typeName = JsonSchemaHelper.getType(parameterType);
-            return doubleQuote(name) + ": { \"type\": " + doubleQuote(typeName)
-                    + ", \"javaType\": \"" + parameterType.getCanonicalName() + "\" }";
-        }
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java
index cf48b8b..50f2778 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java
@@ -43,9 +43,8 @@ public class ProcessorEndpoint extends DefaultPollingEndpoint {
     protected ProcessorEndpoint() {
     }
 
-    @SuppressWarnings("deprecation")
     public ProcessorEndpoint(String endpointUri, CamelContext context, Processor processor) {
-        super(endpointUri);
+        super(endpointUri, null);
         this.setCamelContext(context);
         this.processor = processor;
     }
@@ -59,12 +58,6 @@ public class ProcessorEndpoint extends DefaultPollingEndpoint {
         super(endpointUri, component);
     }
 
-    @Deprecated
-    public ProcessorEndpoint(String endpointUri, Processor processor) {
-        super(endpointUri);
-        this.processor = processor;
-    }
-
     public Producer createProducer() throws Exception {
         return new DefaultProducer(this) {
             public void process(Exchange exchange) throws Exception {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
index 46e7b84..c6b9b22 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
@@ -74,18 +74,6 @@ public class PropertyPlaceholderDelegateRegistry implements Registry {
         return delegate.findByType(type);
     }
 
-    public Object lookup(String name) {
-        return lookupByName(name);
-    }
-
-    public <T> T lookup(String name, Class<T> type) {
-        return lookupByNameAndType(name, type);
-    }
-
-    public <T> Map<String, T> lookupByType(Class<T> type) {
-        return findByTypeWithName(type);
-    }
-
     public Registry getRegistry() {
         return delegate;
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java b/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
deleted file mode 100644
index 30b2e43..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-/**
- * @deprecated use {@link org.apache.camel.support.RoutePolicySupport}
- */
-@Deprecated
-public class RoutePolicySupport extends org.apache.camel.support.RoutePolicySupport {
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
index 820af33..e8a3fd3 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ScheduledPollEndpoint.java
@@ -21,7 +21,6 @@ import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.PollingConsumer;
@@ -100,16 +99,6 @@ public abstract class ScheduledPollEndpoint extends DefaultEndpoint {
         super(endpointUri, component);
     }
 
-    @Deprecated
-    protected ScheduledPollEndpoint(String endpointUri, CamelContext context) {
-        super(endpointUri, context);
-    }
-
-    @Deprecated
-    protected ScheduledPollEndpoint(String endpointUri) {
-        super(endpointUri);
-    }
-
     protected ScheduledPollEndpoint() {
     }
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ServiceSupport.java b/camel-core/src/main/java/org/apache/camel/impl/ServiceSupport.java
deleted file mode 100644
index c172c86..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/ServiceSupport.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-/**
- * @deprecated use org.apache.camel.support.ServiceSupport instead
- *
- */
-@Deprecated
-public abstract class ServiceSupport extends org.apache.camel.support.ServiceSupport {
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/SimpleRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/SimpleRegistry.java
index f698ac7..8a6d856 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/SimpleRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/SimpleRegistry.java
@@ -72,15 +72,4 @@ public class SimpleRegistry extends HashMap<String, Object> implements Registry
         return result;
     }
 
-    public Object lookup(String name) {
-        return lookupByName(name);
-    }
-
-    public <T> T lookup(String name, Class<T> type) {
-        return lookupByNameAndType(name, type);
-    }
-
-    public <T> Map<String, T> lookupByType(Class<T> type) {
-        return findByTypeWithName(type);
-    }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
index 6a329c7..fd52871 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
@@ -545,7 +545,7 @@ public class SupervisingRouteController extends DefaultRouteController {
         }
 
         public ServiceStatus getStatus() {
-            return getContext().getCamelContext().getRouteStatus(getId());
+            return getContext().getCamelContext().getRouteController().getRouteStatus(getId());
         }
 
         public int getInitializationOrder() {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/SynchronousDelegateProducer.java b/camel-core/src/main/java/org/apache/camel/impl/SynchronousDelegateProducer.java
index 4b506d2..d68104e 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/SynchronousDelegateProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/SynchronousDelegateProducer.java
@@ -45,19 +45,6 @@ public class SynchronousDelegateProducer implements Producer {
         return producer.getEndpoint();
     }
 
-    public Exchange createExchange() {
-        return producer.createExchange();
-    }
-
-    public Exchange createExchange(ExchangePattern pattern) {
-        return producer.createExchange(pattern);
-    }
-
-    @Deprecated
-    public Exchange createExchange(Exchange exchange) {
-        return producer.createExchange(exchange);
-    }
-
     public void process(Exchange exchange) throws Exception {
         producer.process(exchange);
     }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java
index 5c0eb44..cf9b7d4 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingExceptionRoutePolicy.java
@@ -28,14 +28,13 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
-import org.apache.camel.processor.loadbalancer.CircuitBreakerLoadBalancer;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.support.RoutePolicySupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Modeled after the {@link CircuitBreakerLoadBalancer} and {@link ThrottlingInflightRoutePolicy}
+ * Modeled after the circuit breaker {@link ThrottlingInflightRoutePolicy}
  * this {@link RoutePolicy} will stop consuming from an endpoint based on the type of exceptions that are
  * thrown and the threshold setting.
  *
@@ -135,7 +134,7 @@ public class ThrottlingExceptionRoutePolicy extends RoutePolicySupport implement
     }
 
     /**
-     * uses similar approach as {@link CircuitBreakerLoadBalancer}
+     * uses similar approach as circuit breaker
      * if the exchange has an exception that we are watching
      * then we count that as a failure otherwise we ignore it
      */
diff --git a/camel-core/src/main/java/org/apache/camel/impl/UriComponentConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/UriComponentConfiguration.java
deleted file mode 100644
index c95faea..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/UriComponentConfiguration.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.util.Collections;
-import java.util.SortedMap;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.Endpoint;
-import org.apache.camel.InvalidPropertyException;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.util.IntrospectionSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Implements {@link org.apache.camel.EndpointConfiguration} for Endpoint implementations
- * which are annotated with {@link org.apache.camel.spi.UriEndpoint}
- * to use the {@link org.apache.camel.spi.UriParam} and {@link org.apache.camel.spi.UriParams} annotations
- * to denote its parameters which can be specified via URI query parameters.
- */
-@Deprecated
-public class UriComponentConfiguration extends ComponentConfigurationSupport {
-    private static final Logger LOG = LoggerFactory.getLogger(UriComponentConfiguration.class);
-
-    private final Class<? extends Endpoint> endpointClass;
-    private final SortedMap<String, ParameterConfiguration> parameterConfigurationMap;
-    private boolean strictOnParameterNames = true;
-
-    public UriComponentConfiguration(Component component, Class<? extends Endpoint> endpointClass,
-                                     SortedMap<String, ParameterConfiguration> parameterConfigurationMap) {
-        super(component);
-        this.endpointClass = endpointClass;
-        this.parameterConfigurationMap = Collections.unmodifiableSortedMap(parameterConfigurationMap);
-    }
-
-    public UriComponentConfiguration(Component component, Class<? extends Endpoint> endpointClass) {
-        this(component, endpointClass, UriEndpointComponent.createParameterConfigurationMap(endpointClass));
-    }
-
-    public UriComponentConfiguration(UriEndpointComponent component) {
-        this(component, component.getEndpointClass(), component.getParameterConfigurationMap());
-    }
-
-    @Override
-    public Object getEndpointParameter(Endpoint endpoint, String name) throws RuntimeCamelException {
-        ParameterConfiguration config = getParameterConfiguration(name);
-
-        // lets try get the property regardless of if this maps to a valid property name
-        // then if the introspection fails we will get a valid error otherwise
-        // lets raise a warning afterwards that we should update the metadata on the endpoint class
-        Object answer = null;
-        try {
-            answer = IntrospectionSupport.getProperty(endpoint, name);
-        } catch (Exception e) {
-            throw new RuntimeCamelException(
-                    "Failed to get property '" + name + "' on " + endpoint + " due " + e.getMessage(), e);
-        }
-        if (config == null) {
-            unknownPropertyName(name);
-        }
-        return answer;
-    }
-
-    @Override
-    public void setEndpointParameter(Endpoint endpoint, String name, Object value) throws RuntimeCamelException {
-        ParameterConfiguration config = getParameterConfiguration(name);
-
-        // lets try set the property regardless of if this maps to a valid property name
-        // then if the injection fails we will get a valid error otherwise
-        // lets raise a warning afterwards that we should update the metadata on the endpoint class
-        try {
-            IntrospectionSupport.setProperty(endpoint, name, value);
-        } catch (Exception e) {
-            throw new RuntimeCamelException("Failed to set property '" + name + "' on " + endpoint + " to value "
-                    + value + " due " + e.getMessage(), e);
-        }
-        if (config == null) {
-            unknownPropertyName(name);
-        }
-    }
-
-    public CamelContext getCamelContext() {
-        return component.getCamelContext();
-    }
-
-    public Class<? extends Endpoint> getEndpointClass() {
-        return endpointClass;
-    }
-
-    public boolean isStrictOnParameterNames() {
-        return strictOnParameterNames;
-    }
-
-    /**
-     * Strict mode is enabled by default but if disabled then invalid parameter names
-     * will not result in exceptions but we will just log warnings about their use
-     *
-     * @param strictOnParameterNames whether to throw exceptions if invalid
-     *                               parameter names are used or not
-     */
-    public void setStrictOnParameterNames(boolean strictOnParameterNames) {
-        this.strictOnParameterNames = strictOnParameterNames;
-    }
-
-    @Override
-    public SortedMap<String, ParameterConfiguration> getParameterConfigurationMap() {
-        return parameterConfigurationMap;
-    }
-
-    @Override
-    protected void validatePropertyName(String name) {
-        ParameterConfiguration parameterConfiguration = getParameterConfiguration(name);
-        if (parameterConfiguration == null) {
-            unknownPropertyName(name);
-        }
-    }
-
-    @Override
-    protected Object validatePropertyValue(String name, Object value) {
-        ParameterConfiguration parameterConfiguration = getParameterConfiguration(name);
-        if (parameterConfiguration == null) {
-            unknownPropertyName(name);
-            return value;
-        } else {
-            Class<?> parameterType = parameterConfiguration.getParameterType();
-            return getCamelContext().getTypeConverter().convertTo(parameterType, value);
-        }
-    }
-
-    protected void unknownPropertyName(String name) {
-        if (isStrictOnParameterNames()) {
-            throw new InvalidPropertyException(this, name, endpointClass);
-        } else {
-            LOG.warn("Using parameter " + name + " on endpoint " + getEndpointClass().getName()
-                    + " which does not have a @UriParam annotation! "
-                    + "Please add the @UriParam annotation to the " + name + " field");
-        }
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/UriEndpointComponent.java b/camel-core/src/main/java/org/apache/camel/impl/UriEndpointComponent.java
deleted file mode 100644
index ec3b40c..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/UriEndpointComponent.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.lang.reflect.Field;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.ComponentConfiguration;
-import org.apache.camel.Endpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.ReflectionHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A component implementation for endpoints which are annotated with UriEndpoint to describe
- * their configurable parameters via annotations
- *
- * @deprecated use {@link DefaultComponent}
- */
-@Deprecated
-public abstract class UriEndpointComponent extends DefaultComponent {
-    private static final Logger LOG = LoggerFactory.getLogger(UriEndpointComponent.class);
-
-    private Class<? extends Endpoint> endpointClass;
-    private SortedMap<String, ParameterConfiguration> parameterConfigurationMap;
-
-    public UriEndpointComponent(Class<? extends Endpoint> endpointClass) {
-        this.endpointClass = endpointClass;
-    }
-
-    public UriEndpointComponent(CamelContext context, Class<? extends Endpoint> endpointClass) {
-        super(context);
-        this.endpointClass = endpointClass;
-    }
-
-    /**
-     * To use a specific endpoint class, instead of what has been provided by the constructors.
-     *
-     * @param endpointClass the endpoint class to use
-     */
-    public void setEndpointClass(Class<? extends Endpoint> endpointClass) {
-        this.endpointClass = endpointClass;
-    }
-
-    @Override
-    public ComponentConfiguration createComponentConfiguration() {
-        return new UriComponentConfiguration(this);
-    }
-
-    /**
-     * Returns a newly created sorted map, indexed by name of all the parameter configurations
-     * of the given endpoint class using introspection for the various annotations like
-     * {@link org.apache.camel.spi.UriEndpoint}, {@link org.apache.camel.spi.UriParam}, {@link org.apache.camel.spi.UriParams}
-     */
-    public static SortedMap<String, ParameterConfiguration> createParameterConfigurationMap(
-            Class<? extends Endpoint> endpointClass) {
-        SortedMap<String, ParameterConfiguration> answer = new TreeMap<>();
-        populateParameterConfigurationMap(answer, endpointClass, "");
-        return answer;
-    }
-
-    protected static void populateParameterConfigurationMap(
-            final SortedMap<String, ParameterConfiguration> parameterMap, Class<?> aClass,
-            final String prefix) {
-        ReflectionHelper.doWithFields(aClass, new ReflectionHelper.FieldCallback() {
-            @Override
-            public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
-                UriParam uriParam = field.getAnnotation(UriParam.class);
-                if (uriParam != null) {
-                    String name = uriParam.name();
-                    if (ObjectHelper.isEmpty(name)) {
-                        name = field.getName();
-                    }
-                    String propertyName = prefix + name;
-
-                    // is the parameter a nested configuration object
-                    Class<?> fieldType = field.getType();
-                    UriParams uriParams = fieldType.getAnnotation(UriParams.class);
-                    if (uriParams != null) {
-                        String nestedPrefix = uriParams.prefix();
-                        if (nestedPrefix == null) {
-                            nestedPrefix = "";
-                        }
-                        nestedPrefix = (prefix + nestedPrefix).trim();
-                        populateParameterConfigurationMap(parameterMap, fieldType, nestedPrefix);
-                    } else {
-                        if (parameterMap.containsKey(propertyName)) {
-                            LOG.warn("Duplicate property name {} defined on field {}", propertyName, field);
-                        } else {
-                            parameterMap.put(propertyName,
-                                    ParameterConfiguration.newInstance(propertyName, field, uriParam));
-                        }
-                    }
-                }
-            }
-        });
-    }
-
-    public Class<? extends Endpoint> getEndpointClass() {
-        return endpointClass;
-    }
-
-    /**
-     * Returns the sorted map of all the URI query parameter names to their {@link ParameterConfiguration} objects
-     */
-    public SortedMap<String, ParameterConfiguration> getParameterConfigurationMap() {
-        if (parameterConfigurationMap == null) {
-            parameterConfigurationMap = createParameterConfigurationMap(getEndpointClass());
-        }
-        return new TreeMap<>(parameterConfigurationMap);
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/UriEndpointConfiguration.java b/camel-core/src/main/java/org/apache/camel/impl/UriEndpointConfiguration.java
deleted file mode 100644
index b21cdde..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/UriEndpointConfiguration.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.EndpointConfiguration;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.util.IntrospectionSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Implements {@link EndpointConfiguration} for Endpoint implementations
- * which are annotated with {@link org.apache.camel.spi.UriEndpoint} to use the {@link UriParam} and {@link UriParams} annotations
- * to denote its parameters which can be specified via URI query parameters.
- */
-@Deprecated
-public class UriEndpointConfiguration implements EndpointConfiguration {
-    private static final Logger LOG = LoggerFactory.getLogger(UriEndpointConfiguration.class);
-
-    private final CamelContext camelContext;
-    private final Endpoint endpoint;
-    private String uriText;
-    private URI uri;
-    private SortedMap<String, ParameterConfiguration> propertyMap;
-
-    public UriEndpointConfiguration(CamelContext camelContext, Endpoint endpoint, String uriText) {
-        this.camelContext = camelContext;
-        this.endpoint = endpoint;
-        this.uriText = uriText;
-    }
-
-    @Override
-    public URI getURI() {
-        if (uri == null) {
-            // lazily create the URI which may fail as not all camel uriText are valid URI text
-            try {
-                uri = new URI(uriText);
-            } catch (URISyntaxException e) {
-                throw new RuntimeCamelException(e);
-            }
-        }
-        return uri;
-    }
-
-    public void setURI(URI uri) {
-        this.uriText = null;
-        this.uri = uri;
-    }
-
-    @Override
-    public <T> T getParameter(String name) throws RuntimeCamelException {
-        ParameterConfiguration config = getPropertyConfiguration(name);
-
-        // lets try get the property regardless of if this maps to a valid property name
-        // then if the introspection fails we will get a valid error otherwise
-        // lets raise a warning afterwards that we should update the metadata on the endpoint class
-        try {
-            @SuppressWarnings("unchecked")
-            T answer = (T)IntrospectionSupport.getProperty(endpoint, name);
-            if (config == null) {
-                warnMissingUriParamOnProperty(name);
-            }
-            return answer;
-        } catch (Exception e) {
-            throw new RuntimeCamelException(
-                    "Failed to get property '" + name + "' on " + endpoint + " due " + e.getMessage(), e);
-        }
-    }
-
-    protected void warnMissingUriParamOnProperty(String name) {
-        LOG.warn("Using property " + name + " on endpoint " + getEndpointClass().getName()
-                + " which does not have a @UriParam annotation! "
-                + "Please add the @UriParam annotation to the " + name + " field");
-    }
-
-    @Override
-    public <T> void setParameter(String name, T value) throws RuntimeCamelException {
-        ParameterConfiguration config = getPropertyConfiguration(name);
-
-        // lets try set the property regardless of if this maps to a valid property name
-        // then if the injection fails we will get a valid error otherwise
-        // lets raise a warning afterwards that we should update the metadata on the endpoint class
-        try {
-            IntrospectionSupport.setProperty(endpoint, name, value);
-        } catch (Exception e) {
-            throw new RuntimeCamelException(
-                    "Failed to set property '" + name + "' on " + endpoint + " to value " + value + " due "
-                            + e.getMessage(), e);
-        }
-        if (config == null) {
-            warnMissingUriParamOnProperty(name);
-        }
-    }
-
-    @Override
-    public String toUriString(UriFormat format) {
-        // TODO
-        return null;
-    }
-
-    public CamelContext getCamelContext() {
-        return camelContext;
-    }
-
-    public Class<? extends Endpoint> getEndpointClass() {
-        return endpoint.getClass();
-    }
-
-    /**
-     * Returns the property configuration for the given property name or null if it does not exist
-     */
-    public ParameterConfiguration getPropertyConfiguration(String name) {
-        return getPropertyConfigurationMap().get(name);
-    }
-
-    /**
-     * Returns the sorted map of all the property names to their {@link ParameterConfiguration} objects
-     */
-    public SortedMap<String, ParameterConfiguration> getPropertyConfigurationMap() {
-        if (propertyMap == null) {
-            propertyMap = UriEndpointComponent.createParameterConfigurationMap(getEndpointClass());
-        }
-        return new TreeMap<>(propertyMap);
-    }
-
-}
diff --git a/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
index 11aba04..4ef7fa0 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
@@ -232,7 +232,7 @@ public final class ClusteredRoutePolicy extends RoutePolicySupport implements Ca
                 ServiceStatus status = route.getRouteContext().getRoute().getStatus(getCamelContext());
                 if (status.isStartable()) {
                     LOGGER.debug("Starting route '{}'", route.getId());
-                    camelContext.startRoute(route.getId());
+                    camelContext.getRouteController().startRoute(route.getId());
 
                     startedRoutes.add(route);
                 }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java b/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java
index 0a08a33..ad011a2 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/converter/AsyncProcessorTypeConverter.java
@@ -41,11 +41,4 @@ public class AsyncProcessorTypeConverter extends TypeConverterSupport {
         return null;
     }
 
-    /**
-     * @deprecated use {@link AsyncProcessorConverterHelper#convert(org.apache.camel.Processor)} instead
-     */
-    @Deprecated
-    public static AsyncProcessor convert(Processor value) {
-        return AsyncProcessorConverterHelper.convert(value);
-    }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/CorePackageScanClassResolver.java b/camel-core/src/main/java/org/apache/camel/impl/converter/CorePackageScanClassResolver.java
index 1398aec..0ceb81d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/CorePackageScanClassResolver.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/converter/CorePackageScanClassResolver.java
@@ -81,12 +81,6 @@ public class CorePackageScanClassResolver implements PackageScanClassResolver {
     }
 
     @Override
-    public void setClassLoaders(Set<ClassLoader> classLoaders) {
-        // add all the class loaders
-        this.classLoaders.addAll(classLoaders);
-    }
-
-    @Override
     public Set<ClassLoader> getClassLoaders() {
         // return a new set to avoid any concurrency issues in other runtimes such as OSGi
         return Collections.unmodifiableSet(new LinkedHashSet<>(classLoaders));
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java b/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
index cdb6841..2d6f002 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
@@ -37,11 +37,6 @@ public class InstanceMethodFallbackTypeConverter extends TypeConverterSupport {
     private final TypeConverterRegistry registry;
     private final boolean allowNull;
 
-    @Deprecated
-    public InstanceMethodFallbackTypeConverter(CachingInjector<?> injector, Method method, TypeConverterRegistry registry) {
-        this(injector, method, registry, false);
-    }
-
     public InstanceMethodFallbackTypeConverter(CachingInjector<?> injector, Method method, TypeConverterRegistry registry, boolean allowNull) {
         this.injector = injector;
         this.method = method;
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java b/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java
index 63a199c..a0b329d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodTypeConverter.java
@@ -39,11 +39,6 @@ public class InstanceMethodTypeConverter extends TypeConverterSupport {
     private final TypeConverterRegistry registry;
     private final boolean allowNull;
 
-    @Deprecated
-    public InstanceMethodTypeConverter(CachingInjector<?> injector, Method method, TypeConverterRegistry registry) {
-        this(injector, method, registry, false);
-    }
-
     public InstanceMethodTypeConverter(CachingInjector<?> injector, Method method, TypeConverterRegistry registry, boolean allowNull) {
         this.injector = injector;
         this.method = method;
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/LazyLoadingTypeConverter.java b/camel-core/src/main/java/org/apache/camel/impl/converter/LazyLoadingTypeConverter.java
deleted file mode 100644
index bc477de..0000000
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/LazyLoadingTypeConverter.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.impl.converter;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.TypeConverter;
-import org.apache.camel.spi.FactoryFinder;
-import org.apache.camel.spi.Injector;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.util.ObjectHelper;
-
-/**
- * Lazy implementation of a type converter registry used for
- * <a href="http://camel.apache.org/type-converter.html">type converters</a> in Camel.
- * <p/>
- * This implementation will lazy load type converters on-demand.
- *
- * @version
- * @deprecated will be removed in a future Camel release.
- */
-@Deprecated
-public class LazyLoadingTypeConverter extends BaseTypeConverterRegistry {
-    private final AtomicBoolean loaded = new AtomicBoolean();
-
-    public LazyLoadingTypeConverter(PackageScanClassResolver resolver, Injector injector, FactoryFinder factoryFinder) {
-        super(resolver, injector, factoryFinder);
-    }
-
-    @Override
-    public boolean allowNull() {
-        return false;
-    }
-
-    @Override
-    protected Object doConvertTo(final Class<?> type, final Exchange exchange, final Object value, boolean tryConvert) throws Exception {
-        Object answer = super.doConvertTo(type, exchange, value, tryConvert);
-        if (answer == null && !loaded.get()) {
-            // okay we could not convert, so try again, but load the converters up front
-            ensureLoaded();
-            answer = super.doConvertTo(type, exchange, value, tryConvert);
-        }
-        return answer;
-    }
-
-    @Override
-    public TypeConverter getTypeConverter(Class<?> toType, Class<?> fromType) {
-        TypeConverter answer = super.getTypeConverter(toType, fromType);
-        if (answer == null && !loaded.get()) {
-            // okay we could not convert, so try again, but load the converters up front
-            ensureLoaded();
-            answer = super.getTypeConverter(toType, fromType);
-        }
-        return answer;
-    }
-
-    @Override
-    public Set<Class<?>> getFromClassMappings() {
-        if (!loaded.get()) {
-            ensureLoaded();
-        }
-        return super.getFromClassMappings();
-    }
-
-    @Override
-    public Map<Class<?>, TypeConverter> getToClassMappings(Class<?> fromClass) {
-        if (!loaded.get()) {
-            ensureLoaded();
-        }
-        return super.getToClassMappings(fromClass);
-    }
-
-    @Override
-    public Map<TypeMapping, TypeConverter> getTypeMappings() {
-        if (!loaded.get()) {
-            ensureLoaded();
-        }
-        return super.getTypeMappings();
-    }
-
-    @Override
-    protected TypeConverter doLookup(Class<?> toType, Class<?> fromType, boolean isSuper) {
-        TypeConverter answer = super.doLookup(toType, fromType, isSuper);
-        if (answer == null && !loaded.get()) {
-            // okay we could not convert, so try again, but load the converters up front
-            ensureLoaded();
-            answer = super.doLookup(toType, fromType, isSuper);
-        }
-        return answer;
-    }
-
-    private synchronized void ensureLoaded() {
-        if (loaded.compareAndSet(false, true)) {
-            try {
-                super.loadTypeConverters();
-            } catch (Exception e) {
-                throw ObjectHelper.wrapRuntimeCamelException(e);
-            }
-        }
... 34795 lines suppressed ...