This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new c34a2d8 Polish and cleanup documentation c34a2d8 is described below commit c34a2d82f4f880c4dedd2bfa3e530b0208fdb43a Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Aug 26 10:53:58 2021 +0200 Polish and cleanup documentation --- .../camel/main/DefaultConfigurationConfigurer.java | 4 +- docs/user-manual/modules/ROOT/nav.adoc | 3 +- .../ROOT/pages/camelcontext-autoconfigure.adoc | 79 ++++++++++++++++++++++ .../modules/ROOT/pages/camelcontext.adoc | 6 +- docs/user-manual/modules/ROOT/pages/index.adoc | 1 + 5 files changed, 85 insertions(+), 8 deletions(-) diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java index d77f0c60..05487fd 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java @@ -458,12 +458,10 @@ public final class DefaultConfigurationConfigurer { if (serviceRegistries != null && !serviceRegistries.isEmpty()) { for (Map.Entry<String, ServiceRegistry> entry : serviceRegistries.entrySet()) { ServiceRegistry service = entry.getValue(); - if (service.getId() == null) { service.setGeneratedId(camelContext.getUuidGenerator().generateUuid()); } - - LOG.info("Using ServiceRegistry with id: {} and implementation: {}", service.getId(), service); + LOG.info("Adding Camel Cloud ServiceRegistry with id: {} and implementation: {}", service.getId(), service); camelContext.addService(service); } } diff --git a/docs/user-manual/modules/ROOT/nav.adoc b/docs/user-manual/modules/ROOT/nav.adoc index bbc247e..f890e2a 100644 --- a/docs/user-manual/modules/ROOT/nav.adoc +++ b/docs/user-manual/modules/ROOT/nav.adoc @@ -34,7 +34,8 @@ ** xref:bean-binding.adoc[Bean Binding] ** xref:bean-integration.adoc[Bean Integration] ** xref:browsable-endpoint.adoc[BrowsableEndpoint] -** xref:camelcontext.adoc[Context] +** xref:camelcontext.adoc[CamelContext] +** xref:camelcontext-autoconfigure.adoc[CamelContext Auto Configuration] ** xref:clustering.adoc[Clustering and Load Balancing] ** xref:component.adoc[Component] ** xref:data-format.adoc[Data Format] diff --git a/docs/user-manual/modules/ROOT/pages/camelcontext-autoconfigure.adoc b/docs/user-manual/modules/ROOT/pages/camelcontext-autoconfigure.adoc new file mode 100644 index 0000000..8d85dbd --- /dev/null +++ b/docs/user-manual/modules/ROOT/pages/camelcontext-autoconfigure.adoc @@ -0,0 +1,79 @@ +[[CamelContextAutoConfiguration-CamelContextAutoConfiguration]] += CamelContext Auto Configuration + +The xref:camelcontext.adoc[CamelContext] is autoconfigured when running Camel with either +xref:components:others:main.adoc[Camel Main], Camel Spring Boot, Camel Quarkus, or Camel K. + +== Camel Auto Configuration + +Under these runtimes then the auto configuration is performed by shared code from the `camel-main` JAR +to ensure the configuration is similar on these runtimes. + +The auto configuration is executed in several steps: + +1. Configure `CamelContext` (and more, such as components) from xref:properties-component[properties] such as `application.properties|yaml` +2. Configure optional services that has been registering in the xref:registry.adoc[Registry] + +=== Auto configuration of Properties + +This is used for configuring the standard set of options (more than 100 options) which is listed in the _Camel Main Options_ table at xref:components:others:main.adoc[Camel Main]. + +NOTE: When using Camel on Spring Boot then these options are prefixed with `camel.springboot`, and not `camel.main`. + +=== Auto configuration of Optional Services + +After configuring the standard options, then Camel will look in the xref:registry.adoc[Registry] for custom +services to be used. For example to plugin a custom `UnitOfWorkFactory`. + +The services can be anything that can be plugged into Camel (typically services that implement an SPI interface `org.apache.camel.spi`). + +The following SPI services, can only a single instance (singleton) be in the xref:registry.adoc[Registry]. + +[width="100%",cols="2m,8",options="header",] +|======================================================================= +|SPI |Description +| AsyncProcessorAwaitManager | To use a custom async processor await manager +| BacklogTracer | To use a custom backlog tracer +| ClassResolver | To use a custom class resolver (only needed if you run Camel on a special application server to deal with classloading) +| Debugger | To use a custom xref:debugger.adoc[debugger] +| EventFactory | To use a custom event notifier factory +| ExchangeFactory | To use a custom xref:exchange-pooling.adoc[exchange factory] +| ExecutorServiceManager | To use a custom xref:threading-model.adoc[thread pool manager] +| FactoryFinderResolver | To use a custom factory finder resolver (only needed if you run Camel on a special application server to deal with classloading) +| HealthCheckRegistry | To use a custom xref:health-check.adoc[health check registry] +| InflightRepository | To use a custom inflight repository +| ManagementObjectNameStrategy | To use a custom JMX MBean object naming +| ManagementStrategy | To use a custom JMX management strategy +| MessageHistoryFactory | To use a custom factory for xref:{eip-vc}:eips:message-history.adoc[message history] +| ModelJAXBContextFactory | To use a custom `JAXBContext` factory (only needed if you run Camel on a special application server to deal with JAXB classloading) +| NodeIdFactory | To use a custom factory for creating auto generated node ids +| ProcessorFactory | To use a custom factory for creating xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[EIP] processors +| PropertiesComponent | To use a custom properties component +| ReactiveExecutor | To use a custom reactive engine in the Camel routing engine +| RouteController | To use a custom xref:route-controller.adoc[route controller] +| RuntimeEndpointRegistry | To use a custom runtime xref:endpoint.adoc[endpoint] registry +| ShutdownStrategy | To use a custom xref:graceful-shutdown.adoc[shutdown strategy] +| StartupStepRecorder | To use a custom startup recorder +| ThreadPoolFactory | To use a custom xref:threading-model.adoc[thread pool factory] +| UnitOfWorkFactory | To use a custom unit of work factory +| UuidGenerator | To use a custom xref:uuidgenerator.adoc[uuid generator] +|======================================================================= + +For the following SPI services, there can be multiple (1..n) implementations in the xref:registry.adoc[Registry]. + +[width="100%",cols="2m,8",options="header",] +|======================================================================= +|SPIs |Description +| CamelClusterService | Adds all the custom xref:clustering.adoc[camel-cluster services] +| EndpointStrategy | Adds all the custom xref:endpoint.adoc[endpoint strategies] +| EventNotifier | Adds all the custom event notifiers +| GlobalSSLContextParametersSupplier | To use a custom supplier for xref:camel-configuration-utilities.adoc[JSSE (Java Security)] +| InterceptStrategy | Adds all the custom intercept strategies +| LifecycleStrategy | Adds all the custom lifecycle strategies +| LogListener | Adds all the log listeners +| ModelLifecycleStrategy | Adds all the custom model lifecycle strategies +| RoutePolicyFactory | Adds all the custom xref:route-policy.adoc[route policy factories] +| ServiceRegistry | Adds all the custom camel-cloud service registries +| ThreadPoolProfile | Adds all the xref:threading-model.adoc[thread pool profiles] +| TypeConverters | Adds all the custom xref:type-converter.adoc[type converters] +|======================================================================= diff --git a/docs/user-manual/modules/ROOT/pages/camelcontext.adoc b/docs/user-manual/modules/ROOT/pages/camelcontext.adoc index b9351d6..95b2f09 100644 --- a/docs/user-manual/modules/ROOT/pages/camelcontext.adoc +++ b/docs/user-manual/modules/ROOT/pages/camelcontext.adoc @@ -3,10 +3,8 @@ The https://www.javadoc.io/doc/org.apache.camel/camel-api/latest/org/apache/camel/CamelContext.html[CamelContext] -represents a single Camel routing rulebase. You use the CamelContext in -a similar way to the Spring -http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContext.html[ApplicationContext]. +represents a single Camel routing rulebase. See xref:lifecycle.adoc[Lifecycle] to understand the overall lifecycle -of the CamelContext. +of the `CamelContext`. diff --git a/docs/user-manual/modules/ROOT/pages/index.adoc b/docs/user-manual/modules/ROOT/pages/index.adoc index a52e77e..df0a3ad 100644 --- a/docs/user-manual/modules/ROOT/pages/index.adoc +++ b/docs/user-manual/modules/ROOT/pages/index.adoc @@ -47,6 +47,7 @@ For a deeper and better understanding of Apache Camel, an xref:faq:what-is-camel * xref:components:others:cdi.adoc[Working with Camel and CDI] * xref:spring.adoc[Working with Camel and Spring] * xref:faq:how-do-i-configure-endpoints.adoc[How do I configure endpoints?] +* xref:camelcontext-autoconfigure.adoc[Auto Configuration] * xref:bean-integration.adoc[Bean Integration] * xref:configuring-route-startup-ordering-and-autostartup.adoc[Configuring route startup ordering and autostartup] * xref:graceful-shutdown.adoc[Graceful Shutdown]