diff --git a/docs/main/modules/working-with-camel-core/pages/index.adoc b/docs/main/modules/working-with-camel-core/pages/index.adoc index 15e423bcc7c99..c2a08aeb4b17d 100644 --- a/docs/main/modules/working-with-camel-core/pages/index.adoc +++ b/docs/main/modules/working-with-camel-core/pages/index.adoc @@ -1,69 +1,92 @@ = Working with Camel Core + +== Walk-troughs + +1. xref:manual::walk-through-an-example.adoc[Example Walk-through 1] +2. xref:manual::walk-through-another-example.adoc[Example Walk-through 2] + +== Routes + +A Camel route is where the integration flow is defined. For example, you can write a Camel route to specify how two systems can be integrated. The following 2 guides provide the fundamental knowledge about Camel routes: + +* xref:manual::routes.adoc[Routes]: the basic guide about Camel Routes. +* xref:manual::route-builder.adoc[Route Builder]: describes the base class from which you can create Routes. + +If you have the basic knowledge about _routes_ you can use the following guides to learn how to write them in different languages, handle errors, and customize them. + +* Routes (Basic + DSL) +** xref:manual::java-dsl.adoc[Java DSL]: the default language to write _routes_. +** xref:manual::dsl.adoc[DSL overview]: writing routes in other languages (XML, YAML, etc). + +* Routes (Writing) +** xref:manual::expression.adoc[Expression] +** xref:manual::predicate.adoc[Predicate] + +* Routes (Error Handling) +** xref:manual::exception-clause.adoc[Exception Clause] +** xref:manual::try-catch-finally.adoc[Try, Catch and Finally] + +* Routes (Others) +** xref:manual::oncompletion.adoc[On Completion] +** xref:manual::Endpoint-dsl.adoc[Endpoint DSL] +** xref:manual::route-template.adoc[Route Template] +** xref:manual::using-propertyplaceholder.adoc[Using Property Placeholder] + +== Other Guides + Learn about additional ways to customize your integrations. Explore alternatives to consume and produce data as well as writing and defining routes. -* xref:manual::component-dsl.adoc[Component DSL] -* xref:manual::dataformat-dsl.adoc[Data Format DSL] -* xref:manual::Endpoint-dsl.adoc[Endpoint DSL] -* xref:manual::language-dsl.adoc[Language DSL] -* xref:manual::dsl.adoc[DSL overview] -* xref:manual::java-dsl.adoc[Java DSL] -* xref:manual::camel-maven-archetypes.adoc[Camel Maven Archetypes] -* xref:manual::lifecycle.adoc[Camel Lifecycle] -* xref:manual::stream-caching.adoc[Stream caching] -* xref:manual::bean-binding.adoc[Bean Binding] -* xref:manual::bean-injection.adoc[Bean Injection] -* xref:manual::bean-integration.adoc[Bean Integration] -* xref:manual::advice-with.adoc[Advice With] -* xref:manual::camel-console.adoc[Camel Console] -* xref:manual::camelcontext.adoc[Camel Context] -* xref:manual::camelcontext-autoconfigure.adoc[Camel Context Auto Configuration] -* xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced Configuration of Camel Context] -* xref:manual::camel-maven-plugin.adoc[Camel Maven Plugin] -* xref:manual::camel-report-maven-plugin.adoc[Camel Report Maven Plugin] -* xref:manual::component.adoc[Component] -* xref:manual::consumertemplate.adoc[Consumer Template] -* xref:manual::producertemplate.adoc[Producer Template] -* xref:manual::pojo-consuming.adoc[POJO Consuming] -* xref:manual::pojo-producing.adoc[POJO Producing] -* xref:manual::error-handler.adoc[Error Handler] -* xref:manual::defaulterrorhandler.adoc[Default Error Handler] -* xref:manual::delay-interceptor.adoc[Delayer] -* xref:manual::configuring-route-startup-ordering-and-autostartup.adoc[Configuring Route Startup Ordering] -* xref:manual::endpoint.adoc[Endpoint] -* xref:manual::examples.adoc[Examples] -* xref:manual::exception-clause.adoc[Exception Clause] -* xref:manual::exchange.adoc[Exchange] -* xref:manual::exchange-pattern.adoc[Exchange Pattern] -* xref:manual::exchange-pooling.adoc[Exchange Pooling] -* xref:manual::expression.adoc[Expression] -* xref:manual::json.adoc[JSON Data Format] -* xref:manual::lambda-route-builder.adoc[Lambda Route Builder] -* xref:manual::languages.adoc[Languages] -* xref:manual::oncompletion.adoc[On Completion] -* xref:manual::parameter-binding-annotations.adoc[Parameter Binding Annotations] -* xref:manual::predicate.adoc[Predicate] -* xref:manual::processor.adoc[Processor] -* xref:manual::property-binding.adoc[Property Binding] -* xref:manual::registry.adoc[Registry] -* xref:manual::rest-dsl.adoc[Rest DSL] -* xref:manual::route-builder.adoc[Route Builder] -* xref:manual::route-configuration.adoc[Route Configuration] -* xref:manual::routes.adoc[Routes] -* xref:manual::route-template.adoc[Route Template] -* xref:manual::security.adoc[Security] -* xref:manual::service-registry.adoc[Service Registry] -* xref:manual::spring.adoc[Spring] -* xref:manual::spring-xml-extensions.adoc[Spring XML Extensions] -* xref:manual::try-catch-finally.adoc[Try, Catch and Finally] -* xref:manual::uris.adoc[URIs] -* xref:manual::using-exchange-pattern-annotations.adoc[Using Exchange Pattern Annotations] -* xref:manual::using-propertyplaceholder.adoc[Using Property Placeholder] -* xref:manual::validator.adoc[Validator] -* xref:manual::walk-through-an-example.adoc[Example Walk-through 1] -* xref:manual::walk-through-another-example.adoc[Example Walk-through 2] -* xref:manual::what-are-the-dependencies.adoc[Camel Requirements] -* xref:manual::testing.adoc[Testing] +* Components +** xref:manual::component-dsl.adoc[Component DSL] +** xref:manual::component.adoc[Component] +* Data Processing +** xref:manual::dataformat-dsl.adoc[Data Format DSL] +* Other +** xref:manual::language-dsl.adoc[Language DSL] +** xref:manual::camel-maven-archetypes.adoc[Camel Maven Archetypes] +** xref:manual::lifecycle.adoc[Camel Lifecycle] +** xref:manual::stream-caching.adoc[Stream caching] +** xref:manual::bean-binding.adoc[Bean Binding] +** xref:manual::bean-injection.adoc[Bean Injection] +** xref:manual::bean-integration.adoc[Bean Integration] +** xref:manual::advice-with.adoc[Advice With] +** xref:manual::camel-console.adoc[Camel Console] +** xref:manual::camelcontext.adoc[Camel Context] +** xref:manual::camelcontext-autoconfigure.adoc[Camel Context Auto Configuration] +** xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced Configuration of Camel Context] +** xref:manual::camel-maven-plugin.adoc[Camel Maven Plugin] +** xref:manual::camel-report-maven-plugin.adoc[Camel Report Maven Plugin] +** xref:manual::consumertemplate.adoc[Consumer Template] +** xref:manual::producertemplate.adoc[Producer Template] +** xref:manual::pojo-consuming.adoc[POJO Consuming] +** xref:manual::pojo-producing.adoc[POJO Producing] +** xref:manual::error-handler.adoc[Error Handler] +** xref:manual::defaulterrorhandler.adoc[Default Error Handler] +** xref:manual::delay-interceptor.adoc[Delayer] +** xref:manual::configuring-route-startup-ordering-and-autostartup.adoc[Configuring Route Startup Ordering] +** xref:manual::endpoint.adoc[Endpoint] +** xref:manual::examples.adoc[Examples] +** xref:manual::exchange.adoc[Exchange] +** xref:manual::exchange-pattern.adoc[Exchange Pattern] +** xref:manual::exchange-pooling.adoc[Exchange Pooling] +** xref:manual::json.adoc[JSON Data Format] +** xref:manual::languages.adoc[Languages] +** xref:manual::parameter-binding-annotations.adoc[Parameter Binding Annotations] +** xref:manual::processor.adoc[Processor] +** xref:manual::property-binding.adoc[Property Binding] +** xref:manual::registry.adoc[Registry] +** xref:manual::rest-dsl.adoc[Rest DSL] +** xref:manual::route-configuration.adoc[Route Configuration] +** xref:manual::security.adoc[Security] +** xref:manual::service-registry.adoc[Service Registry] +** xref:manual::spring.adoc[Spring] +** xref:manual::spring-xml-extensions.adoc[Spring XML Extensions] +** xref:manual::uris.adoc[URIs] +** xref:manual::using-exchange-pattern-annotations.adoc[Using Exchange Pattern Annotations] +** xref:manual::validator.adoc[Validator] +** xref:manual::what-are-the-dependencies.adoc[Camel Requirements] +** xref:manual::testing.adoc[Testing] You can find additional documentation in the xref:manual::architecture.adoc[architecture documentation] in the old user manual. diff --git a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc index 17eae45cce877..7518917ad8085 100644 --- a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc +++ b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc @@ -94,3 +94,8 @@ The first line in the above example creates an object which is an instance of an The `CamelContext.addRoutes(RouterBuilder builder)` method invokes `builder.setContext(this)` – so the `RouteBuilder` object knows which `CamelContext` object it is associated with – and then invokes `builder.configure()`. The body of `configure()` invokes methods such as `from()`, `filter()`, `choice()`, `when()`, `isEqualTo()`, `otherwise()` and `to()`. The `RouteBuilder.from(String uri)` method invokes `getEndpoint(uri)` on the `CamelContext` associated with the `RouteBuilder` object to get the specified `Endpoint` and then puts a `FromBuilder` _wrapper_ around this `Endpoint`. The `FromBuilder.filter(Predicate predicate)` method creates a `FilterProcessor` object for the `Predicate` (that is, condition) object built from the `header("foo").isEqualTo("bar")` expression. In this way, these operations incrementally build up a `Route` object (with a `RouteBuilder` wrapper around it) and add it to the `CamelContext` instance associated with the `RouteBuilder`. + + +== More Information + +See xref:lambda-route-builder.adoc[Lambda Route Builder] for creating a routing rule using the DSL, using Java lambda style. diff --git a/docs/user-manual/modules/ROOT/pages/routes.adoc b/docs/user-manual/modules/ROOT/pages/routes.adoc index 6adf101d63147..f78d902e83962 100644 --- a/docs/user-manual/modules/ROOT/pages/routes.adoc +++ b/docs/user-manual/modules/ROOT/pages/routes.adoc @@ -1,7 +1,7 @@ = Routes -A Camel _route_ is where the integration flow is defined. -For example to integrate two systems then a Camel route can be _coded_ to specify how these systems are integrated. +A Camel _route_ is where the integration flow is defined. For example, you can write a Camel route to specify how two systems can be integrated. + An example could be to take files from a FTP server and send to a ActiveMQ messaging system.