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:05:20 UTC

[camel] 32/32: Extract camel-util and camel-api modules from camel-core

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 8956377568b58a583c6feca9980a93c0b52ac242
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Oct 3 16:38:35 2018 +0200

    Extract camel-util and camel-api modules from camel-core
---
 bom/camel-bom/pom.xml                              |  10 +
 camel-api/pom.xml                                  | 327 +++++++++++++++++++
 .../apache/camel/AfterPropertiesConfigured.java    |   0
 .../org/apache/camel/AlreadyStoppedException.java  |   0
 .../main/java/org/apache/camel/AsyncCallback.java  |   0
 .../main/java/org/apache/camel/AsyncEndpoint.java  |   0
 .../main/java/org/apache/camel/AsyncProcessor.java |   0
 .../main/java/org/apache/camel/AsyncProducer.java  |   0
 .../src/main/java/org/apache/camel/Attachment.java |   0
 .../java/org/apache/camel/AttachmentObjects.java   |   0
 .../main/java/org/apache/camel/Attachments.java    |   0
 .../main/java/org/apache/camel/BatchConsumer.java  |   0
 .../src/main/java/org/apache/camel/BeanInject.java |   0
 .../java/org/apache/camel/BinaryPredicate.java     |   0
 .../src/main/java/org/apache/camel/Body.java       |   0
 .../src/main/java/org/apache/camel/Builder.java    |   0
 .../main/java/org/apache/camel/BytesSource.java    |   0
 .../apache/camel/CamelAuthorizationException.java  |   0
 .../main/java/org/apache/camel/CamelContext.java   |   0
 .../java/org/apache/camel/CamelContextAware.java   |   0
 .../main/java/org/apache/camel/CamelException.java |   0
 .../org/apache/camel/CamelExchangeException.java   |   0
 .../org/apache/camel/CamelExecutionException.java  |   0
 .../org/apache/camel/CamelUnitOfWorkException.java |   0
 .../src/main/java/org/apache/camel/Channel.java    |   0
 .../src/main/java/org/apache/camel/Component.java  |   0
 .../main/java/org/apache/camel/ComponentAware.java |   0
 .../src/main/java/org/apache/camel/Consume.java    |   0
 .../src/main/java/org/apache/camel/Consumer.java   |   0
 .../java/org/apache/camel/ConsumerTemplate.java    |   0
 .../src/main/java/org/apache/camel/Converter.java  |   0
 .../java/org/apache/camel/DelegateEndpoint.java    |   0
 .../java/org/apache/camel/DelegateProcessor.java   |   0
 .../main/java/org/apache/camel/DynamicRouter.java  |   0
 .../src/main/java/org/apache/camel/Endpoint.java   |   0
 .../main/java/org/apache/camel/EndpointAware.java  |   0
 .../main/java/org/apache/camel/EndpointInject.java |   0
 .../java/org/apache/camel/ErrorHandlerFactory.java |   0
 .../src/main/java/org/apache/camel/Exchange.java   |   0
 .../java/org/apache/camel/ExchangeException.java   |   0
 .../java/org/apache/camel/ExchangePattern.java     |   0
 .../java/org/apache/camel/ExchangeProperties.java  |   0
 .../java/org/apache/camel/ExchangeProperty.java    |   0
 .../apache/camel/ExchangeTimedOutException.java    |   0
 .../org/apache/camel/ExecutorServiceAware.java     |   0
 .../apache/camel/ExpectedBodyTypeException.java    |   0
 .../main/java/org/apache/camel/Experimental.java   |   0
 .../src/main/java/org/apache/camel/Expression.java |   0
 .../camel/ExpressionEvaluationException.java       |   0
 .../camel/ExpressionIllegalSyntaxException.java    |   0
 .../org/apache/camel/ExtendedStartupListener.java  |   0
 .../camel/FailedToCreateConsumerException.java     |   0
 .../camel/FailedToCreateProducerException.java     |   0
 .../apache/camel/FailedToCreateRouteException.java |   0
 .../apache/camel/FailedToStartRouteException.java  |   0
 .../java/org/apache/camel/FallbackConverter.java   |   0
 .../org/apache/camel/FluentProducerTemplate.java   |   0
 .../src/main/java/org/apache/camel/Handler.java    |   0
 .../src/main/java/org/apache/camel/Header.java     |   0
 .../src/main/java/org/apache/camel/Headers.java    |   0
 .../src/main/java/org/apache/camel/InOnly.java     |   0
 .../src/main/java/org/apache/camel/InOut.java      |   0
 .../org/apache/camel/InvalidPayloadException.java  |   0
 .../camel/InvalidPayloadRuntimeException.java      |   0
 .../org/apache/camel/InvalidPropertyException.java |   0
 .../main/java/org/apache/camel/InvokeOnHeader.java |   0
 .../java/org/apache/camel/InvokeOnHeaders.java     |   0
 .../main/java/org/apache/camel/IsSingleton.java    |   0
 .../org/apache/camel/LoadPropertiesException.java  |   0
 .../main/java/org/apache/camel/LoggingLevel.java   |   0
 .../apache/camel/ManagementStatisticsLevel.java    |   0
 .../src/main/java/org/apache/camel/Message.java    |   0
 .../main/java/org/apache/camel/MessageHistory.java |   0
 .../org/apache/camel/MultipleConsumersSupport.java |   0
 .../src/main/java/org/apache/camel/NamedNode.java  |   0
 .../src/main/java/org/apache/camel/Navigate.java   |   0
 .../apache/camel/NoFactoryAvailableException.java  |   0
 .../java/org/apache/camel/NoSuchBeanException.java |   0
 .../org/apache/camel/NoSuchEndpointException.java  |   0
 .../org/apache/camel/NoSuchHeaderException.java    |   0
 .../org/apache/camel/NoSuchLanguageException.java  |   0
 .../org/apache/camel/NoSuchPropertyException.java  |   0
 .../camel/NoTypeConversionAvailableException.java  |   0
 .../java/org/apache/camel/NonManagedService.java   |   0
 .../src/main/java/org/apache/camel/Ordered.java    |   0
 .../src/main/java/org/apache/camel/OutHeaders.java |   0
 .../src/main/java/org/apache/camel/Pattern.java    |   0
 .../java/org/apache/camel/PollingConsumer.java     |   0
 .../camel/PollingConsumerPollingStrategy.java      |   0
 .../src/main/java/org/apache/camel/Predicate.java  |   0
 .../src/main/java/org/apache/camel/Processor.java  |   0
 .../src/main/java/org/apache/camel/Produce.java    |   0
 .../src/main/java/org/apache/camel/Producer.java   |   0
 .../java/org/apache/camel/ProducerTemplate.java    |   0
 .../main/java/org/apache/camel/PropertyInject.java |   0
 .../apache/camel/ProxyInstantiationException.java  |   0
 .../main/java/org/apache/camel/RecipientList.java  |   0
 .../camel/ResolveEndpointFailedException.java      |   0
 .../apache/camel/RollbackExchangeException.java    |   0
 .../src/main/java/org/apache/camel/Route.java      |   0
 .../src/main/java/org/apache/camel/RouteAware.java |   0
 .../main/java/org/apache/camel/RoutesBuilder.java  |   0
 .../main/java/org/apache/camel/RoutingSlip.java    |   0
 .../org/apache/camel/RuntimeCamelException.java    |   0
 .../org/apache/camel/RuntimeConfiguration.java     |   0
 .../org/apache/camel/RuntimeExchangeException.java |   0
 .../apache/camel/RuntimeExpressionException.java   |   0
 .../apache/camel/RuntimeTransformException.java    |   0
 .../apache/camel/SSLContextParametersAware.java    |   0
 .../src/main/java/org/apache/camel/Service.java    |   0
 .../main/java/org/apache/camel/ServiceStatus.java  |   0
 .../main/java/org/apache/camel/ShutdownRoute.java  |   0
 .../java/org/apache/camel/ShutdownRunningTask.java |   0
 .../java/org/apache/camel/ShutdownableService.java |   0
 .../java/org/apache/camel/StartupListener.java     |   0
 .../java/org/apache/camel/StatefulService.java     |   0
 .../main/java/org/apache/camel/StaticService.java  |   0
 .../main/java/org/apache/camel/StreamCache.java    |   0
 .../main/java/org/apache/camel/StringSource.java   |   0
 .../main/java/org/apache/camel/Suspendable.java    |   0
 .../java/org/apache/camel/SuspendableService.java  |   0
 .../src/main/java/org/apache/camel/TimeoutMap.java |   0
 .../main/java/org/apache/camel/TimerListener.java  |   0
 .../src/main/java/org/apache/camel/Traceable.java  |   0
 .../org/apache/camel/TypeConversionException.java  |   0
 .../main/java/org/apache/camel/TypeConverter.java  |   0
 .../java/org/apache/camel/TypeConverterExists.java |   0
 .../apache/camel/TypeConverterExistsException.java |   0
 .../apache/camel/TypeConverterLoaderException.java |   0
 .../main/java/org/apache/camel/TypeConverters.java |   0
 .../java/org/apache/camel/ValidationException.java |   0
 .../main/java/org/apache/camel/ValueHolder.java    |   0
 .../camel/VetoCamelContextStartException.java      |   0
 .../org/apache/camel/WaitForTaskToComplete.java    |   0
 .../main/java/org/apache/camel/WrappedFile.java    |   0
 .../camel/cluster/CamelClusterEventListener.java   |   0
 .../apache/camel/cluster/CamelClusterMember.java   |   0
 .../apache/camel/cluster/CamelClusterService.java  |   0
 .../org/apache/camel/cluster/CamelClusterView.java |   0
 .../java/org/apache/camel/cluster/package.html     |   0
 .../component/extension/ComponentExtension.java    |   0
 .../extension/ComponentVerifierExtension.java      |   0
 .../ComponentVerifierExtensionHelper.java          |   0
 .../component/extension/MetaDataExtension.java     |   0
 .../apache/camel/component/extension/package.html  |   0
 .../java/org/apache/camel/health/HealthCheck.java  |   0
 .../camel/health/HealthCheckConfiguration.java     |   0
 .../org/apache/camel/health/HealthCheckFilter.java |   0
 .../org/apache/camel/health/HealthCheckHelper.java |   0
 .../apache/camel/health/HealthCheckRegistry.java   |   0
 .../apache/camel/health/HealthCheckRepository.java |   0
 .../camel/health/HealthCheckResultBuilder.java     |   0
 .../apache/camel/health/HealthCheckService.java    |   0
 .../main/java/org/apache/camel/health/package.html |   0
 .../main/java/org/apache/camel/package-info.java   |   0
 .../runtimecatalog/EndpointValidationResult.java   |   6 +-
 .../camel/runtimecatalog/JSonSchemaResolver.java   |   0
 .../runtimecatalog/LanguageValidationResult.java   |   0
 .../camel/runtimecatalog/RuntimeCamelCatalog.java  |   0
 .../org/apache/camel/runtimecatalog/package.html   |   0
 .../apache/camel/spi/AggregationRepository.java    |   0
 .../camel/spi/AsyncProcessorAwaitManager.java      |   0
 .../org/apache/camel/spi/AuthorizationPolicy.java  |   0
 .../main/java/org/apache/camel/spi/Breakpoint.java |   0
 .../org/apache/camel/spi/BrowsableEndpoint.java    |   0
 .../apache/camel/spi/CamelContextNameStrategy.java |   0
 .../org/apache/camel/spi/CamelContextTracker.java  |   0
 .../java/org/apache/camel/spi}/CamelLogger.java    |   2 +-
 .../org/apache/camel/spi/ClaimCheckRepository.java |   0
 .../java/org/apache/camel/spi/ClassResolver.java   |   0
 .../org/apache/camel/spi/ComponentCustomizer.java  |   0
 .../org/apache/camel/spi/ComponentResolver.java    |   0
 .../main/java/org/apache/camel/spi/Condition.java  |   0
 .../main/java/org/apache/camel/spi/Contract.java   |   0
 .../main/java/org/apache/camel/spi/DataFormat.java |   0
 .../org/apache/camel/spi/DataFormatCustomizer.java |   0
 .../org/apache/camel/spi/DataFormatFactory.java    |   0
 .../java/org/apache/camel/spi/DataFormatName.java  |   0
 .../org/apache/camel/spi/DataFormatResolver.java   |   0
 .../main/java/org/apache/camel/spi/DataType.java   |   0
 .../java/org/apache/camel/spi/DataTypeAware.java   |   0
 .../main/java/org/apache/camel/spi/Debugger.java   |   0
 .../org/apache/camel/spi/EndpointRegistry.java     |   3 +-
 .../org/apache/camel/spi/EndpointStrategy.java     |   0
 .../camel/spi/EndpointUtilizationStatistics.java   |   0
 .../java/org/apache/camel/spi/EventFactory.java    |   0
 .../java/org/apache/camel/spi/EventNotifier.java   |   0
 .../org/apache/camel/spi/ExceptionHandler.java     |   0
 .../org/apache/camel/spi/ExchangeFormatter.java    |   0
 .../camel/spi/ExchangeIdempotentRepository.java    |   0
 .../apache/camel/spi/ExecutorServiceManager.java   |   0
 .../java/org/apache/camel/spi/FactoryFinder.java   |   0
 .../apache/camel/spi/FactoryFinderResolver.java    |   0
 .../main/java/org/apache/camel/spi/GroupAware.java |   0
 .../java/org/apache/camel/spi/HasCamelContext.java |   0
 .../main/java/org/apache/camel/spi/HasGroup.java   |   0
 .../src/main/java/org/apache/camel/spi/HasId.java  |   0
 .../org/apache/camel/spi/HeaderFilterStrategy.java |   0
 .../camel/spi/HeaderFilterStrategyAware.java       |   0
 .../org/apache/camel/spi/HeadersMapFactory.java    |   0
 .../main/java/org/apache/camel/spi/IdAware.java    |   0
 .../org/apache/camel/spi/IdempotentRepository.java |   0
 .../org/apache/camel/spi/InflightRepository.java   |   0
 .../main/java/org/apache/camel/spi/Injector.java   |   0
 .../org/apache/camel/spi/InterceptStrategy.java    |   0
 .../main/java/org/apache/camel/spi/Language.java   |   0
 .../org/apache/camel/spi/LanguageCustomizer.java   |   0
 .../org/apache/camel/spi/LanguageResolver.java     |   0
 .../org/apache/camel/spi/LifecycleStrategy.java    |   0
 .../java/org/apache/camel/spi/LogListener.java     |   1 -
 .../java/org/apache/camel/spi/ManagementAgent.java |   0
 .../apache/camel/spi/ManagementMBeanAssembler.java |   0
 .../apache/camel/spi/ManagementNameStrategy.java   |   0
 .../apache/camel/spi/ManagementNamingStrategy.java |   0
 .../apache/camel/spi/ManagementObjectStrategy.java |   0
 .../org/apache/camel/spi/ManagementStrategy.java   |   0
 .../org/apache/camel/spi/MaskingFormatter.java     |   0
 .../apache/camel/spi/MessageHistoryFactory.java    |   0
 .../apache/camel/spi/ModelJAXBContextFactory.java  |   0
 .../java/org/apache/camel/spi/NamespaceAware.java  |   0
 .../java/org/apache/camel/spi/NodeIdFactory.java   |   0
 .../OptimisticLockingAggregationRepository.java    |   0
 .../apache/camel/spi/PackageScanClassResolver.java |   0
 .../org/apache/camel/spi/PackageScanFilter.java    |   0
 .../src/main/java/org/apache/camel/spi/Policy.java |   0
 .../camel/spi/PollingConsumerPollStrategy.java     |   0
 .../org/apache/camel/spi/ProcessorFactory.java     |   0
 .../spi/RecoverableAggregationRepository.java      |   0
 .../main/java/org/apache/camel/spi/Registry.java   |   0
 .../java/org/apache/camel/spi/ReloadStrategy.java  |   0
 .../apache/camel/spi/RestApiConsumerFactory.java   |   0
 .../apache/camel/spi/RestApiProcessorFactory.java  |   0
 .../org/apache/camel/spi/RestConfiguration.java    |   4 +-
 .../org/apache/camel/spi/RestConsumerFactory.java  |   0
 .../org/apache/camel/spi/RestProducerFactory.java  |   0
 .../java/org/apache/camel/spi/RestRegistry.java    |   0
 .../java/org/apache/camel/spi/RouteContext.java    |   0
 .../java/org/apache/camel/spi/RouteController.java |   0
 .../main/java/org/apache/camel/spi/RouteError.java |   0
 .../java/org/apache/camel/spi/RoutePolicy.java     |   0
 .../org/apache/camel/spi/RoutePolicyFactory.java   |   0
 .../org/apache/camel/spi/RouteStartupOrder.java    |   0
 .../apache/camel/spi/RuntimeEndpointRegistry.java  |   0
 .../camel/spi/ScheduledPollConsumerScheduler.java  |   6 +-
 .../org/apache/camel/spi/SendDynamicAware.java     |   0
 .../java/org/apache/camel/spi/ShutdownAware.java   |   0
 .../org/apache/camel/spi/ShutdownPrepared.java     |   0
 .../org/apache/camel/spi/ShutdownStrategy.java     |   0
 .../java/org/apache/camel/spi/StateRepository.java |   0
 .../apache/camel/spi/StreamCachingStrategy.java    |   0
 .../java/org/apache/camel/spi/SubUnitOfWork.java   |   0
 .../apache/camel/spi/SubUnitOfWorkCallback.java    |   0
 .../java/org/apache/camel/spi/Synchronization.java |   0
 .../camel/spi/SynchronizationRouteAware.java       |   0
 .../apache/camel/spi/SynchronizationVetoable.java  |   0
 .../org/apache/camel/spi/ThreadPoolFactory.java    |   0
 .../org/apache/camel/spi/ThreadPoolProfile.java    |   0
 .../org/apache/camel/spi/TransactedPolicy.java     |   0
 .../java/org/apache/camel/spi/Transformer.java     |   0
 .../org/apache/camel/spi/TransformerRegistry.java  |   3 +-
 .../org/apache/camel/spi/TypeConverterAware.java   |   0
 .../org/apache/camel/spi/TypeConverterLoader.java  |   0
 .../apache/camel/spi/TypeConverterRegistry.java    |   0
 .../main/java/org/apache/camel/spi/UnitOfWork.java |   0
 .../org/apache/camel/spi/UnitOfWorkFactory.java    |   0
 .../java/org/apache/camel/spi/UuidGenerator.java   |   0
 .../main/java/org/apache/camel/spi/Validator.java  |   0
 .../org/apache/camel/spi/ValidatorRegistry.java    |   3 +-
 .../main/java/org/apache/camel/spi/package.html    |   0
 .../org/apache/camel/support/ServiceHelper.java    |   0
 .../org/apache/camel/support/ServiceSupport.java   |   0
 .../jsse/AliasedX509ExtendedKeyManager.java        |   0
 .../support/jsse/BaseSSLContextParameters.java     |   0
 .../camel/support/jsse/CipherSuitesParameters.java |   0
 .../camel/support/jsse/ClientAuthentication.java   |   0
 .../camel/support/jsse/FilterParameters.java       |   0
 .../jsse/GlobalSSLContextParametersSupplier.java   |   0
 .../apache/camel/support/jsse/JsseParameters.java  |   0
 .../camel/support/jsse/KeyManagersParameters.java  |   0
 .../camel/support/jsse/KeyStoreParameters.java     |   0
 .../support/jsse/SSLContextClientParameters.java   |   0
 .../camel/support/jsse/SSLContextParameters.java   |   0
 .../support/jsse/SSLContextServerParameters.java   |   0
 .../camel/support/jsse/SecureRandomParameters.java |   0
 .../jsse/SecureSocketProtocolsParameters.java      |   0
 .../support/jsse/TrustManagersParameters.java      |   0
 .../org/apache/camel/support/jsse/package.html     |   0
 camel-core/pom.xml                                 |  16 +
 .../camel/builder/DeadLetterChannelBuilder.java    |   2 +-
 .../camel/builder/DefaultErrorHandlerBuilder.java  |   2 +-
 .../component/controlbus/ControlBusEndpoint.java   |   2 +-
 .../component/controlbus/ControlBusProducer.java   |   2 +-
 .../camel/component/dataset/DataSetConsumer.java   |   2 +-
 .../camel/component/dataset/DataSetEndpoint.java   |   2 +-
 .../FileChangedExclusiveReadLockStrategy.java      |   2 +-
 ...dempotentChangedRepositoryReadLockStrategy.java |   2 +-
 ...IdempotentRenameRepositoryReadLockStrategy.java |   2 +-
 .../FileIdempotentRepositoryReadLockStrategy.java  |   2 +-
 .../FileLockExclusiveReadLockStrategy.java         |   2 +-
 ...GenericFileRenameExclusiveReadLockStrategy.java |   2 +-
 .../apache/camel/component/log/LogComponent.java   |   2 +-
 .../apache/camel/component/log/LogEndpoint.java    |   2 +-
 .../apache/camel/component/mock/MockComponent.java |   2 +-
 .../rest/RestComponentVerifierExtension.java       |   2 +-
 .../apache/camel/component/rest/RestEndpoint.java  |   2 +-
 .../org/apache/camel/impl/DefaultCamelContext.java |   2 +-
 .../camel/impl/ThrottlingInflightRoutePolicy.java  |   2 +-
 .../impl/converter/BaseTypeConverterRegistry.java  |   2 +-
 .../java/org/apache/camel/model/LogDefinition.java |   2 +-
 .../apache/camel/processor/CamelLogProcessor.java  |   2 +-
 .../apache/camel/processor/DeadLetterChannel.java  |   2 +-
 .../camel/processor/DefaultErrorHandler.java       |   2 +-
 .../org/apache/camel/processor/LogProcessor.java   |   2 +-
 .../camel/processor/RedeliveryErrorHandler.java    |   2 +-
 .../apache/camel/processor/ThroughputLogger.java   |   2 +-
 .../processor/interceptor/BacklogDebugger.java     |   2 +-
 .../runtimecatalog/CollectionStringBuffer.java     |  57 ----
 .../{ => impl}/AbstractCamelCatalog.java           |  69 ++--
 .../{ => impl}/CamelContextJSonSchemaResolver.java |   3 +-
 .../runtimecatalog/{ => impl}/CatalogHelper.java   |   2 +-
 .../{ => impl}/DefaultRuntimeCamelCatalog.java     |   3 +-
 .../{ => impl}/JSonSchemaHelper.java               |  12 +-
 .../{ => impl}/SuggestionStrategy.java             |   2 +-
 .../{ => impl}/TimePatternConverter.java           |   2 +-
 .../runtimecatalog/{ => impl}/URISupport.java      |   2 +-
 .../{ => impl}/UnsafeUriCharactersEncoder.java     |   2 +-
 .../camel/support/LoggingExceptionHandler.java     |   1 +
 .../RestProducerFactoryHelper.java                 |   5 +-
 .../dump}/CamelContextStatDump.java                |   2 +-
 .../{util => support/dump}/ProcessorStatDump.java  |   2 +-
 .../{util => support/dump}/RouteStatDump.java      |   2 +-
 .../src/main/resources/org/apache/camel/jaxb.index |   1 -
 .../apache/camel/{util => support/dump}/jaxb.index |   0
 .../apache/camel/util/{ => concurrent}/jaxb.index  |   4 +-
 .../camel/{util => component/mock}/TimeTest.java   |   3 +-
 .../camel/processor/ThroughPutLoggerTest.java      |   2 +-
 .../{ => impl}/AbstractCamelCatalogTest.java       |   4 +-
 .../{ => impl}/JSonSchemaHelperTest.java           |   3 +-
 .../{ => impl}/RuntimeCamelCatalogTest.java        |   5 +-
 camel-util/pom.xml                                 | 361 +++++++++++++++++++++
 .../java/org/apache/camel/util/AntPathMatcher.java |   0
 .../org/apache/camel/util/CamelVersionHelper.java  |   0
 .../org/apache/camel/util/CaseInsensitiveMap.java  |   0
 .../main/java/org/apache/camel/util/CastUtils.java |   0
 .../org/apache/camel/util/CollectionHelper.java    |   0
 .../apache/camel/util/CollectionStringBuffer.java  |   0
 .../org/apache/camel/util/FilePathResolver.java    |   0
 .../main/java/org/apache/camel/util/FileUtil.java  |   0
 .../main/java/org/apache/camel/util/HostUtils.java |   0
 .../main/java/org/apache/camel/util/IOHelper.java  |   0
 .../org/apache/camel/util/InetAddressUtil.java     |   0
 .../org/apache/camel/util/JsonSchemaHelper.java    |   0
 .../java/org/apache/camel/util/KeyValueHolder.java |   0
 .../java/org/apache/camel/util/ObjectHelper.java   |   0
 .../java/org/apache/camel/util/OgnlHelper.java     |   0
 .../java/org/apache/camel/util/PackageHelper.java  |   0
 .../java/org/apache/camel/util/ReferenceCount.java |   0
 .../org/apache/camel/util/ReflectionHelper.java    |   0
 .../main/java/org/apache/camel/util/Scanner.java   |   0
 .../java/org/apache/camel/util/SedaConstants.java  |   0
 .../java/org/apache/camel/util/SkipIterator.java   |   0
 .../main/java/org/apache/camel/util/StopWatch.java |   0
 .../java/org/apache/camel/util/StreamUtils.java    |   0
 .../java/org/apache/camel/util/StringHelper.java   |   0
 .../org/apache/camel/util/StringQuoteHelper.java   |   0
 .../main/java/org/apache/camel/util/TimeUtils.java |   0
 .../java/org/apache/camel/util/URISupport.java     |   0
 .../main/java/org/apache/camel/util/UnitUtils.java |   0
 .../camel/util/UnsafeUriCharactersEncoder.java     |   0
 .../org/apache/camel/util/XmlLineNumberParser.java |   0
 .../org/apache/camel/util/backoff/BackOff.java     |   0
 .../apache/camel/util/backoff/BackOffTimer.java    |   0
 .../camel/util/backoff/BackOffTimerTask.java       |   0
 .../org/apache/camel/util/backoff/package.html     |   0
 .../camel/util/concurrent/CamelThreadFactory.java  |   0
 .../apache/camel/util/concurrent/LockHelper.java   |   0
 .../apache/camel/util/concurrent/Rejectable.java   |   0
 .../util/concurrent/RejectableFutureTask.java      |   0
 .../RejectableScheduledThreadPoolExecutor.java     |   0
 .../concurrent/RejectableThreadPoolExecutor.java   |   0
 .../concurrent/SizedScheduledExecutorService.java  |   0
 .../concurrent/SubmitOrderedCompletionService.java |   0
 .../concurrent/SynchronousExecutorService.java     |   0
 .../apache/camel/util/concurrent/ThreadHelper.java |   0
 .../util/concurrent/ThreadPoolRejectedPolicy.java  |   0
 .../org/apache/camel/util/concurrent/package.html  |   0
 .../org/apache/camel/util/function/Bindings.java   |   0
 .../org/apache/camel/util/function/Predicates.java |   0
 .../org/apache/camel/util/function/Suppliers.java  |   0
 .../camel/util/function/ThrowingBiConsumer.java    |   0
 .../camel/util/function/ThrowingBiFunction.java    |   0
 .../camel/util/function/ThrowingConsumer.java      |   0
 .../camel/util/function/ThrowingFunction.java      |   0
 .../apache/camel/util/function/ThrowingHelper.java |   0
 .../camel/util/function/ThrowingRunnable.java      |   0
 .../camel/util/function/ThrowingSupplier.java      |   0
 .../util/function/ThrowingToLongFunction.java      |   0
 .../camel/util/function/ThrowingTriConsumer.java   |   0
 .../apache/camel/util/function/TriConsumer.java    |   0
 .../org/apache/camel/util/function/package.html    |   0
 .../main/java/org/apache/camel/util/package.html   |   0
 .../org/apache/camel/util/AntPathMatcherTest.java  |   0
 .../apache/camel/util/CamelVersionHelperTest.java  |   0
 .../apache/camel/util/CollectionHelperTest.java    |   0
 .../camel/util/CollectionStringBufferTest.java     |   0
 .../java/org/apache/camel/util/UnitUtilsTest.java  |   0
 .../org/apache/camel/util/backoff/BackOffTest.java |   0
 .../camel/util/backoff/BackOffTimerTest.java       |   0
 .../SizedScheduledExecutorServiceTest.java         |   0
 .../SubmitOrderedCompletionServiceTest.java        |   0
 .../concurrent/SynchronousExecutorServiceTest.java |   0
 .../apache/camel/util/function/PredicatesTest.java |   0
 .../transaction/JtaTransactionErrorHandler.java    |   2 +-
 .../JtaTransactionErrorHandlerBuilder.java         |   2 +-
 .../remote/DefaultFtpClientActivityListener.java   |   2 +-
 .../FtpChangedExclusiveReadLockStrategy.java       |   2 +-
 .../SftpChangedExclusiveReadLockStrategy.java      |   2 +-
 .../camel/component/http4/HttpComponent.java       |   9 +-
 .../camel/component/jetty/JettyHttpComponent.java  |   2 +-
 .../camel/component/mina2/Mina2Producer.java       |   2 +-
 .../component/netty4/http/NettyHttpComponent.java  |   6 +-
 .../http/handlers/HttpServerChannelHandler.java    |   3 +-
 .../netty4/NettyConsumerExceptionHandler.java      |   2 +-
 .../camel/component/netty4/NettyProducer.java      |   6 +-
 .../netty4/TimeoutCorrelationManagerSupport.java   |   4 +-
 .../netty4/handlers/ServerChannelHandler.java      |   2 +-
 .../camel/opentracing/OpenTracingTracer.java       |   6 +-
 .../camel/component/restlet/RestletComponent.java  |   8 +-
 .../spring/boot/LogListenerDiscoveryTest.java      |   2 +-
 .../camel/spring/spi/TransactionErrorHandler.java  |   2 +-
 .../spring/spi/TransactionErrorHandlerBuilder.java |   2 +-
 .../component/undertow/UndertowComponent.java      |  10 +-
 parent/pom.xml                                     |  10 +
 .../apache/camel/commands/ContextInfoCommand.java  |   2 +-
 .../apache/camel/commands/RouteInfoCommand.java    |   2 +-
 .../apache/camel/commands/RouteProfileCommand.java |   4 +-
 .../camel-spring-boot-dependencies/pom.xml         |  10 +
 pom.xml                                            |   2 +
 438 files changed, 885 insertions(+), 207 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 254b4a6..612af60 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -68,6 +68,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-apns</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -2680,6 +2685,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-util</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-velocity</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/camel-api/pom.xml b/camel-api/pom.xml
new file mode 100644
index 0000000..87d6aa0
--- /dev/null
+++ b/camel-api/pom.xml
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-parent</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+    <relativePath>../parent</relativePath>
+  </parent>
+
+  <artifactId>camel-api</artifactId>
+  <packaging>jar</packaging>
+  <name>Camel :: API</name>
+  <description>The Camel API</description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>spi-annotations</artifactId>
+      <version>${project.version}</version>
+      <optional>true</optional>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-util</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>json-simple-ordered</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+
+  </dependencies>
+
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <links>
+            <link>http://download.oracle.com/javase/7/docs/api/</link>
+            <link>http://download.oracle.com/javaee/7/api/</link>
+          </links>
+          <linksource>true</linksource>
+          <maxmemory>256m</maxmemory>
+          <groups>
+            <group>
+              <title>Camel API</title>
+              <packages>org.apache.camel</packages>
+            </group>
+            <group>
+              <title>Fluent API (DSL) for building EIP rules</title>
+              <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
+            </group>
+            <group>
+              <title>EIP model</title>
+              <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
+            </group>
+            <group>
+              <title>Camel Components</title>
+              <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
+            </group>
+            <group>
+              <title>Language APIs and plugins for Expressions and Predicates</title>
+              <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
+            </group>
+            <group>
+              <title>Processors to implement the Enterprise Integration Patterns</title>
+              <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
+            </group>
+            <group>
+              <title>Strategy APIs for implementors extending Camel</title>
+              <packages>org.apache.camel.spi</packages>
+            </group>
+            <group>
+              <title>Support APIs for implementors</title>
+              <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
+            </group>
+            <group>
+              <title>Management (JMX) API</title>
+              <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
+            </group>
+            <group>
+              <title>Camel Runtime</title>
+              <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
+            </group>
+            <group>
+              <title>Camel Main to run Camel standalone</title>
+              <packages>org.apache.camel.main</packages>
+            </group>
+            <group>
+              <title>Type conversion helper classes</title>
+              <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
+            </group>
+            <group>
+              <title>Utility classes</title>
+              <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
+            </group>
+          </groups>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+
+  <profiles>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>package</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <links>
+                <link>http://download.oracle.com/javase/7/docs/api/</link>
+                <link>http://download.oracle.com/javaee/7/api/</link>
+              </links>
+              <linksource>true</linksource>
+              <maxmemory>256m</maxmemory>
+              <groups>
+                <group>
+                  <title>Camel API</title>
+                  <packages>org.apache.camel</packages>
+                </group>
+                <group>
+                  <title>Fluent API (DSL) for building EIP rules</title>
+                  <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
+                </group>
+                <group>
+                  <title>EIP model</title>
+                  <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
+                </group>
+                <group>
+                  <title>Camel Components</title>
+                  <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
+                </group>
+                <group>
+                  <title>Language APIs and plugins for Expressions and Predicates</title>
+                  <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
+                </group>
+                <group>
+                  <title>Processors to implement the Enterprise Integration Patterns</title>
+                  <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
+                </group>
+                <group>
+                  <title>Strategy APIs for implementors extending Camel</title>
+                  <packages>org.apache.camel.spi</packages>
+                </group>
+                <group>
+                  <title>Support APIs for implementors</title>
+                  <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
+                </group>
+                <group>
+                  <title>Management (JMX) API</title>
+                  <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
+                </group>
+                <group>
+                  <title>Camel Runtime</title>
+                  <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
+                </group>
+                <group>
+                  <title>Camel Main to run Camel standalone</title>
+                  <packages>org.apache.camel.main</packages>
+                </group>
+                <group>
+                  <title>Type conversion helper classes</title>
+                  <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
+                </group>
+                <group>
+                  <title>Utility classes</title>
+                  <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
+                </group>
+              </groups>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <!-- skip management tests on AIX as it hangs CI servers -->
+    <profile>
+      <id>aix</id>
+      <activation>
+        <os>
+          <name>aix</name>
+        </os>
+      </activation>
+      <properties>
+        <platform.skip.tests>org/apache/camel/management/**/*.java</platform.skip.tests>
+      </properties>
+    </profile>
+    <profile>
+      <id>xalan</id>
+      <dependencies>
+        <!-- enable the Xalan processor -->
+        <dependency>
+          <groupId>xalan</groupId>
+          <artifactId>xalan</artifactId>
+          <version>${xalan-version}</version>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>xerces</id>
+      <dependencies>
+        <!-- enable the xerces processor -->
+        <dependency>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+          <version>${xerces-version}</version>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>woodstox</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <!-- xmltokenizer using woodstox -->
+        <dependency>
+          <groupId>org.codehaus.woodstox</groupId>
+          <artifactId>woodstox-core-asl</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+    </profile>
+
+    <profile>
+      <id>jdk9+-build</id>
+      <activation>
+        <jdk>[9,)</jdk>
+      </activation>
+      <dependencies>
+
+        <!-- enable the APT processor -->
+        <dependency>
+          <groupId>org.apache.camel</groupId>
+          <artifactId>apt</artifactId>
+          <scope>provided</scope>
+        </dependency>
+        <!-- xmltokenizer using woodstox -->
+        <dependency>
+          <groupId>org.codehaus.woodstox</groupId>
+          <artifactId>woodstox-core-asl</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <!-- skip file stress tests as they are intended to run manually -->
+              <excludes>
+                <exclude>org/apache/camel/component/file/stress/**.java</exclude>
+                <exclude>**/DistributedCompletionIntervalTest.java</exclude>
+                <exclude>**/DistributedConcurrentPerCorrelationKeyTest.java</exclude>
+                <exclude>${platform.skip.tests}</exclude>
+              </excludes>
+              <forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
+              <!-- needed for testing the properties component -->
+              <environmentVariables>
+              <FOO_SERVICE_HOST>myserver</FOO_SERVICE_HOST>
+              <FOO_SERVICE_PORT>8081</FOO_SERVICE_PORT>
+              </environmentVariables>
+              <argLine>--add-modules java.xml.bind,java.xml.ws --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED</argLine>
+            </configuration>
+            <dependencies>
+              <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-core</artifactId>
+                <version>${jaxb-version}</version>
+              </dependency>
+              <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-impl</artifactId>
+                <version>${jaxb-version}</version>
+              </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>
diff --git a/camel-core/src/main/java/org/apache/camel/AfterPropertiesConfigured.java b/camel-api/src/main/java/org/apache/camel/AfterPropertiesConfigured.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AfterPropertiesConfigured.java
rename to camel-api/src/main/java/org/apache/camel/AfterPropertiesConfigured.java
diff --git a/camel-core/src/main/java/org/apache/camel/AlreadyStoppedException.java b/camel-api/src/main/java/org/apache/camel/AlreadyStoppedException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AlreadyStoppedException.java
rename to camel-api/src/main/java/org/apache/camel/AlreadyStoppedException.java
diff --git a/camel-core/src/main/java/org/apache/camel/AsyncCallback.java b/camel-api/src/main/java/org/apache/camel/AsyncCallback.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AsyncCallback.java
rename to camel-api/src/main/java/org/apache/camel/AsyncCallback.java
diff --git a/camel-core/src/main/java/org/apache/camel/AsyncEndpoint.java b/camel-api/src/main/java/org/apache/camel/AsyncEndpoint.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AsyncEndpoint.java
rename to camel-api/src/main/java/org/apache/camel/AsyncEndpoint.java
diff --git a/camel-core/src/main/java/org/apache/camel/AsyncProcessor.java b/camel-api/src/main/java/org/apache/camel/AsyncProcessor.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AsyncProcessor.java
rename to camel-api/src/main/java/org/apache/camel/AsyncProcessor.java
diff --git a/camel-core/src/main/java/org/apache/camel/AsyncProducer.java b/camel-api/src/main/java/org/apache/camel/AsyncProducer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AsyncProducer.java
rename to camel-api/src/main/java/org/apache/camel/AsyncProducer.java
diff --git a/camel-core/src/main/java/org/apache/camel/Attachment.java b/camel-api/src/main/java/org/apache/camel/Attachment.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Attachment.java
rename to camel-api/src/main/java/org/apache/camel/Attachment.java
diff --git a/camel-core/src/main/java/org/apache/camel/AttachmentObjects.java b/camel-api/src/main/java/org/apache/camel/AttachmentObjects.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/AttachmentObjects.java
rename to camel-api/src/main/java/org/apache/camel/AttachmentObjects.java
diff --git a/camel-core/src/main/java/org/apache/camel/Attachments.java b/camel-api/src/main/java/org/apache/camel/Attachments.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Attachments.java
rename to camel-api/src/main/java/org/apache/camel/Attachments.java
diff --git a/camel-core/src/main/java/org/apache/camel/BatchConsumer.java b/camel-api/src/main/java/org/apache/camel/BatchConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/BatchConsumer.java
rename to camel-api/src/main/java/org/apache/camel/BatchConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/BeanInject.java b/camel-api/src/main/java/org/apache/camel/BeanInject.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/BeanInject.java
rename to camel-api/src/main/java/org/apache/camel/BeanInject.java
diff --git a/camel-core/src/main/java/org/apache/camel/BinaryPredicate.java b/camel-api/src/main/java/org/apache/camel/BinaryPredicate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/BinaryPredicate.java
rename to camel-api/src/main/java/org/apache/camel/BinaryPredicate.java
diff --git a/camel-core/src/main/java/org/apache/camel/Body.java b/camel-api/src/main/java/org/apache/camel/Body.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Body.java
rename to camel-api/src/main/java/org/apache/camel/Body.java
diff --git a/camel-core/src/main/java/org/apache/camel/Builder.java b/camel-api/src/main/java/org/apache/camel/Builder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Builder.java
rename to camel-api/src/main/java/org/apache/camel/Builder.java
diff --git a/camel-core/src/main/java/org/apache/camel/BytesSource.java b/camel-api/src/main/java/org/apache/camel/BytesSource.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/BytesSource.java
rename to camel-api/src/main/java/org/apache/camel/BytesSource.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java b/camel-api/src/main/java/org/apache/camel/CamelAuthorizationException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java
rename to camel-api/src/main/java/org/apache/camel/CamelAuthorizationException.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-api/src/main/java/org/apache/camel/CamelContext.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelContext.java
rename to camel-api/src/main/java/org/apache/camel/CamelContext.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContextAware.java b/camel-api/src/main/java/org/apache/camel/CamelContextAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelContextAware.java
rename to camel-api/src/main/java/org/apache/camel/CamelContextAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelException.java b/camel-api/src/main/java/org/apache/camel/CamelException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelException.java
rename to camel-api/src/main/java/org/apache/camel/CamelException.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelExchangeException.java b/camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelExchangeException.java
rename to camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelExecutionException.java b/camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelExecutionException.java
rename to camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
diff --git a/camel-core/src/main/java/org/apache/camel/CamelUnitOfWorkException.java b/camel-api/src/main/java/org/apache/camel/CamelUnitOfWorkException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/CamelUnitOfWorkException.java
rename to camel-api/src/main/java/org/apache/camel/CamelUnitOfWorkException.java
diff --git a/camel-core/src/main/java/org/apache/camel/Channel.java b/camel-api/src/main/java/org/apache/camel/Channel.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Channel.java
rename to camel-api/src/main/java/org/apache/camel/Channel.java
diff --git a/camel-core/src/main/java/org/apache/camel/Component.java b/camel-api/src/main/java/org/apache/camel/Component.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Component.java
rename to camel-api/src/main/java/org/apache/camel/Component.java
diff --git a/camel-core/src/main/java/org/apache/camel/ComponentAware.java b/camel-api/src/main/java/org/apache/camel/ComponentAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ComponentAware.java
rename to camel-api/src/main/java/org/apache/camel/ComponentAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/Consume.java b/camel-api/src/main/java/org/apache/camel/Consume.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Consume.java
rename to camel-api/src/main/java/org/apache/camel/Consume.java
diff --git a/camel-core/src/main/java/org/apache/camel/Consumer.java b/camel-api/src/main/java/org/apache/camel/Consumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Consumer.java
rename to camel-api/src/main/java/org/apache/camel/Consumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/ConsumerTemplate.java b/camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ConsumerTemplate.java
rename to camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
diff --git a/camel-core/src/main/java/org/apache/camel/Converter.java b/camel-api/src/main/java/org/apache/camel/Converter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Converter.java
rename to camel-api/src/main/java/org/apache/camel/Converter.java
diff --git a/camel-core/src/main/java/org/apache/camel/DelegateEndpoint.java b/camel-api/src/main/java/org/apache/camel/DelegateEndpoint.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/DelegateEndpoint.java
rename to camel-api/src/main/java/org/apache/camel/DelegateEndpoint.java
diff --git a/camel-core/src/main/java/org/apache/camel/DelegateProcessor.java b/camel-api/src/main/java/org/apache/camel/DelegateProcessor.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/DelegateProcessor.java
rename to camel-api/src/main/java/org/apache/camel/DelegateProcessor.java
diff --git a/camel-core/src/main/java/org/apache/camel/DynamicRouter.java b/camel-api/src/main/java/org/apache/camel/DynamicRouter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/DynamicRouter.java
rename to camel-api/src/main/java/org/apache/camel/DynamicRouter.java
diff --git a/camel-core/src/main/java/org/apache/camel/Endpoint.java b/camel-api/src/main/java/org/apache/camel/Endpoint.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Endpoint.java
rename to camel-api/src/main/java/org/apache/camel/Endpoint.java
diff --git a/camel-core/src/main/java/org/apache/camel/EndpointAware.java b/camel-api/src/main/java/org/apache/camel/EndpointAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/EndpointAware.java
rename to camel-api/src/main/java/org/apache/camel/EndpointAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/EndpointInject.java b/camel-api/src/main/java/org/apache/camel/EndpointInject.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/EndpointInject.java
rename to camel-api/src/main/java/org/apache/camel/EndpointInject.java
diff --git a/camel-core/src/main/java/org/apache/camel/ErrorHandlerFactory.java b/camel-api/src/main/java/org/apache/camel/ErrorHandlerFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ErrorHandlerFactory.java
rename to camel-api/src/main/java/org/apache/camel/ErrorHandlerFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-api/src/main/java/org/apache/camel/Exchange.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Exchange.java
rename to camel-api/src/main/java/org/apache/camel/Exchange.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangeException.java b/camel-api/src/main/java/org/apache/camel/ExchangeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExchangeException.java
rename to camel-api/src/main/java/org/apache/camel/ExchangeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangePattern.java b/camel-api/src/main/java/org/apache/camel/ExchangePattern.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExchangePattern.java
rename to camel-api/src/main/java/org/apache/camel/ExchangePattern.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangeProperties.java b/camel-api/src/main/java/org/apache/camel/ExchangeProperties.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExchangeProperties.java
rename to camel-api/src/main/java/org/apache/camel/ExchangeProperties.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangeProperty.java b/camel-api/src/main/java/org/apache/camel/ExchangeProperty.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExchangeProperty.java
rename to camel-api/src/main/java/org/apache/camel/ExchangeProperty.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExchangeTimedOutException.java b/camel-api/src/main/java/org/apache/camel/ExchangeTimedOutException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExchangeTimedOutException.java
rename to camel-api/src/main/java/org/apache/camel/ExchangeTimedOutException.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExecutorServiceAware.java b/camel-api/src/main/java/org/apache/camel/ExecutorServiceAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExecutorServiceAware.java
rename to camel-api/src/main/java/org/apache/camel/ExecutorServiceAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExpectedBodyTypeException.java b/camel-api/src/main/java/org/apache/camel/ExpectedBodyTypeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExpectedBodyTypeException.java
rename to camel-api/src/main/java/org/apache/camel/ExpectedBodyTypeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/Experimental.java b/camel-api/src/main/java/org/apache/camel/Experimental.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Experimental.java
rename to camel-api/src/main/java/org/apache/camel/Experimental.java
diff --git a/camel-core/src/main/java/org/apache/camel/Expression.java b/camel-api/src/main/java/org/apache/camel/Expression.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Expression.java
rename to camel-api/src/main/java/org/apache/camel/Expression.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExpressionEvaluationException.java b/camel-api/src/main/java/org/apache/camel/ExpressionEvaluationException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExpressionEvaluationException.java
rename to camel-api/src/main/java/org/apache/camel/ExpressionEvaluationException.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExpressionIllegalSyntaxException.java b/camel-api/src/main/java/org/apache/camel/ExpressionIllegalSyntaxException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExpressionIllegalSyntaxException.java
rename to camel-api/src/main/java/org/apache/camel/ExpressionIllegalSyntaxException.java
diff --git a/camel-core/src/main/java/org/apache/camel/ExtendedStartupListener.java b/camel-api/src/main/java/org/apache/camel/ExtendedStartupListener.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ExtendedStartupListener.java
rename to camel-api/src/main/java/org/apache/camel/ExtendedStartupListener.java
diff --git a/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java b/camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
rename to camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
diff --git a/camel-core/src/main/java/org/apache/camel/FailedToCreateProducerException.java b/camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FailedToCreateProducerException.java
rename to camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
diff --git a/camel-core/src/main/java/org/apache/camel/FailedToCreateRouteException.java b/camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FailedToCreateRouteException.java
rename to camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
diff --git a/camel-core/src/main/java/org/apache/camel/FailedToStartRouteException.java b/camel-api/src/main/java/org/apache/camel/FailedToStartRouteException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FailedToStartRouteException.java
rename to camel-api/src/main/java/org/apache/camel/FailedToStartRouteException.java
diff --git a/camel-core/src/main/java/org/apache/camel/FallbackConverter.java b/camel-api/src/main/java/org/apache/camel/FallbackConverter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FallbackConverter.java
rename to camel-api/src/main/java/org/apache/camel/FallbackConverter.java
diff --git a/camel-core/src/main/java/org/apache/camel/FluentProducerTemplate.java b/camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/FluentProducerTemplate.java
rename to camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
diff --git a/camel-core/src/main/java/org/apache/camel/Handler.java b/camel-api/src/main/java/org/apache/camel/Handler.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Handler.java
rename to camel-api/src/main/java/org/apache/camel/Handler.java
diff --git a/camel-core/src/main/java/org/apache/camel/Header.java b/camel-api/src/main/java/org/apache/camel/Header.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Header.java
rename to camel-api/src/main/java/org/apache/camel/Header.java
diff --git a/camel-core/src/main/java/org/apache/camel/Headers.java b/camel-api/src/main/java/org/apache/camel/Headers.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Headers.java
rename to camel-api/src/main/java/org/apache/camel/Headers.java
diff --git a/camel-core/src/main/java/org/apache/camel/InOnly.java b/camel-api/src/main/java/org/apache/camel/InOnly.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InOnly.java
rename to camel-api/src/main/java/org/apache/camel/InOnly.java
diff --git a/camel-core/src/main/java/org/apache/camel/InOut.java b/camel-api/src/main/java/org/apache/camel/InOut.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InOut.java
rename to camel-api/src/main/java/org/apache/camel/InOut.java
diff --git a/camel-core/src/main/java/org/apache/camel/InvalidPayloadException.java b/camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InvalidPayloadException.java
rename to camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
diff --git a/camel-core/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java b/camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
rename to camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/InvalidPropertyException.java b/camel-api/src/main/java/org/apache/camel/InvalidPropertyException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InvalidPropertyException.java
rename to camel-api/src/main/java/org/apache/camel/InvalidPropertyException.java
diff --git a/camel-core/src/main/java/org/apache/camel/InvokeOnHeader.java b/camel-api/src/main/java/org/apache/camel/InvokeOnHeader.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InvokeOnHeader.java
rename to camel-api/src/main/java/org/apache/camel/InvokeOnHeader.java
diff --git a/camel-core/src/main/java/org/apache/camel/InvokeOnHeaders.java b/camel-api/src/main/java/org/apache/camel/InvokeOnHeaders.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/InvokeOnHeaders.java
rename to camel-api/src/main/java/org/apache/camel/InvokeOnHeaders.java
diff --git a/camel-core/src/main/java/org/apache/camel/IsSingleton.java b/camel-api/src/main/java/org/apache/camel/IsSingleton.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/IsSingleton.java
rename to camel-api/src/main/java/org/apache/camel/IsSingleton.java
diff --git a/camel-core/src/main/java/org/apache/camel/LoadPropertiesException.java b/camel-api/src/main/java/org/apache/camel/LoadPropertiesException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/LoadPropertiesException.java
rename to camel-api/src/main/java/org/apache/camel/LoadPropertiesException.java
diff --git a/camel-core/src/main/java/org/apache/camel/LoggingLevel.java b/camel-api/src/main/java/org/apache/camel/LoggingLevel.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/LoggingLevel.java
rename to camel-api/src/main/java/org/apache/camel/LoggingLevel.java
diff --git a/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java b/camel-api/src/main/java/org/apache/camel/ManagementStatisticsLevel.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java
rename to camel-api/src/main/java/org/apache/camel/ManagementStatisticsLevel.java
diff --git a/camel-core/src/main/java/org/apache/camel/Message.java b/camel-api/src/main/java/org/apache/camel/Message.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Message.java
rename to camel-api/src/main/java/org/apache/camel/Message.java
diff --git a/camel-core/src/main/java/org/apache/camel/MessageHistory.java b/camel-api/src/main/java/org/apache/camel/MessageHistory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/MessageHistory.java
rename to camel-api/src/main/java/org/apache/camel/MessageHistory.java
diff --git a/camel-core/src/main/java/org/apache/camel/MultipleConsumersSupport.java b/camel-api/src/main/java/org/apache/camel/MultipleConsumersSupport.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/MultipleConsumersSupport.java
rename to camel-api/src/main/java/org/apache/camel/MultipleConsumersSupport.java
diff --git a/camel-core/src/main/java/org/apache/camel/NamedNode.java b/camel-api/src/main/java/org/apache/camel/NamedNode.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NamedNode.java
rename to camel-api/src/main/java/org/apache/camel/NamedNode.java
diff --git a/camel-core/src/main/java/org/apache/camel/Navigate.java b/camel-api/src/main/java/org/apache/camel/Navigate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Navigate.java
rename to camel-api/src/main/java/org/apache/camel/Navigate.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoFactoryAvailableException.java b/camel-api/src/main/java/org/apache/camel/NoFactoryAvailableException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoFactoryAvailableException.java
rename to camel-api/src/main/java/org/apache/camel/NoFactoryAvailableException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java b/camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoSuchBeanException.java
rename to camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoSuchEndpointException.java b/camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoSuchEndpointException.java
rename to camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoSuchHeaderException.java b/camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoSuchHeaderException.java
rename to camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoSuchLanguageException.java b/camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoSuchLanguageException.java
rename to camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoSuchPropertyException.java b/camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoSuchPropertyException.java
rename to camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java b/camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
rename to camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
diff --git a/camel-core/src/main/java/org/apache/camel/NonManagedService.java b/camel-api/src/main/java/org/apache/camel/NonManagedService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/NonManagedService.java
rename to camel-api/src/main/java/org/apache/camel/NonManagedService.java
diff --git a/camel-core/src/main/java/org/apache/camel/Ordered.java b/camel-api/src/main/java/org/apache/camel/Ordered.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Ordered.java
rename to camel-api/src/main/java/org/apache/camel/Ordered.java
diff --git a/camel-core/src/main/java/org/apache/camel/OutHeaders.java b/camel-api/src/main/java/org/apache/camel/OutHeaders.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/OutHeaders.java
rename to camel-api/src/main/java/org/apache/camel/OutHeaders.java
diff --git a/camel-core/src/main/java/org/apache/camel/Pattern.java b/camel-api/src/main/java/org/apache/camel/Pattern.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Pattern.java
rename to camel-api/src/main/java/org/apache/camel/Pattern.java
diff --git a/camel-core/src/main/java/org/apache/camel/PollingConsumer.java b/camel-api/src/main/java/org/apache/camel/PollingConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/PollingConsumer.java
rename to camel-api/src/main/java/org/apache/camel/PollingConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/PollingConsumerPollingStrategy.java b/camel-api/src/main/java/org/apache/camel/PollingConsumerPollingStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/PollingConsumerPollingStrategy.java
rename to camel-api/src/main/java/org/apache/camel/PollingConsumerPollingStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/Predicate.java b/camel-api/src/main/java/org/apache/camel/Predicate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Predicate.java
rename to camel-api/src/main/java/org/apache/camel/Predicate.java
diff --git a/camel-core/src/main/java/org/apache/camel/Processor.java b/camel-api/src/main/java/org/apache/camel/Processor.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Processor.java
rename to camel-api/src/main/java/org/apache/camel/Processor.java
diff --git a/camel-core/src/main/java/org/apache/camel/Produce.java b/camel-api/src/main/java/org/apache/camel/Produce.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Produce.java
rename to camel-api/src/main/java/org/apache/camel/Produce.java
diff --git a/camel-core/src/main/java/org/apache/camel/Producer.java b/camel-api/src/main/java/org/apache/camel/Producer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Producer.java
rename to camel-api/src/main/java/org/apache/camel/Producer.java
diff --git a/camel-core/src/main/java/org/apache/camel/ProducerTemplate.java b/camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ProducerTemplate.java
rename to camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
diff --git a/camel-core/src/main/java/org/apache/camel/PropertyInject.java b/camel-api/src/main/java/org/apache/camel/PropertyInject.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/PropertyInject.java
rename to camel-api/src/main/java/org/apache/camel/PropertyInject.java
diff --git a/camel-core/src/main/java/org/apache/camel/ProxyInstantiationException.java b/camel-api/src/main/java/org/apache/camel/ProxyInstantiationException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ProxyInstantiationException.java
rename to camel-api/src/main/java/org/apache/camel/ProxyInstantiationException.java
diff --git a/camel-core/src/main/java/org/apache/camel/RecipientList.java b/camel-api/src/main/java/org/apache/camel/RecipientList.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RecipientList.java
rename to camel-api/src/main/java/org/apache/camel/RecipientList.java
diff --git a/camel-core/src/main/java/org/apache/camel/ResolveEndpointFailedException.java b/camel-api/src/main/java/org/apache/camel/ResolveEndpointFailedException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ResolveEndpointFailedException.java
rename to camel-api/src/main/java/org/apache/camel/ResolveEndpointFailedException.java
diff --git a/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java b/camel-api/src/main/java/org/apache/camel/RollbackExchangeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java
rename to camel-api/src/main/java/org/apache/camel/RollbackExchangeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/Route.java b/camel-api/src/main/java/org/apache/camel/Route.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Route.java
rename to camel-api/src/main/java/org/apache/camel/Route.java
diff --git a/camel-core/src/main/java/org/apache/camel/RouteAware.java b/camel-api/src/main/java/org/apache/camel/RouteAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RouteAware.java
rename to camel-api/src/main/java/org/apache/camel/RouteAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/RoutesBuilder.java b/camel-api/src/main/java/org/apache/camel/RoutesBuilder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RoutesBuilder.java
rename to camel-api/src/main/java/org/apache/camel/RoutesBuilder.java
diff --git a/camel-core/src/main/java/org/apache/camel/RoutingSlip.java b/camel-api/src/main/java/org/apache/camel/RoutingSlip.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RoutingSlip.java
rename to camel-api/src/main/java/org/apache/camel/RoutingSlip.java
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeCamelException.java b/camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RuntimeCamelException.java
rename to camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java b/camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RuntimeConfiguration.java
rename to camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeExchangeException.java b/camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RuntimeExchangeException.java
rename to camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeExpressionException.java b/camel-api/src/main/java/org/apache/camel/RuntimeExpressionException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RuntimeExpressionException.java
rename to camel-api/src/main/java/org/apache/camel/RuntimeExpressionException.java
diff --git a/camel-core/src/main/java/org/apache/camel/RuntimeTransformException.java b/camel-api/src/main/java/org/apache/camel/RuntimeTransformException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/RuntimeTransformException.java
rename to camel-api/src/main/java/org/apache/camel/RuntimeTransformException.java
diff --git a/camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java b/camel-api/src/main/java/org/apache/camel/SSLContextParametersAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/SSLContextParametersAware.java
rename to camel-api/src/main/java/org/apache/camel/SSLContextParametersAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/Service.java b/camel-api/src/main/java/org/apache/camel/Service.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Service.java
rename to camel-api/src/main/java/org/apache/camel/Service.java
diff --git a/camel-core/src/main/java/org/apache/camel/ServiceStatus.java b/camel-api/src/main/java/org/apache/camel/ServiceStatus.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ServiceStatus.java
rename to camel-api/src/main/java/org/apache/camel/ServiceStatus.java
diff --git a/camel-core/src/main/java/org/apache/camel/ShutdownRoute.java b/camel-api/src/main/java/org/apache/camel/ShutdownRoute.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ShutdownRoute.java
rename to camel-api/src/main/java/org/apache/camel/ShutdownRoute.java
diff --git a/camel-core/src/main/java/org/apache/camel/ShutdownRunningTask.java b/camel-api/src/main/java/org/apache/camel/ShutdownRunningTask.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ShutdownRunningTask.java
rename to camel-api/src/main/java/org/apache/camel/ShutdownRunningTask.java
diff --git a/camel-core/src/main/java/org/apache/camel/ShutdownableService.java b/camel-api/src/main/java/org/apache/camel/ShutdownableService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ShutdownableService.java
rename to camel-api/src/main/java/org/apache/camel/ShutdownableService.java
diff --git a/camel-core/src/main/java/org/apache/camel/StartupListener.java b/camel-api/src/main/java/org/apache/camel/StartupListener.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/StartupListener.java
rename to camel-api/src/main/java/org/apache/camel/StartupListener.java
diff --git a/camel-core/src/main/java/org/apache/camel/StatefulService.java b/camel-api/src/main/java/org/apache/camel/StatefulService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/StatefulService.java
rename to camel-api/src/main/java/org/apache/camel/StatefulService.java
diff --git a/camel-core/src/main/java/org/apache/camel/StaticService.java b/camel-api/src/main/java/org/apache/camel/StaticService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/StaticService.java
rename to camel-api/src/main/java/org/apache/camel/StaticService.java
diff --git a/camel-core/src/main/java/org/apache/camel/StreamCache.java b/camel-api/src/main/java/org/apache/camel/StreamCache.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/StreamCache.java
rename to camel-api/src/main/java/org/apache/camel/StreamCache.java
diff --git a/camel-core/src/main/java/org/apache/camel/StringSource.java b/camel-api/src/main/java/org/apache/camel/StringSource.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/StringSource.java
rename to camel-api/src/main/java/org/apache/camel/StringSource.java
diff --git a/camel-core/src/main/java/org/apache/camel/Suspendable.java b/camel-api/src/main/java/org/apache/camel/Suspendable.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Suspendable.java
rename to camel-api/src/main/java/org/apache/camel/Suspendable.java
diff --git a/camel-core/src/main/java/org/apache/camel/SuspendableService.java b/camel-api/src/main/java/org/apache/camel/SuspendableService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/SuspendableService.java
rename to camel-api/src/main/java/org/apache/camel/SuspendableService.java
diff --git a/camel-core/src/main/java/org/apache/camel/TimeoutMap.java b/camel-api/src/main/java/org/apache/camel/TimeoutMap.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TimeoutMap.java
rename to camel-api/src/main/java/org/apache/camel/TimeoutMap.java
diff --git a/camel-core/src/main/java/org/apache/camel/TimerListener.java b/camel-api/src/main/java/org/apache/camel/TimerListener.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TimerListener.java
rename to camel-api/src/main/java/org/apache/camel/TimerListener.java
diff --git a/camel-core/src/main/java/org/apache/camel/Traceable.java b/camel-api/src/main/java/org/apache/camel/Traceable.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/Traceable.java
rename to camel-api/src/main/java/org/apache/camel/Traceable.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConversionException.java b/camel-api/src/main/java/org/apache/camel/TypeConversionException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConversionException.java
rename to camel-api/src/main/java/org/apache/camel/TypeConversionException.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConverter.java b/camel-api/src/main/java/org/apache/camel/TypeConverter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConverter.java
rename to camel-api/src/main/java/org/apache/camel/TypeConverter.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConverterExists.java b/camel-api/src/main/java/org/apache/camel/TypeConverterExists.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConverterExists.java
rename to camel-api/src/main/java/org/apache/camel/TypeConverterExists.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConverterExistsException.java b/camel-api/src/main/java/org/apache/camel/TypeConverterExistsException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConverterExistsException.java
rename to camel-api/src/main/java/org/apache/camel/TypeConverterExistsException.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConverterLoaderException.java b/camel-api/src/main/java/org/apache/camel/TypeConverterLoaderException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConverterLoaderException.java
rename to camel-api/src/main/java/org/apache/camel/TypeConverterLoaderException.java
diff --git a/camel-core/src/main/java/org/apache/camel/TypeConverters.java b/camel-api/src/main/java/org/apache/camel/TypeConverters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/TypeConverters.java
rename to camel-api/src/main/java/org/apache/camel/TypeConverters.java
diff --git a/camel-core/src/main/java/org/apache/camel/ValidationException.java b/camel-api/src/main/java/org/apache/camel/ValidationException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ValidationException.java
rename to camel-api/src/main/java/org/apache/camel/ValidationException.java
diff --git a/camel-core/src/main/java/org/apache/camel/ValueHolder.java b/camel-api/src/main/java/org/apache/camel/ValueHolder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/ValueHolder.java
rename to camel-api/src/main/java/org/apache/camel/ValueHolder.java
diff --git a/camel-core/src/main/java/org/apache/camel/VetoCamelContextStartException.java b/camel-api/src/main/java/org/apache/camel/VetoCamelContextStartException.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/VetoCamelContextStartException.java
rename to camel-api/src/main/java/org/apache/camel/VetoCamelContextStartException.java
diff --git a/camel-core/src/main/java/org/apache/camel/WaitForTaskToComplete.java b/camel-api/src/main/java/org/apache/camel/WaitForTaskToComplete.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/WaitForTaskToComplete.java
rename to camel-api/src/main/java/org/apache/camel/WaitForTaskToComplete.java
diff --git a/camel-core/src/main/java/org/apache/camel/WrappedFile.java b/camel-api/src/main/java/org/apache/camel/WrappedFile.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/WrappedFile.java
rename to camel-api/src/main/java/org/apache/camel/WrappedFile.java
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterEventListener.java b/camel-api/src/main/java/org/apache/camel/cluster/CamelClusterEventListener.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/cluster/CamelClusterEventListener.java
rename to camel-api/src/main/java/org/apache/camel/cluster/CamelClusterEventListener.java
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterMember.java b/camel-api/src/main/java/org/apache/camel/cluster/CamelClusterMember.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/cluster/CamelClusterMember.java
rename to camel-api/src/main/java/org/apache/camel/cluster/CamelClusterMember.java
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterService.java b/camel-api/src/main/java/org/apache/camel/cluster/CamelClusterService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/cluster/CamelClusterService.java
rename to camel-api/src/main/java/org/apache/camel/cluster/CamelClusterService.java
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java b/camel-api/src/main/java/org/apache/camel/cluster/CamelClusterView.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/cluster/CamelClusterView.java
rename to camel-api/src/main/java/org/apache/camel/cluster/CamelClusterView.java
diff --git a/camel-core/src/main/java/org/apache/camel/cluster/package.html b/camel-api/src/main/java/org/apache/camel/cluster/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/cluster/package.html
rename to camel-api/src/main/java/org/apache/camel/cluster/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java b/camel-api/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
rename to camel-api/src/main/java/org/apache/camel/component/extension/ComponentExtension.java
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java b/camel-api/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
rename to camel-api/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtension.java
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtensionHelper.java b/camel-api/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtensionHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtensionHelper.java
rename to camel-api/src/main/java/org/apache/camel/component/extension/ComponentVerifierExtensionHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java b/camel-api/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
rename to camel-api/src/main/java/org/apache/camel/component/extension/MetaDataExtension.java
diff --git a/camel-core/src/main/java/org/apache/camel/component/extension/package.html b/camel-api/src/main/java/org/apache/camel/component/extension/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/component/extension/package.html
rename to camel-api/src/main/java/org/apache/camel/component/extension/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheck.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheck.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheck.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheck.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckConfiguration.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckConfiguration.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckConfiguration.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckConfiguration.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckFilter.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckFilter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckFilter.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckFilter.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckHelper.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckHelper.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckRegistry.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckRegistry.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckRegistry.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckRegistry.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckRepository.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckRepository.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckResultBuilder.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckResultBuilder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckResultBuilder.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckResultBuilder.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/HealthCheckService.java b/camel-api/src/main/java/org/apache/camel/health/HealthCheckService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/HealthCheckService.java
rename to camel-api/src/main/java/org/apache/camel/health/HealthCheckService.java
diff --git a/camel-core/src/main/java/org/apache/camel/health/package.html b/camel-api/src/main/java/org/apache/camel/health/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/health/package.html
rename to camel-api/src/main/java/org/apache/camel/health/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/package-info.java b/camel-api/src/main/java/org/apache/camel/package-info.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/package-info.java
rename to camel-api/src/main/java/org/apache/camel/package-info.java
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java b/camel-api/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java
rename to camel-api/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java
index 891c3cf..d2dce49 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java
+++ b/camel-api/src/main/java/org/apache/camel/runtimecatalog/EndpointValidationResult.java
@@ -25,8 +25,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import static org.apache.camel.runtimecatalog.URISupport.isEmpty;
-
 /**
  * Details result of validating endpoint uri.
  */
@@ -485,4 +483,8 @@ public class EndpointValidationResult implements Serializable {
 
         return sb.toString();
     }
+
+    private static boolean isEmpty(String value) {
+        return value == null || value.isEmpty() || value.trim().isEmpty();
+    }
 }
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaResolver.java b/camel-api/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaResolver.java
rename to camel-api/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/LanguageValidationResult.java b/camel-api/src/main/java/org/apache/camel/runtimecatalog/LanguageValidationResult.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/LanguageValidationResult.java
rename to camel-api/src/main/java/org/apache/camel/runtimecatalog/LanguageValidationResult.java
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalog.java b/camel-api/src/main/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalog.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalog.java
rename to camel-api/src/main/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalog.java
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/package.html b/camel-api/src/main/java/org/apache/camel/runtimecatalog/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/package.html
rename to camel-api/src/main/java/org/apache/camel/runtimecatalog/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/spi/AggregationRepository.java b/camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/AggregationRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/AsyncProcessorAwaitManager.java b/camel-api/src/main/java/org/apache/camel/spi/AsyncProcessorAwaitManager.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/AsyncProcessorAwaitManager.java
rename to camel-api/src/main/java/org/apache/camel/spi/AsyncProcessorAwaitManager.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/AuthorizationPolicy.java b/camel-api/src/main/java/org/apache/camel/spi/AuthorizationPolicy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/AuthorizationPolicy.java
rename to camel-api/src/main/java/org/apache/camel/spi/AuthorizationPolicy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Breakpoint.java b/camel-api/src/main/java/org/apache/camel/spi/Breakpoint.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Breakpoint.java
rename to camel-api/src/main/java/org/apache/camel/spi/Breakpoint.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/BrowsableEndpoint.java b/camel-api/src/main/java/org/apache/camel/spi/BrowsableEndpoint.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/BrowsableEndpoint.java
rename to camel-api/src/main/java/org/apache/camel/spi/BrowsableEndpoint.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/CamelContextNameStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/CamelContextNameStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/CamelContextNameStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/CamelContextNameStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/CamelContextTracker.java b/camel-api/src/main/java/org/apache/camel/spi/CamelContextTracker.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/CamelContextTracker.java
rename to camel-api/src/main/java/org/apache/camel/spi/CamelContextTracker.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/CamelLogger.java b/camel-api/src/main/java/org/apache/camel/spi/CamelLogger.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/support/CamelLogger.java
rename to camel-api/src/main/java/org/apache/camel/spi/CamelLogger.java
index 6994eab..0b9214a 100644
--- a/camel-core/src/main/java/org/apache/camel/support/CamelLogger.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/CamelLogger.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.support;
+package org.apache.camel.spi;
 
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.util.ObjectHelper;
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java b/camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ClassResolver.java b/camel-api/src/main/java/org/apache/camel/spi/ClassResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ClassResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/ClassResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java b/camel-api/src/main/java/org/apache/camel/spi/ComponentCustomizer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java
rename to camel-api/src/main/java/org/apache/camel/spi/ComponentCustomizer.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ComponentResolver.java b/camel-api/src/main/java/org/apache/camel/spi/ComponentResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ComponentResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/ComponentResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Condition.java b/camel-api/src/main/java/org/apache/camel/spi/Condition.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Condition.java
rename to camel-api/src/main/java/org/apache/camel/spi/Condition.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Contract.java b/camel-api/src/main/java/org/apache/camel/spi/Contract.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Contract.java
rename to camel-api/src/main/java/org/apache/camel/spi/Contract.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java b/camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataFormat.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java b/camel-api/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormatFactory.java b/camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataFormatFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormatName.java b/camel-api/src/main/java/org/apache/camel/spi/DataFormatName.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataFormatName.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataFormatName.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormatResolver.java b/camel-api/src/main/java/org/apache/camel/spi/DataFormatResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataFormatResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataFormatResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataType.java b/camel-api/src/main/java/org/apache/camel/spi/DataType.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataType.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataType.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataTypeAware.java b/camel-api/src/main/java/org/apache/camel/spi/DataTypeAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/DataTypeAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/DataTypeAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Debugger.java b/camel-api/src/main/java/org/apache/camel/spi/Debugger.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Debugger.java
rename to camel-api/src/main/java/org/apache/camel/spi/Debugger.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EndpointRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java
similarity index 93%
rename from camel-core/src/main/java/org/apache/camel/spi/EndpointRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java
index f56d241..14f906c 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/EndpointRegistry.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java
@@ -20,7 +20,6 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.StaticService;
-import org.apache.camel.support.LRUCache;
 
 /**
  * Registry to cache endpoints in memory.
@@ -28,7 +27,7 @@ import org.apache.camel.support.LRUCache;
  * The registry contains two caches:
  * <ul>
  *     <li>static - which keeps all the endpoints in the cache for the entire lifecycle</li>
- *     <li>dynamic - which keeps the endpoints in a {@link LRUCache} and may evict endpoints which hasn't been requested recently</li>
+ *     <li>dynamic - which keeps the endpoints in a {@link org.apache.camel.support.LRUCache} and may evict endpoints which hasn't been requested recently</li>
  * </ul>
  * The static cache stores all the endpoints that are created as part of setting up and starting routes.
  * The static cache has no upper limit.
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EndpointStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/EndpointStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/EndpointStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/EndpointStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java b/camel-api/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java
rename to camel-api/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java b/camel-api/src/main/java/org/apache/camel/spi/EventFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/EventFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EventNotifier.java b/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/EventNotifier.java
rename to camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ExceptionHandler.java b/camel-api/src/main/java/org/apache/camel/spi/ExceptionHandler.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ExceptionHandler.java
rename to camel-api/src/main/java/org/apache/camel/spi/ExceptionHandler.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java b/camel-api/src/main/java/org/apache/camel/spi/ExchangeFormatter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java
rename to camel-api/src/main/java/org/apache/camel/spi/ExchangeFormatter.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ExchangeIdempotentRepository.java b/camel-api/src/main/java/org/apache/camel/spi/ExchangeIdempotentRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ExchangeIdempotentRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/ExchangeIdempotentRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java b/camel-api/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
rename to camel-api/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/FactoryFinder.java b/camel-api/src/main/java/org/apache/camel/spi/FactoryFinder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/FactoryFinder.java
rename to camel-api/src/main/java/org/apache/camel/spi/FactoryFinder.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/FactoryFinderResolver.java b/camel-api/src/main/java/org/apache/camel/spi/FactoryFinderResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/FactoryFinderResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/FactoryFinderResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/GroupAware.java b/camel-api/src/main/java/org/apache/camel/spi/GroupAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/GroupAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/GroupAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HasCamelContext.java b/camel-api/src/main/java/org/apache/camel/spi/HasCamelContext.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HasCamelContext.java
rename to camel-api/src/main/java/org/apache/camel/spi/HasCamelContext.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HasGroup.java b/camel-api/src/main/java/org/apache/camel/spi/HasGroup.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HasGroup.java
rename to camel-api/src/main/java/org/apache/camel/spi/HasGroup.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HasId.java b/camel-api/src/main/java/org/apache/camel/spi/HasId.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HasId.java
rename to camel-api/src/main/java/org/apache/camel/spi/HasId.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HeaderFilterStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/HeaderFilterStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HeaderFilterStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/HeaderFilterStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HeaderFilterStrategyAware.java b/camel-api/src/main/java/org/apache/camel/spi/HeaderFilterStrategyAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HeaderFilterStrategyAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/HeaderFilterStrategyAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/HeadersMapFactory.java b/camel-api/src/main/java/org/apache/camel/spi/HeadersMapFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/HeadersMapFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/HeadersMapFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/IdAware.java b/camel-api/src/main/java/org/apache/camel/spi/IdAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/IdAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/IdAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java b/camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java b/camel-api/src/main/java/org/apache/camel/spi/InflightRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/InflightRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Injector.java b/camel-api/src/main/java/org/apache/camel/spi/Injector.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Injector.java
rename to camel-api/src/main/java/org/apache/camel/spi/Injector.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/InterceptStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/InterceptStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/InterceptStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/InterceptStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Language.java b/camel-api/src/main/java/org/apache/camel/spi/Language.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Language.java
rename to camel-api/src/main/java/org/apache/camel/spi/Language.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java b/camel-api/src/main/java/org/apache/camel/spi/LanguageCustomizer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java
rename to camel-api/src/main/java/org/apache/camel/spi/LanguageCustomizer.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/LanguageResolver.java b/camel-api/src/main/java/org/apache/camel/spi/LanguageResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/LanguageResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/LanguageResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/LifecycleStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/LifecycleStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/LifecycleStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/LifecycleStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/LogListener.java b/camel-api/src/main/java/org/apache/camel/spi/LogListener.java
similarity index 97%
rename from camel-core/src/main/java/org/apache/camel/spi/LogListener.java
rename to camel-api/src/main/java/org/apache/camel/spi/LogListener.java
index 6d1d941..69206d9 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/LogListener.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/LogListener.java
@@ -18,7 +18,6 @@ package org.apache.camel.spi;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
-import org.apache.camel.support.CamelLogger;
 
 /**
  * An event listener SPI for logging. Listeners are registered into {@link org.apache.camel.processor.LogProcessor} and
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementNameStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementNameStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementNameStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementNameStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ManagementStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ManagementStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/MaskingFormatter.java b/camel-api/src/main/java/org/apache/camel/spi/MaskingFormatter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/MaskingFormatter.java
rename to camel-api/src/main/java/org/apache/camel/spi/MaskingFormatter.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java b/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java b/camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/NamespaceAware.java b/camel-api/src/main/java/org/apache/camel/spi/NamespaceAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/NamespaceAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/NamespaceAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java b/camel-api/src/main/java/org/apache/camel/spi/NodeIdFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/NodeIdFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/OptimisticLockingAggregationRepository.java b/camel-api/src/main/java/org/apache/camel/spi/OptimisticLockingAggregationRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/OptimisticLockingAggregationRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/OptimisticLockingAggregationRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java b/camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java
rename to camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/PackageScanFilter.java b/camel-api/src/main/java/org/apache/camel/spi/PackageScanFilter.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/PackageScanFilter.java
rename to camel-api/src/main/java/org/apache/camel/spi/PackageScanFilter.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Policy.java b/camel-api/src/main/java/org/apache/camel/spi/Policy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Policy.java
rename to camel-api/src/main/java/org/apache/camel/spi/Policy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/PollingConsumerPollStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/PollingConsumerPollStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/PollingConsumerPollStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/PollingConsumerPollStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ProcessorFactory.java b/camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ProcessorFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/ProcessorFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RecoverableAggregationRepository.java b/camel-api/src/main/java/org/apache/camel/spi/RecoverableAggregationRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RecoverableAggregationRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/RecoverableAggregationRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Registry.java b/camel-api/src/main/java/org/apache/camel/spi/Registry.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Registry.java
rename to camel-api/src/main/java/org/apache/camel/spi/Registry.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ReloadStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ReloadStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ReloadStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ReloadStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java b/camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java b/camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java b/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
index c4cec57..7a7c600 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
@@ -18,8 +18,6 @@ package org.apache.camel.spi;
 
 import java.util.Map;
 
-import org.apache.camel.support.EndpointHelper;
-
 /**
  * Configuration use by {@link org.apache.camel.spi.RestConsumerFactory} and {@link org.apache.camel.spi.RestApiConsumerFactory}
  * for Camel components to support the Camel {@link org.apache.camel.model.rest.RestDefinition rest} DSL.
@@ -270,7 +268,7 @@ public class RestConfiguration {
      * Optional CamelContext id pattern to only allow Rest APIs from rest services within CamelContext's which name matches the pattern.
      * <p/>
      * The pattern <tt>#name#</tt> refers to the CamelContext name, to match on the current CamelContext only.
-     * For any other value, the pattern uses the rules from {@link EndpointHelper#matchPattern(String, String)}
+     * For any other value, the pattern uses the rules from {@link org.apache.camel.support.EndpointHelper#matchPattern(String, String)}
      *
      * @param apiContextIdPattern  the pattern
      */
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java b/camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestProducerFactory.java b/camel-api/src/main/java/org/apache/camel/spi/RestProducerFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RestProducerFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestProducerFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RestRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java b/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RouteContext.java
rename to camel-api/src/main/java/org/apache/camel/spi/RouteContext.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RouteController.java b/camel-api/src/main/java/org/apache/camel/spi/RouteController.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RouteController.java
rename to camel-api/src/main/java/org/apache/camel/spi/RouteController.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RouteError.java b/camel-api/src/main/java/org/apache/camel/spi/RouteError.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RouteError.java
rename to camel-api/src/main/java/org/apache/camel/spi/RouteError.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RoutePolicy.java b/camel-api/src/main/java/org/apache/camel/spi/RoutePolicy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RoutePolicy.java
rename to camel-api/src/main/java/org/apache/camel/spi/RoutePolicy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RoutePolicyFactory.java b/camel-api/src/main/java/org/apache/camel/spi/RoutePolicyFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RoutePolicyFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/RoutePolicyFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RouteStartupOrder.java b/camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
rename to camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java b/camel-api/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java
similarity index 88%
rename from camel-core/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java
rename to camel-api/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java
index db7b5c7..709544c 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/ScheduledPollConsumerScheduler.java
@@ -19,13 +19,11 @@ package org.apache.camel.spi;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Consumer;
 import org.apache.camel.ShutdownableService;
-import org.apache.camel.support.DefaultScheduledPollConsumerScheduler;
-import org.apache.camel.support.ScheduledPollConsumer;
 
 /**
- * A pluggable scheduler for {@link ScheduledPollConsumer} consumers.
+ * A pluggable scheduler for {@link org.apache.camel.support.ScheduledPollConsumer} consumers.
  * <p/>
- * The default implementation {@link DefaultScheduledPollConsumerScheduler} is
+ * The default implementation {@link org.apache.camel.support.DefaultScheduledPollConsumerScheduler} is
  * using the {@link java.util.concurrent.ScheduledExecutorService} from the JDK to schedule and run the poll task.
  * <p/>
  * An alternative implementation is in <tt>camel-quartz2</tt> component that allows to use CRON expression
diff --git a/camel-core/src/main/java/org/apache/camel/spi/SendDynamicAware.java b/camel-api/src/main/java/org/apache/camel/spi/SendDynamicAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/SendDynamicAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/SendDynamicAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ShutdownAware.java b/camel-api/src/main/java/org/apache/camel/spi/ShutdownAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ShutdownAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/ShutdownAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java b/camel-api/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
rename to camel-api/src/main/java/org/apache/camel/spi/ShutdownPrepared.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/ShutdownStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/ShutdownStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/StateRepository.java b/camel-api/src/main/java/org/apache/camel/spi/StateRepository.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/StateRepository.java
rename to camel-api/src/main/java/org/apache/camel/spi/StateRepository.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java b/camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
rename to camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/SubUnitOfWork.java b/camel-api/src/main/java/org/apache/camel/spi/SubUnitOfWork.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/SubUnitOfWork.java
rename to camel-api/src/main/java/org/apache/camel/spi/SubUnitOfWork.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/SubUnitOfWorkCallback.java b/camel-api/src/main/java/org/apache/camel/spi/SubUnitOfWorkCallback.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/SubUnitOfWorkCallback.java
rename to camel-api/src/main/java/org/apache/camel/spi/SubUnitOfWorkCallback.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Synchronization.java b/camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Synchronization.java
rename to camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/SynchronizationRouteAware.java b/camel-api/src/main/java/org/apache/camel/spi/SynchronizationRouteAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/SynchronizationRouteAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/SynchronizationRouteAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/SynchronizationVetoable.java b/camel-api/src/main/java/org/apache/camel/spi/SynchronizationVetoable.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/SynchronizationVetoable.java
rename to camel-api/src/main/java/org/apache/camel/spi/SynchronizationVetoable.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ThreadPoolFactory.java b/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ThreadPoolFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/ThreadPoolFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java b/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
rename to camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/TransactedPolicy.java b/camel-api/src/main/java/org/apache/camel/spi/TransactedPolicy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/TransactedPolicy.java
rename to camel-api/src/main/java/org/apache/camel/spi/TransactedPolicy.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Transformer.java b/camel-api/src/main/java/org/apache/camel/spi/Transformer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Transformer.java
rename to camel-api/src/main/java/org/apache/camel/spi/Transformer.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/TransformerRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/TransformerRegistry.java
similarity index 95%
rename from camel-core/src/main/java/org/apache/camel/spi/TransformerRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/TransformerRegistry.java
index d65d221..48536a2 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/TransformerRegistry.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/TransformerRegistry.java
@@ -19,7 +19,6 @@ package org.apache.camel.spi;
 import java.util.Map;
 
 import org.apache.camel.StaticService;
-import org.apache.camel.support.LRUCache;
 
 /**
  * Registry to cache transformers in memory.
@@ -27,7 +26,7 @@ import org.apache.camel.support.LRUCache;
  * The registry contains two caches:
  * <ul>
  *     <li>static - which keeps all the transformers in the cache for the entire lifecycle</li>
- *     <li>dynamic - which keeps the transformers in a {@link LRUCache} and may evict transformers which hasn't been requested recently</li>
+ *     <li>dynamic - which keeps the transformers in a {@link org.apache.camel.support.LRUCache} and may evict transformers which hasn't been requested recently</li>
  * </ul>
  * The static cache stores all the transformers that are created as part of setting up and starting routes.
  * The static cache has no upper limit.
diff --git a/camel-core/src/main/java/org/apache/camel/spi/TypeConverterAware.java b/camel-api/src/main/java/org/apache/camel/spi/TypeConverterAware.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/TypeConverterAware.java
rename to camel-api/src/main/java/org/apache/camel/spi/TypeConverterAware.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/TypeConverterLoader.java b/camel-api/src/main/java/org/apache/camel/spi/TypeConverterLoader.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/TypeConverterLoader.java
rename to camel-api/src/main/java/org/apache/camel/spi/TypeConverterLoader.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java b/camel-api/src/main/java/org/apache/camel/spi/UnitOfWork.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java
rename to camel-api/src/main/java/org/apache/camel/spi/UnitOfWork.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/UnitOfWorkFactory.java b/camel-api/src/main/java/org/apache/camel/spi/UnitOfWorkFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/UnitOfWorkFactory.java
rename to camel-api/src/main/java/org/apache/camel/spi/UnitOfWorkFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/UuidGenerator.java b/camel-api/src/main/java/org/apache/camel/spi/UuidGenerator.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/UuidGenerator.java
rename to camel-api/src/main/java/org/apache/camel/spi/UuidGenerator.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Validator.java b/camel-api/src/main/java/org/apache/camel/spi/Validator.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/Validator.java
rename to camel-api/src/main/java/org/apache/camel/spi/Validator.java
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ValidatorRegistry.java b/camel-api/src/main/java/org/apache/camel/spi/ValidatorRegistry.java
similarity index 94%
rename from camel-core/src/main/java/org/apache/camel/spi/ValidatorRegistry.java
rename to camel-api/src/main/java/org/apache/camel/spi/ValidatorRegistry.java
index 8153886..acecc0b 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ValidatorRegistry.java
+++ b/camel-api/src/main/java/org/apache/camel/spi/ValidatorRegistry.java
@@ -19,7 +19,6 @@ package org.apache.camel.spi;
 import java.util.Map;
 
 import org.apache.camel.StaticService;
-import org.apache.camel.support.LRUCache;
 
 /**
  * Registry to cache validators in memory.
@@ -27,7 +26,7 @@ import org.apache.camel.support.LRUCache;
  * The registry contains two caches:
  * <ul>
  *     <li>static - which keeps all the validators in the cache for the entire lifecycle</li>
- *     <li>dynamic - which keeps the validators in a {@link LRUCache} and may evict validators which hasn't been requested recently</li>
+ *     <li>dynamic - which keeps the validators in a {@link org.apache.camel.support.LRUCache} and may evict validators which hasn't been requested recently</li>
  * </ul>
  * The static cache stores all the validators that are created as part of setting up and starting routes.
  * The static cache has no upper limit.
diff --git a/camel-core/src/main/java/org/apache/camel/spi/package.html b/camel-api/src/main/java/org/apache/camel/spi/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/spi/package.html
rename to camel-api/src/main/java/org/apache/camel/spi/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/support/ServiceHelper.java b/camel-api/src/main/java/org/apache/camel/support/ServiceHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/ServiceHelper.java
rename to camel-api/src/main/java/org/apache/camel/support/ServiceHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java b/camel-api/src/main/java/org/apache/camel/support/ServiceSupport.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java
rename to camel-api/src/main/java/org/apache/camel/support/ServiceSupport.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/AliasedX509ExtendedKeyManager.java b/camel-api/src/main/java/org/apache/camel/support/jsse/AliasedX509ExtendedKeyManager.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/AliasedX509ExtendedKeyManager.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/AliasedX509ExtendedKeyManager.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/BaseSSLContextParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/BaseSSLContextParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/BaseSSLContextParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/BaseSSLContextParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/CipherSuitesParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/CipherSuitesParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/CipherSuitesParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/CipherSuitesParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/ClientAuthentication.java b/camel-api/src/main/java/org/apache/camel/support/jsse/ClientAuthentication.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/ClientAuthentication.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/ClientAuthentication.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/FilterParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/FilterParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/FilterParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/FilterParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/GlobalSSLContextParametersSupplier.java b/camel-api/src/main/java/org/apache/camel/support/jsse/GlobalSSLContextParametersSupplier.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/GlobalSSLContextParametersSupplier.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/GlobalSSLContextParametersSupplier.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/JsseParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/JsseParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/KeyManagersParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/KeyManagersParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/KeyManagersParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/KeyManagersParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/KeyStoreParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/KeyStoreParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/KeyStoreParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/KeyStoreParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextClientParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextClientParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextClientParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextClientParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextServerParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextServerParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/SSLContextServerParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/SSLContextServerParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/SecureRandomParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/SecureRandomParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/SecureRandomParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/SecureRandomParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/SecureSocketProtocolsParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/SecureSocketProtocolsParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/SecureSocketProtocolsParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/SecureSocketProtocolsParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/TrustManagersParameters.java b/camel-api/src/main/java/org/apache/camel/support/jsse/TrustManagersParameters.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/TrustManagersParameters.java
rename to camel-api/src/main/java/org/apache/camel/support/jsse/TrustManagersParameters.java
diff --git a/camel-core/src/main/java/org/apache/camel/support/jsse/package.html b/camel-api/src/main/java/org/apache/camel/support/jsse/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/support/jsse/package.html
rename to camel-api/src/main/java/org/apache/camel/support/jsse/package.html
diff --git a/camel-core/pom.xml b/camel-core/pom.xml
index 0d11356..936dd22 100644
--- a/camel-core/pom.xml
+++ b/camel-core/pom.xml
@@ -131,6 +131,22 @@
     </dependency>
 
     <!-- required dependencies by camel-core -->
+    <!-- it will be shade into camel-core by bnd plugin -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-util</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <!-- required dependencies by camel-core -->
+    <!-- it will be shade into camel-core by bnd plugin -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <!-- required dependencies by camel-core -->
     <!-- which we shade into camel-core so its available for everybody out of the box -->
     <dependency>
       <groupId>com.github.ben-manes.caffeine</groupId>
diff --git a/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
index 583d6cb..b64b3dc 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
@@ -25,7 +25,7 @@ import org.apache.camel.processor.DeadLetterChannel;
 import org.apache.camel.processor.FatalFallbackErrorHandler;
 import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.spi.RouteContext;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.LoggerFactory;
 
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 ea8ea1a..dceef02 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
@@ -30,7 +30,7 @@ import org.apache.camel.spi.ExecutorServiceManager;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.ThreadPoolProfile;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ExpressionToPredicateAdapter;
 import org.slf4j.LoggerFactory;
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
index 78c81f4..b3b9d28 100644
--- a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultEndpoint;
 
 /**
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 326c6af..127af96 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
@@ -28,7 +28,7 @@ import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.spi.Language;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultAsyncProducer;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java
index 81e341f..d66dde5 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetConsumer.java
@@ -22,7 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.ThroughputLogger;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultConsumer;
 import org.apache.camel.util.URISupport;
 
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 ecdae8f..95ac1b3 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
@@ -31,7 +31,7 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileChangedExclusiveReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileChangedExclusiveReadLockStrategy.java
index 7b10782..ab2f552 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileChangedExclusiveReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileChangedExclusiveReadLockStrategy.java
@@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.component.file.GenericFileOperations;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.StopWatch;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentChangedRepositoryReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentChangedRepositoryReadLockStrategy.java
index 5ad7fec..a541c47 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentChangedRepositoryReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentChangedRepositoryReadLockStrategy.java
@@ -29,7 +29,7 @@ import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperations;
 import org.apache.camel.spi.IdempotentRepository;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRenameRepositoryReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRenameRepositoryReadLockStrategy.java
index 6df72ee..50fa191 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRenameRepositoryReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRenameRepositoryReadLockStrategy.java
@@ -27,7 +27,7 @@ import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperations;
 import org.apache.camel.spi.IdempotentRepository;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRepositoryReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRepositoryReadLockStrategy.java
index 2619505..59e5785 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRepositoryReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileIdempotentRepositoryReadLockStrategy.java
@@ -29,7 +29,7 @@ import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperations;
 import org.apache.camel.spi.IdempotentRepository;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java
index 64ac1b0..fbc5dd9 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java
@@ -28,7 +28,7 @@ import org.apache.camel.LoggingLevel;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileOperations;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.StopWatch;
 import org.slf4j.Logger;
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java
index 2bba3ff..ff43d5f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java
@@ -25,7 +25,7 @@ import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperationFailedException;
 import org.apache.camel.component.file.GenericFileOperations;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.StopWatch;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
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 1dc443a..ad25661 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
@@ -24,7 +24,7 @@ import org.apache.camel.LoggingLevel;
 import org.apache.camel.processor.DefaultExchangeFormatter;
 import org.apache.camel.spi.ExchangeFormatter;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultComponent;
 import org.slf4j.Logger;
 
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index 728b9b4..1a3c823 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ProcessorEndpoint;
 import org.apache.camel.support.ServiceHelper;
 import org.slf4j.Logger;
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 99d294a..aa146e1 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
@@ -22,7 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.ThroughputLogger;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultComponent;
 
 /**
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 280e83e..649692d 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
@@ -26,7 +26,7 @@ import org.apache.camel.component.extension.verifier.CatalogVerifierCustomizer;
 import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
 import org.apache.camel.component.extension.verifier.ResultBuilder;
 import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.runtimecatalog.JSonSchemaHelper;
+import org.apache.camel.runtimecatalog.impl.JSonSchemaHelper;
 import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index 8d3bfd4..078e14c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -39,7 +39,7 @@ import org.apache.camel.support.DefaultEndpoint;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.ObjectHelper;
 
-import static org.apache.camel.spi.RestProducerFactoryHelper.setupComponent;
+import static org.apache.camel.support.RestProducerFactoryHelper.setupComponent;
 
 /**
  * The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).
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 c298920..0618fe0 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
@@ -120,7 +120,7 @@ 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.HandleFault;
-import org.apache.camel.runtimecatalog.DefaultRuntimeCamelCatalog;
+import org.apache.camel.runtimecatalog.impl.DefaultRuntimeCamelCatalog;
 import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.CamelContextNameStrategy;
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
index e1c2a4b..4947c47 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
@@ -29,7 +29,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Route;
 import org.apache.camel.management.event.ExchangeCompletedEvent;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.EventNotifierSupport;
 import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.support.ServiceHelper;
diff --git a/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
index b26d898..27d90dc 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
@@ -49,7 +49,7 @@ import org.apache.camel.spi.PackageScanClassResolver;
 import org.apache.camel.spi.TypeConverterAware;
 import org.apache.camel.spi.TypeConverterLoader;
 import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.LRUCacheFactory;
 import org.apache.camel.support.MessageHelper;
 import org.apache.camel.support.ServiceSupport;
diff --git a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
index 24ffd94..e6b28d5 100644
--- a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.MaskingFormatter;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.support.CamelContextHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
diff --git a/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
index 7422391..d2e1549 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/CamelLogProcessor.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.IdAware;
 import org.apache.camel.spi.LogListener;
 import org.apache.camel.spi.MaskingFormatter;
 import org.apache.camel.support.AsyncProcessorHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java b/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
index 2aa15aa..1068c38 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
@@ -22,7 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 
 /**
  * Implements a <a
diff --git a/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
index 765c760..b637648 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
@@ -22,7 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 
 /**
  * Default error handler
diff --git a/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
index aec68d1..fc0fa99 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.IdAware;
 import org.apache.camel.spi.LogListener;
 import org.apache.camel.spi.MaskingFormatter;
 import org.apache.camel.support.AsyncProcessorHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ServiceSupport;
 
 /**
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index 62058e8..0b9bb30 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -44,7 +44,7 @@ import org.apache.camel.spi.SubUnitOfWorkCallback;
 import org.apache.camel.spi.UnitOfWork;
 import org.apache.camel.support.AsyncProcessorConverterHelper;
 import org.apache.camel.support.CamelContextHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.EventHelper;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.support.MessageHelper;
diff --git a/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java b/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
index dc7beba..37dd7ee 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
@@ -27,7 +27,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.spi.IdAware;
 import org.apache.camel.support.AsyncProcessorHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java
index 92cc156..0e72013 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogDebugger.java
@@ -45,7 +45,7 @@ import org.apache.camel.model.ProcessorDefinitionHelper;
 import org.apache.camel.spi.Condition;
 import org.apache.camel.spi.Debugger;
 import org.apache.camel.spi.InterceptStrategy;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.MessageHelper;
 import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.support.ServiceSupport;
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CollectionStringBuffer.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/CollectionStringBuffer.java
deleted file mode 100644
index f6484b8..0000000
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CollectionStringBuffer.java
+++ /dev/null
@@ -1,57 +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.runtimecatalog;
-
-public class CollectionStringBuffer {
-    private final StringBuilder buffer = new StringBuilder();
-    private String separator;
-    private boolean first = true;
-
-    public CollectionStringBuffer() {
-        this(", ");
-    }
-
-    public CollectionStringBuffer(String separator) {
-        this.separator = separator;
-    }
-
-    @Override
-    public String toString() {
-        return buffer.toString();
-    }
-
-    public void append(Object value) {
-        if (first) {
-            first = false;
-        } else {
-            buffer.append(separator);
-        }
-        buffer.append(value);
-    }
-
-    public String getSeparator() {
-        return separator;
-    }
-
-    public void setSeparator(String separator) {
-        this.separator = separator;
-    }
-
-    public boolean isEmpty() {
-        return first;
-    }
-}
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/AbstractCamelCatalog.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalog.java
similarity index 95%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/AbstractCamelCatalog.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalog.java
index 8150c00..7f31f75 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/AbstractCamelCatalog.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalog.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -33,32 +33,37 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-
-import static org.apache.camel.runtimecatalog.CatalogHelper.after;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getNames;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getPropertyDefaultValue;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getPropertyEnum;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getPropertyKind;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getPropertyNameFromNameWithPrefix;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getPropertyPrefix;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.getRow;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isComponentConsumerOnly;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isComponentLenientProperties;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isComponentProducerOnly;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyBoolean;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyConsumerOnly;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyDeprecated;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyInteger;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyMultiValue;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyNumber;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyObject;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyProducerOnly;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.isPropertyRequired;
-import static org.apache.camel.runtimecatalog.JSonSchemaHelper.stripOptionalPrefixFromName;
-import static org.apache.camel.runtimecatalog.URISupport.createQueryString;
-import static org.apache.camel.runtimecatalog.URISupport.isEmpty;
-import static org.apache.camel.runtimecatalog.URISupport.normalizeUri;
-import static org.apache.camel.runtimecatalog.URISupport.stripQuery;
+import java.util.stream.Collectors;
+
+import org.apache.camel.runtimecatalog.EndpointValidationResult;
+import org.apache.camel.runtimecatalog.JSonSchemaResolver;
+import org.apache.camel.runtimecatalog.LanguageValidationResult;
+
+import static org.apache.camel.runtimecatalog.impl.CatalogHelper.after;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getNames;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getPropertyDefaultValue;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getPropertyEnum;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getPropertyKind;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getPropertyNameFromNameWithPrefix;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getPropertyPrefix;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.getRow;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isComponentConsumerOnly;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isComponentLenientProperties;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isComponentProducerOnly;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyBoolean;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyConsumerOnly;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyDeprecated;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyInteger;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyMultiValue;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyNumber;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyObject;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyProducerOnly;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.isPropertyRequired;
+import static org.apache.camel.runtimecatalog.impl.JSonSchemaHelper.stripOptionalPrefixFromName;
+import static org.apache.camel.runtimecatalog.impl.URISupport.createQueryString;
+import static org.apache.camel.runtimecatalog.impl.URISupport.isEmpty;
+import static org.apache.camel.runtimecatalog.impl.URISupport.normalizeUri;
+import static org.apache.camel.runtimecatalog.impl.URISupport.stripQuery;
 
 
 /**
@@ -763,14 +768,12 @@ public abstract class AbstractCamelCatalog {
                 // extra all the multi valued options
                 Map<String, Object> values = URISupport.extractProperties(parameters, prefix);
                 // build a string with the extra multi valued options with the prefix and & as separator
-                CollectionStringBuffer csb = new CollectionStringBuffer("&");
-                for (Map.Entry<String, Object> multi : values.entrySet()) {
-                    String line = prefix + multi.getKey() + "=" + (multi.getValue() != null ? multi.getValue().toString() : "");
-                    csb.append(line);
-                }
+                String csb = values.entrySet().stream()
+                        .map(multi -> prefix + multi.getKey() + "=" + (multi.getValue() != null ? multi.getValue().toString() : ""))
+                        .collect(Collectors.joining("&"));
                 // append the extra multi-values to the existing (which contains the first multi value)
                 if (!csb.isEmpty()) {
-                    value = value + "&" + csb.toString();
+                    value = value + "&" + csb;
                 }
             }
 
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CamelContextJSonSchemaResolver.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CamelContextJSonSchemaResolver.java
similarity index 95%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/CamelContextJSonSchemaResolver.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CamelContextJSonSchemaResolver.java
index d3a448c..65aa34d 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CamelContextJSonSchemaResolver.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CamelContextJSonSchemaResolver.java
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.io.IOException;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.runtimecatalog.JSonSchemaResolver;
 
 /**
  * Uses runtime {@link CamelContext} to resolve the JSon schema files.
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CatalogHelper.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CatalogHelper.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/CatalogHelper.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CatalogHelper.java
index 1b224df..eaf70d9 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/CatalogHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/CatalogHelper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.io.BufferedReader;
 import java.io.IOException;
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/DefaultRuntimeCamelCatalog.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/DefaultRuntimeCamelCatalog.java
similarity index 97%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/DefaultRuntimeCamelCatalog.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/DefaultRuntimeCamelCatalog.java
index 041eeb0..439b00c 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/DefaultRuntimeCamelCatalog.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/DefaultRuntimeCamelCatalog.java
@@ -14,12 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 
 /**
  * Default {@link RuntimeCamelCatalog}.
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaHelper.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelper.java
similarity index 97%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaHelper.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelper.java
index 1becdf9..d923579 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/JSonSchemaHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
@@ -22,6 +22,7 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.json.simple.JsonObject;
 import org.json.simple.Jsoner;
@@ -92,12 +93,9 @@ public final class JSonSchemaHelper {
             // to be backwards compatible
             Object newValue = rowEntry.getValue();
             if (newValue instanceof List) {
-                List list = (List) newValue;
-                CollectionStringBuffer csb = new CollectionStringBuffer(",");
-                for (Object line : list) {
-                    csb.append(line);
-                }
-                newValue = csb.toString();
+                List<?> list = (List) newValue;
+                newValue = list.stream().map(Object::toString)
+                        .collect(Collectors.joining(","));
             }
             // ensure value is escaped
             String value = escapeJson(newValue.toString());
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/SuggestionStrategy.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/SuggestionStrategy.java
similarity index 96%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/SuggestionStrategy.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/SuggestionStrategy.java
index e29afc6..95875dd 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/SuggestionStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/SuggestionStrategy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.Set;
 
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/TimePatternConverter.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/TimePatternConverter.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/TimePatternConverter.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/TimePatternConverter.java
index ed5585c..bb269ee 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/TimePatternConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/TimePatternConverter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/URISupport.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/URISupport.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/URISupport.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/URISupport.java
index 8bd0814..73f05a2 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/URISupport.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/URISupport.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
diff --git a/camel-core/src/main/java/org/apache/camel/runtimecatalog/UnsafeUriCharactersEncoder.java b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/UnsafeUriCharactersEncoder.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/runtimecatalog/UnsafeUriCharactersEncoder.java
rename to camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/UnsafeUriCharactersEncoder.java
index 2aee59f..9dbe30c 100644
--- a/camel-core/src/main/java/org/apache/camel/runtimecatalog/UnsafeUriCharactersEncoder.java
+++ b/camel-core/src/main/java/org/apache/camel/runtimecatalog/impl/UnsafeUriCharactersEncoder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.ArrayList;
 import java.util.BitSet;
diff --git a/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java b/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
index 53bb87b..474c2f7 100644
--- a/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
@@ -21,6 +21,7 @@ import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.RollbackExchangeException;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.ExceptionHandler;
 import org.slf4j.LoggerFactory;
 
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestProducerFactoryHelper.java b/camel-core/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
similarity index 96%
rename from camel-core/src/main/java/org/apache/camel/spi/RestProducerFactoryHelper.java
rename to camel-core/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
index 743d7f4..bac6032 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestProducerFactoryHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
@@ -14,15 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spi;
+package org.apache.camel.support;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
-import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.support.ServiceHelper;
+import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java b/camel-core/src/main/java/org/apache/camel/support/dump/CamelContextStatDump.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
rename to camel-core/src/main/java/org/apache/camel/support/dump/CamelContextStatDump.java
index c054835..59ba6aa 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
+++ b/camel-core/src/main/java/org/apache/camel/support/dump/CamelContextStatDump.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.util;
+package org.apache.camel.support.dump;
 
 import java.util.List;
 
diff --git a/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java b/camel-core/src/main/java/org/apache/camel/support/dump/ProcessorStatDump.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
rename to camel-core/src/main/java/org/apache/camel/support/dump/ProcessorStatDump.java
index 396f4f0..56ab22e 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
+++ b/camel-core/src/main/java/org/apache/camel/support/dump/ProcessorStatDump.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.util;
+package org.apache.camel.support.dump;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java b/camel-core/src/main/java/org/apache/camel/support/dump/RouteStatDump.java
similarity index 99%
rename from camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
rename to camel-core/src/main/java/org/apache/camel/support/dump/RouteStatDump.java
index 63afc60..9b385e6 100644
--- a/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
+++ b/camel-core/src/main/java/org/apache/camel/support/dump/RouteStatDump.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.util;
+package org.apache.camel.support.dump;
 
 import java.util.List;
 
diff --git a/camel-core/src/main/resources/org/apache/camel/jaxb.index b/camel-core/src/main/resources/org/apache/camel/jaxb.index
index c4c326b..a589449 100644
--- a/camel-core/src/main/resources/org/apache/camel/jaxb.index
+++ b/camel-core/src/main/resources/org/apache/camel/jaxb.index
@@ -17,7 +17,6 @@
 ExchangePattern
 LoggingLevel
 ManagementStatisticsLevel
-ThreadPoolRejectedPolicy
 TypeConverterExists
 ShutdownRoute
 ShutdownRunningTask
\ No newline at end of file
diff --git a/camel-core/src/main/resources/org/apache/camel/util/jaxb.index b/camel-core/src/main/resources/org/apache/camel/support/dump/jaxb.index
similarity index 100%
copy from camel-core/src/main/resources/org/apache/camel/util/jaxb.index
copy to camel-core/src/main/resources/org/apache/camel/support/dump/jaxb.index
diff --git a/camel-core/src/main/resources/org/apache/camel/util/jaxb.index b/camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index
similarity index 95%
rename from camel-core/src/main/resources/org/apache/camel/util/jaxb.index
rename to camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index
index 5738681..341b476 100644
--- a/camel-core/src/main/resources/org/apache/camel/util/jaxb.index
+++ b/camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index
@@ -14,6 +14,4 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ------------------------------------------------------------------------
-MessageDump
-ProcessorStatDump
-RouteStatDump
+ThreadPoolRejectedPolicy
diff --git a/camel-core/src/test/java/org/apache/camel/util/TimeTest.java b/camel-core/src/test/java/org/apache/camel/component/mock/TimeTest.java
similarity index 96%
rename from camel-core/src/test/java/org/apache/camel/util/TimeTest.java
rename to camel-core/src/test/java/org/apache/camel/component/mock/TimeTest.java
index 1dc5e80..9b7bb78 100644
--- a/camel-core/src/test/java/org/apache/camel/util/TimeTest.java
+++ b/camel-core/src/test/java/org/apache/camel/component/mock/TimeTest.java
@@ -14,11 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.util;
+package org.apache.camel.component.mock;
 
 import java.util.concurrent.TimeUnit;
 
-import org.apache.camel.component.mock.Time;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java b/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
index b5de97f..37f796f 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
@@ -18,7 +18,7 @@ package org.apache.camel.processor;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultExchange;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/camel-core/src/test/java/org/apache/camel/runtimecatalog/AbstractCamelCatalogTest.java b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalogTest.java
similarity index 96%
rename from camel-core/src/test/java/org/apache/camel/runtimecatalog/AbstractCamelCatalogTest.java
rename to camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalogTest.java
index cdd9cf7..5fc47c5 100644
--- a/camel-core/src/test/java/org/apache/camel/runtimecatalog/AbstractCamelCatalogTest.java
+++ b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/AbstractCamelCatalogTest.java
@@ -14,12 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.camel.runtimecatalog.JSonSchemaResolver;
+import org.apache.camel.runtimecatalog.impl.AbstractCamelCatalog;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/camel-core/src/test/java/org/apache/camel/runtimecatalog/JSonSchemaHelperTest.java b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelperTest.java
similarity index 96%
rename from camel-core/src/test/java/org/apache/camel/runtimecatalog/JSonSchemaHelperTest.java
rename to camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelperTest.java
index 7be832c..4e42f02 100644
--- a/camel-core/src/test/java/org/apache/camel/runtimecatalog/JSonSchemaHelperTest.java
+++ b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/JSonSchemaHelperTest.java
@@ -14,12 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.runtimecatalog.impl.JSonSchemaHelper;
 import org.junit.Test;
 
 public class JSonSchemaHelperTest extends ContextTestSupport {
diff --git a/camel-core/src/test/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalogTest.java b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/RuntimeCamelCatalogTest.java
similarity index 98%
rename from camel-core/src/test/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalogTest.java
rename to camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/RuntimeCamelCatalogTest.java
index 49a39f1..8444a7c 100644
--- a/camel-core/src/test/java/org/apache/camel/runtimecatalog/RuntimeCamelCatalogTest.java
+++ b/camel-core/src/test/java/org/apache/camel/runtimecatalog/impl/RuntimeCamelCatalogTest.java
@@ -14,12 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.runtimecatalog;
+package org.apache.camel.runtimecatalog.impl;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.runtimecatalog.EndpointValidationResult;
+import org.apache.camel.runtimecatalog.LanguageValidationResult;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.slf4j.Logger;
diff --git a/camel-util/pom.xml b/camel-util/pom.xml
new file mode 100644
index 0000000..a05e56e
--- /dev/null
+++ b/camel-util/pom.xml
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-parent</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+    <relativePath>../parent</relativePath>
+  </parent>
+
+  <artifactId>camel-util</artifactId>
+  <packaging>jar</packaging>
+  <name>Camel :: Util</name>
+  <description>The Camel Utilities</description>
+
+  <dependencies>
+
+    <!-- required dependencies by camel-core -->
+    <!-- it will be shade into camel-core by bnd plugin -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>spi-annotations</artifactId>
+      <version>${project.version}</version>
+      <optional>true</optional>
+    </dependency>
+
+    <!-- we shade our patched ordered json-simple parser -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>json-simple-ordered</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <!-- required dependencies by camel-core -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+
+    <!-- testing -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <artifactId>hamcrest-core</artifactId>
+          <groupId>org.hamcrest</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>java-hamcrest</artifactId>
+      <version>${hamcrest-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.awaitility</groupId>
+      <artifactId>awaitility</artifactId>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <artifactId>hamcrest-core</artifactId>
+          <groupId>org.hamcrest</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.assertj</groupId>
+      <artifactId>assertj-core</artifactId>
+      <version>${assertj-version}</version>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <links>
+            <link>http://download.oracle.com/javase/7/docs/api/</link>
+            <link>http://download.oracle.com/javaee/7/api/</link>
+          </links>
+          <linksource>true</linksource>
+          <maxmemory>256m</maxmemory>
+          <groups>
+            <group>
+              <title>Camel API</title>
+              <packages>org.apache.camel</packages>
+            </group>
+            <group>
+              <title>Fluent API (DSL) for building EIP rules</title>
+              <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
+            </group>
+            <group>
+              <title>EIP model</title>
+              <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
+            </group>
+            <group>
+              <title>Camel Components</title>
+              <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
+            </group>
+            <group>
+              <title>Language APIs and plugins for Expressions and Predicates</title>
+              <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
+            </group>
+            <group>
+              <title>Processors to implement the Enterprise Integration Patterns</title>
+              <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
+            </group>
+            <group>
+              <title>Strategy APIs for implementors extending Camel</title>
+              <packages>org.apache.camel.spi</packages>
+            </group>
+            <group>
+              <title>Support APIs for implementors</title>
+              <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
+            </group>
+            <group>
+              <title>Management (JMX) API</title>
+              <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
+            </group>
+            <group>
+              <title>Camel Runtime</title>
+              <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
+            </group>
+            <group>
+              <title>Camel Main to run Camel standalone</title>
+              <packages>org.apache.camel.main</packages>
+            </group>
+            <group>
+              <title>Type conversion helper classes</title>
+              <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
+            </group>
+            <group>
+              <title>Utility classes</title>
+              <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
+            </group>
+          </groups>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+
+  <profiles>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>package</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <links>
+                <link>http://download.oracle.com/javase/7/docs/api/</link>
+                <link>http://download.oracle.com/javaee/7/api/</link>
+              </links>
+              <linksource>true</linksource>
+              <maxmemory>256m</maxmemory>
+              <groups>
+                <group>
+                  <title>Camel API</title>
+                  <packages>org.apache.camel</packages>
+                </group>
+                <group>
+                  <title>Fluent API (DSL) for building EIP rules</title>
+                  <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
+                </group>
+                <group>
+                  <title>EIP model</title>
+                  <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
+                </group>
+                <group>
+                  <title>Camel Components</title>
+                  <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
+                </group>
+                <group>
+                  <title>Language APIs and plugins for Expressions and Predicates</title>
+                  <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
+                </group>
+                <group>
+                  <title>Processors to implement the Enterprise Integration Patterns</title>
+                  <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
+                </group>
+                <group>
+                  <title>Strategy APIs for implementors extending Camel</title>
+                  <packages>org.apache.camel.spi</packages>
+                </group>
+                <group>
+                  <title>Support APIs for implementors</title>
+                  <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
+                </group>
+                <group>
+                  <title>Management (JMX) API</title>
+                  <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
+                </group>
+                <group>
+                  <title>Camel Runtime</title>
+                  <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
+                </group>
+                <group>
+                  <title>Camel Main to run Camel standalone</title>
+                  <packages>org.apache.camel.main</packages>
+                </group>
+                <group>
+                  <title>Type conversion helper classes</title>
+                  <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
+                </group>
+                <group>
+                  <title>Utility classes</title>
+                  <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
+                </group>
+              </groups>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <!-- skip management tests on AIX as it hangs CI servers -->
+    <profile>
+      <id>aix</id>
+      <activation>
+        <os>
+          <name>aix</name>
+        </os>
+      </activation>
+      <properties>
+        <platform.skip.tests>org/apache/camel/management/**/*.java</platform.skip.tests>
+      </properties>
+    </profile>
+    <profile>
+      <id>xalan</id>
+      <dependencies>
+        <!-- enable the Xalan processor -->
+        <dependency>
+          <groupId>xalan</groupId>
+          <artifactId>xalan</artifactId>
+          <version>${xalan-version}</version>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>xerces</id>
+      <dependencies>
+        <!-- enable the xerces processor -->
+        <dependency>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+          <version>${xerces-version}</version>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>woodstox</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <!-- xmltokenizer using woodstox -->
+        <dependency>
+          <groupId>org.codehaus.woodstox</groupId>
+          <artifactId>woodstox-core-asl</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+    </profile>
+
+    <profile>
+      <id>jdk9+-build</id>
+      <activation>
+        <jdk>[9,)</jdk>
+      </activation>
+      <dependencies>
+
+        <!-- enable the APT processor -->
+        <dependency>
+          <groupId>org.apache.camel</groupId>
+          <artifactId>apt</artifactId>
+          <scope>provided</scope>
+        </dependency>
+        <!-- xmltokenizer using woodstox -->
+        <dependency>
+          <groupId>org.codehaus.woodstox</groupId>
+          <artifactId>woodstox-core-asl</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <!-- skip file stress tests as they are intended to run manually -->
+              <excludes>
+                <exclude>org/apache/camel/component/file/stress/**.java</exclude>
+                <exclude>**/DistributedCompletionIntervalTest.java</exclude>
+                <exclude>**/DistributedConcurrentPerCorrelationKeyTest.java</exclude>
+                <exclude>${platform.skip.tests}</exclude>
+              </excludes>
+              <forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
+              <!-- needed for testing the properties component -->
+              <environmentVariables>
+              <FOO_SERVICE_HOST>myserver</FOO_SERVICE_HOST>
+              <FOO_SERVICE_PORT>8081</FOO_SERVICE_PORT>
+              </environmentVariables>
+              <argLine>--add-modules java.xml.bind,java.xml.ws --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED</argLine>
+            </configuration>
+            <dependencies>
+              <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-core</artifactId>
+                <version>${jaxb-version}</version>
+              </dependency>
+              <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-impl</artifactId>
+                <version>${jaxb-version}</version>
+              </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>
diff --git a/camel-core/src/main/java/org/apache/camel/util/AntPathMatcher.java b/camel-util/src/main/java/org/apache/camel/util/AntPathMatcher.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/AntPathMatcher.java
rename to camel-util/src/main/java/org/apache/camel/util/AntPathMatcher.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/CamelVersionHelper.java b/camel-util/src/main/java/org/apache/camel/util/CamelVersionHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/CamelVersionHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/CamelVersionHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java b/camel-util/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java
rename to camel-util/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/CastUtils.java b/camel-util/src/main/java/org/apache/camel/util/CastUtils.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/CastUtils.java
rename to camel-util/src/main/java/org/apache/camel/util/CastUtils.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/CollectionHelper.java b/camel-util/src/main/java/org/apache/camel/util/CollectionHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/CollectionHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/CollectionHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/CollectionStringBuffer.java b/camel-util/src/main/java/org/apache/camel/util/CollectionStringBuffer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/CollectionStringBuffer.java
rename to camel-util/src/main/java/org/apache/camel/util/CollectionStringBuffer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/FilePathResolver.java b/camel-util/src/main/java/org/apache/camel/util/FilePathResolver.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/FilePathResolver.java
rename to camel-util/src/main/java/org/apache/camel/util/FilePathResolver.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/FileUtil.java b/camel-util/src/main/java/org/apache/camel/util/FileUtil.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/FileUtil.java
rename to camel-util/src/main/java/org/apache/camel/util/FileUtil.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/HostUtils.java b/camel-util/src/main/java/org/apache/camel/util/HostUtils.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/HostUtils.java
rename to camel-util/src/main/java/org/apache/camel/util/HostUtils.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/IOHelper.java b/camel-util/src/main/java/org/apache/camel/util/IOHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/IOHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/IOHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/InetAddressUtil.java b/camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/InetAddressUtil.java
rename to camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java b/camel-util/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java b/camel-util/src/main/java/org/apache/camel/util/KeyValueHolder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java
rename to camel-util/src/main/java/org/apache/camel/util/KeyValueHolder.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java b/camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java b/camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/PackageHelper.java b/camel-util/src/main/java/org/apache/camel/util/PackageHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/PackageHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/PackageHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/ReferenceCount.java b/camel-util/src/main/java/org/apache/camel/util/ReferenceCount.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/ReferenceCount.java
rename to camel-util/src/main/java/org/apache/camel/util/ReferenceCount.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/ReflectionHelper.java b/camel-util/src/main/java/org/apache/camel/util/ReflectionHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/ReflectionHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/ReflectionHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/Scanner.java b/camel-util/src/main/java/org/apache/camel/util/Scanner.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/Scanner.java
rename to camel-util/src/main/java/org/apache/camel/util/Scanner.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/SedaConstants.java b/camel-util/src/main/java/org/apache/camel/util/SedaConstants.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/SedaConstants.java
rename to camel-util/src/main/java/org/apache/camel/util/SedaConstants.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/SkipIterator.java b/camel-util/src/main/java/org/apache/camel/util/SkipIterator.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/SkipIterator.java
rename to camel-util/src/main/java/org/apache/camel/util/SkipIterator.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/StopWatch.java b/camel-util/src/main/java/org/apache/camel/util/StopWatch.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/StopWatch.java
rename to camel-util/src/main/java/org/apache/camel/util/StopWatch.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/StreamUtils.java b/camel-util/src/main/java/org/apache/camel/util/StreamUtils.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/StreamUtils.java
rename to camel-util/src/main/java/org/apache/camel/util/StreamUtils.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/StringHelper.java b/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/StringHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/StringHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java b/camel-util/src/main/java/org/apache/camel/util/StringQuoteHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/StringQuoteHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/TimeUtils.java b/camel-util/src/main/java/org/apache/camel/util/TimeUtils.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/TimeUtils.java
rename to camel-util/src/main/java/org/apache/camel/util/TimeUtils.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/URISupport.java b/camel-util/src/main/java/org/apache/camel/util/URISupport.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/URISupport.java
rename to camel-util/src/main/java/org/apache/camel/util/URISupport.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/UnitUtils.java b/camel-util/src/main/java/org/apache/camel/util/UnitUtils.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/UnitUtils.java
rename to camel-util/src/main/java/org/apache/camel/util/UnitUtils.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/UnsafeUriCharactersEncoder.java b/camel-util/src/main/java/org/apache/camel/util/UnsafeUriCharactersEncoder.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/UnsafeUriCharactersEncoder.java
rename to camel-util/src/main/java/org/apache/camel/util/UnsafeUriCharactersEncoder.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/XmlLineNumberParser.java b/camel-util/src/main/java/org/apache/camel/util/XmlLineNumberParser.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/XmlLineNumberParser.java
rename to camel-util/src/main/java/org/apache/camel/util/XmlLineNumberParser.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/backoff/BackOff.java b/camel-util/src/main/java/org/apache/camel/util/backoff/BackOff.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/backoff/BackOff.java
rename to camel-util/src/main/java/org/apache/camel/util/backoff/BackOff.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/backoff/BackOffTimer.java b/camel-util/src/main/java/org/apache/camel/util/backoff/BackOffTimer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/backoff/BackOffTimer.java
rename to camel-util/src/main/java/org/apache/camel/util/backoff/BackOffTimer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/backoff/BackOffTimerTask.java b/camel-util/src/main/java/org/apache/camel/util/backoff/BackOffTimerTask.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/backoff/BackOffTimerTask.java
rename to camel-util/src/main/java/org/apache/camel/util/backoff/BackOffTimerTask.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/backoff/package.html b/camel-util/src/main/java/org/apache/camel/util/backoff/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/backoff/package.html
rename to camel-util/src/main/java/org/apache/camel/util/backoff/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/CamelThreadFactory.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/CamelThreadFactory.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/CamelThreadFactory.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/CamelThreadFactory.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/LockHelper.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/LockHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/LockHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/LockHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/Rejectable.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/Rejectable.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/Rejectable.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/Rejectable.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableFutureTask.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableFutureTask.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableFutureTask.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableFutureTask.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableScheduledThreadPoolExecutor.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableScheduledThreadPoolExecutor.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableScheduledThreadPoolExecutor.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableScheduledThreadPoolExecutor.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableThreadPoolExecutor.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableThreadPoolExecutor.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/RejectableThreadPoolExecutor.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/RejectableThreadPoolExecutor.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/SizedScheduledExecutorService.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/SizedScheduledExecutorService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/SizedScheduledExecutorService.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/SizedScheduledExecutorService.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionService.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionService.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionService.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/SynchronousExecutorService.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/SynchronousExecutorService.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/SynchronousExecutorService.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/SynchronousExecutorService.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadPoolRejectedPolicy.java b/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadPoolRejectedPolicy.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadPoolRejectedPolicy.java
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadPoolRejectedPolicy.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/package.html b/camel-util/src/main/java/org/apache/camel/util/concurrent/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/concurrent/package.html
rename to camel-util/src/main/java/org/apache/camel/util/concurrent/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/Bindings.java b/camel-util/src/main/java/org/apache/camel/util/function/Bindings.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/Bindings.java
rename to camel-util/src/main/java/org/apache/camel/util/function/Bindings.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/Predicates.java b/camel-util/src/main/java/org/apache/camel/util/function/Predicates.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/Predicates.java
rename to camel-util/src/main/java/org/apache/camel/util/function/Predicates.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/Suppliers.java b/camel-util/src/main/java/org/apache/camel/util/function/Suppliers.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/Suppliers.java
rename to camel-util/src/main/java/org/apache/camel/util/function/Suppliers.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingBiConsumer.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingBiConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingBiConsumer.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingBiConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingBiFunction.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingBiFunction.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingBiFunction.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingBiFunction.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingConsumer.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingConsumer.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingFunction.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingFunction.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingFunction.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingFunction.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingHelper.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingHelper.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingHelper.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingHelper.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingRunnable.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingRunnable.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingRunnable.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingRunnable.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingSupplier.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingSupplier.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingSupplier.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingSupplier.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingToLongFunction.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingToLongFunction.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingToLongFunction.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingToLongFunction.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/ThrowingTriConsumer.java b/camel-util/src/main/java/org/apache/camel/util/function/ThrowingTriConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/ThrowingTriConsumer.java
rename to camel-util/src/main/java/org/apache/camel/util/function/ThrowingTriConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/TriConsumer.java b/camel-util/src/main/java/org/apache/camel/util/function/TriConsumer.java
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/TriConsumer.java
rename to camel-util/src/main/java/org/apache/camel/util/function/TriConsumer.java
diff --git a/camel-core/src/main/java/org/apache/camel/util/function/package.html b/camel-util/src/main/java/org/apache/camel/util/function/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/function/package.html
rename to camel-util/src/main/java/org/apache/camel/util/function/package.html
diff --git a/camel-core/src/main/java/org/apache/camel/util/package.html b/camel-util/src/main/java/org/apache/camel/util/package.html
similarity index 100%
rename from camel-core/src/main/java/org/apache/camel/util/package.html
rename to camel-util/src/main/java/org/apache/camel/util/package.html
diff --git a/camel-core/src/test/java/org/apache/camel/util/AntPathMatcherTest.java b/camel-util/src/test/java/org/apache/camel/util/AntPathMatcherTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/AntPathMatcherTest.java
rename to camel-util/src/test/java/org/apache/camel/util/AntPathMatcherTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/CamelVersionHelperTest.java b/camel-util/src/test/java/org/apache/camel/util/CamelVersionHelperTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/CamelVersionHelperTest.java
rename to camel-util/src/test/java/org/apache/camel/util/CamelVersionHelperTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/CollectionHelperTest.java b/camel-util/src/test/java/org/apache/camel/util/CollectionHelperTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/CollectionHelperTest.java
rename to camel-util/src/test/java/org/apache/camel/util/CollectionHelperTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/CollectionStringBufferTest.java b/camel-util/src/test/java/org/apache/camel/util/CollectionStringBufferTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/CollectionStringBufferTest.java
rename to camel-util/src/test/java/org/apache/camel/util/CollectionStringBufferTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/UnitUtilsTest.java b/camel-util/src/test/java/org/apache/camel/util/UnitUtilsTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/UnitUtilsTest.java
rename to camel-util/src/test/java/org/apache/camel/util/UnitUtilsTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/backoff/BackOffTest.java b/camel-util/src/test/java/org/apache/camel/util/backoff/BackOffTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/backoff/BackOffTest.java
rename to camel-util/src/test/java/org/apache/camel/util/backoff/BackOffTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/backoff/BackOffTimerTest.java b/camel-util/src/test/java/org/apache/camel/util/backoff/BackOffTimerTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/backoff/BackOffTimerTest.java
rename to camel-util/src/test/java/org/apache/camel/util/backoff/BackOffTimerTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/concurrent/SizedScheduledExecutorServiceTest.java b/camel-util/src/test/java/org/apache/camel/util/concurrent/SizedScheduledExecutorServiceTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/concurrent/SizedScheduledExecutorServiceTest.java
rename to camel-util/src/test/java/org/apache/camel/util/concurrent/SizedScheduledExecutorServiceTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionServiceTest.java b/camel-util/src/test/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionServiceTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionServiceTest.java
rename to camel-util/src/test/java/org/apache/camel/util/concurrent/SubmitOrderedCompletionServiceTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/concurrent/SynchronousExecutorServiceTest.java b/camel-util/src/test/java/org/apache/camel/util/concurrent/SynchronousExecutorServiceTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/concurrent/SynchronousExecutorServiceTest.java
rename to camel-util/src/test/java/org/apache/camel/util/concurrent/SynchronousExecutorServiceTest.java
diff --git a/camel-core/src/test/java/org/apache/camel/util/function/PredicatesTest.java b/camel-util/src/test/java/org/apache/camel/util/function/PredicatesTest.java
similarity index 100%
rename from camel-core/src/test/java/org/apache/camel/util/function/PredicatesTest.java
rename to camel-util/src/test/java/org/apache/camel/util/function/PredicatesTest.java
diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandler.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandler.java
index 328ab7a..8eb12d5 100644
--- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandler.java
+++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandler.java
@@ -25,7 +25,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.processor.RedeliveryErrorHandler;
 import org.apache.camel.processor.RedeliveryPolicy;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 
 /**
  * This error handler does redelivering. If the transaction fails it can be
diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandlerBuilder.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandlerBuilder.java
index 0ef1cdd..4aa81a8 100644
--- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandlerBuilder.java
+++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/JtaTransactionErrorHandlerBuilder.java
@@ -24,10 +24,10 @@ import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.DefaultErrorHandlerBuilder;
 import org.apache.camel.builder.ErrorHandlerBuilder;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/DefaultFtpClientActivityListener.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/DefaultFtpClientActivityListener.java
index 7ff0fb1..4422f60 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/DefaultFtpClientActivityListener.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/DefaultFtpClientActivityListener.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.file.remote;
 
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StopWatch;
 import org.apache.camel.util.StringHelper;
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/FtpChangedExclusiveReadLockStrategy.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/FtpChangedExclusiveReadLockStrategy.java
index bc3f651..c71abab 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/FtpChangedExclusiveReadLockStrategy.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/FtpChangedExclusiveReadLockStrategy.java
@@ -25,7 +25,7 @@ import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperations;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.StopWatch;
 import org.apache.commons.net.ftp.FTPFile;
 import org.slf4j.Logger;
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/SftpChangedExclusiveReadLockStrategy.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/SftpChangedExclusiveReadLockStrategy.java
index 1c00f4a..847cf6c 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/SftpChangedExclusiveReadLockStrategy.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/strategy/SftpChangedExclusiveReadLockStrategy.java
@@ -27,7 +27,7 @@ import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileOperations;
 import org.apache.camel.component.file.remote.SftpRemoteFile;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.StopWatch;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
index 66d6b1a..fc0b504 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
+
 import javax.net.ssl.HostnameVerifier;
 
 import org.apache.camel.CamelContext;
@@ -39,15 +40,15 @@ import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.spi.RestProducerFactoryHelper;
-import org.apache.camel.util.FileUtil;
 import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.support.RestProducerFactoryHelper;
 import org.apache.camel.support.ServiceHelper;
+import org.apache.camel.support.jsse.SSLContextParameters;
+import org.apache.camel.util.FileUtil;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
-import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.http.client.CookieStore;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.config.Registry;
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index 3a8becc..9bc60c5 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -59,10 +59,10 @@ import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.spi.RestProducerFactoryHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.support.RestProducerFactoryHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.StringHelper;
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Producer.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Producer.java
index 23d71ec..f4e591f 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Producer.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Producer.java
@@ -28,8 +28,8 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangeTimedOutException;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultProducer;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.util.IOHelper;
 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
index b302907..777849d 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
@@ -38,12 +38,12 @@ import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.spi.RestProducerFactoryHelper;
+import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.support.RestProducerFactoryHelper;
+import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
-import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
 
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/handlers/HttpServerChannelHandler.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/handlers/HttpServerChannelHandler.java
index f2acb4d..1c19749 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/handlers/HttpServerChannelHandler.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/handlers/HttpServerChannelHandler.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.netty4.http.handlers;
 import java.net.URI;
 import java.nio.channels.ClosedChannelException;
 import java.nio.charset.Charset;
-import java.util.Iterator;
 import java.util.Locale;
 
 import javax.security.auth.Subject;
@@ -43,7 +42,7 @@ import org.apache.camel.component.netty4.http.HttpPrincipal;
 import org.apache.camel.component.netty4.http.NettyHttpConsumer;
 import org.apache.camel.component.netty4.http.NettyHttpSecurityConfiguration;
 import org.apache.camel.component.netty4.http.SecurityAuthenticator;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumerExceptionHandler.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumerExceptionHandler.java
index 5805a96..c70ab01 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumerExceptionHandler.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConsumerExceptionHandler.java
@@ -21,8 +21,8 @@ import java.nio.channels.ClosedChannelException;
 import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java
index e1f3425..96ccdd4 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java
@@ -43,12 +43,12 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultAsyncProducer;
-import org.apache.camel.support.SynchronizationAdapter;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.support.ExchangeHelper;
-import org.apache.camel.util.IOHelper;
 import org.apache.camel.support.ServiceHelper;
+import org.apache.camel.support.SynchronizationAdapter;
+import org.apache.camel.util.IOHelper;
 import org.apache.commons.pool.ObjectPool;
 import org.apache.commons.pool.PoolableObjectFactory;
 import org.apache.commons.pool.impl.GenericObjectPool;
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/TimeoutCorrelationManagerSupport.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/TimeoutCorrelationManagerSupport.java
index b1a683f..30d1b52 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/TimeoutCorrelationManagerSupport.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/TimeoutCorrelationManagerSupport.java
@@ -28,11 +28,11 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.TimeoutMap;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.DefaultTimeoutMap;
+import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.support.ServiceSupport;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.support.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/handlers/ServerChannelHandler.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/handlers/ServerChannelHandler.java
index 7922130..5363bd8 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/handlers/ServerChannelHandler.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/handlers/ServerChannelHandler.java
@@ -28,7 +28,7 @@ import org.apache.camel.component.netty4.NettyConstants;
 import org.apache.camel.component.netty4.NettyConsumer;
 import org.apache.camel.component.netty4.NettyHelper;
 import org.apache.camel.component.netty4.NettyPayloadHelper;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.util.IOHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
index 08aaaea..9b6f00d 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java
@@ -41,16 +41,16 @@ import org.apache.camel.StaticService;
 import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.management.event.ExchangeSendingEvent;
 import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.LogListener;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.spi.RoutePolicyFactory;
+import org.apache.camel.support.EndpointHelper;
 import org.apache.camel.support.EventNotifierSupport;
 import org.apache.camel.support.RoutePolicySupport;
+import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.support.ServiceSupport;
-import org.apache.camel.support.CamelLogger;
-import org.apache.camel.support.EndpointHelper;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.StringHelper;
 
 /**
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
index 1b2f39a..16b0156 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
@@ -32,7 +32,6 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.component.restlet.converter.RestletConverter;
-import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
 import org.apache.camel.spi.Metadata;
@@ -40,13 +39,14 @@ import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.spi.RestProducerFactoryHelper;
+import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.support.RestProducerFactoryHelper;
+import org.apache.camel.support.ServiceHelper;
+import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.URISupport;
-import org.apache.camel.support.jsse.SSLContextParameters;
 import org.restlet.Component;
 import org.restlet.Restlet;
 import org.restlet.data.ChallengeScheme;
diff --git a/components/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/LogListenerDiscoveryTest.java b/components/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/LogListenerDiscoveryTest.java
index 3c09812..5a56a33 100644
--- a/components/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/LogListenerDiscoveryTest.java
+++ b/components/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/LogListenerDiscoveryTest.java
@@ -18,8 +18,8 @@ package org.apache.camel.spring.boot;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.LogListener;
-import org.apache.camel.support.CamelLogger;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
index 430a2f0..f4acca7 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
@@ -29,7 +29,7 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.processor.RedeliveryErrorHandler;
 import org.apache.camel.processor.RedeliveryPolicy;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
-import org.apache.camel.support.CamelLogger;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.springframework.transaction.TransactionDefinition;
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
index 9e60a53..e4bab18 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
@@ -21,9 +21,9 @@ import java.util.Map;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.DefaultErrorHandlerBuilder;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
-import org.apache.camel.support.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
index 5796e94..ac0d7f6 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
@@ -35,21 +35,21 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
-import org.apache.camel.spi.RestProducerFactoryHelper;
+import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.support.RestProducerFactoryHelper;
+import org.apache.camel.support.ServiceHelper;
+import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
-import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.support.ServiceHelper;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
-import org.apache.camel.support.jsse.SSLContextParameters;
 
 /**
  * Represents the component that manages {@link UndertowEndpoint}.
diff --git a/parent/pom.xml b/parent/pom.xml
index b97e539..67174ff 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -816,6 +816,16 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-util</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-core</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
index 419bad8..8833557 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
@@ -24,7 +24,7 @@ import java.util.Map;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
-import org.apache.camel.util.CamelContextStatDump;
+import org.apache.camel.support.dump.CamelContextStatDump;
 
 import static org.apache.camel.util.ObjectHelper.isEmpty;
 
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
index 49bc4c1..0a06288 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
@@ -23,7 +23,7 @@ import java.util.Date;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
-import org.apache.camel.util.RouteStatDump;
+import org.apache.camel.support.dump.RouteStatDump;
 
 import static org.apache.camel.util.ObjectHelper.isEmpty;
 
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
index 6cafc2c..3b388d4 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
@@ -21,8 +21,8 @@ import java.io.StringReader;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
-import org.apache.camel.util.ProcessorStatDump;
-import org.apache.camel.util.RouteStatDump;
+import org.apache.camel.support.dump.ProcessorStatDump;
+import org.apache.camel.support.dump.RouteStatDump;
 
 /**
  * Command to display profile information about a Camel route.
diff --git a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
index 0485381..5196e3b 100644
--- a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
+++ b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
@@ -269,6 +269,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-apns</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -2881,6 +2886,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-util</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-velocity</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/pom.xml b/pom.xml
index ae11fdf..3b6723c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -145,6 +145,8 @@
     <module>etc</module>
     <module>bom</module>
     <module>buildingtools</module>
+    <module>camel-util</module>
+    <module>camel-api</module>
     <module>camel-core</module>
     <module>components</module>
     <module>archetypes</module>