This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 3b0b778bb68 CAMEL-21040: ensure more consistency in the document
sections
3b0b778bb68 is described below
commit 3b0b778bb68fdb06323deb4e90cb39013e8d8d40
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Fri Aug 9 09:08:42 2024 +0200
CAMEL-21040: ensure more consistency in the document sections
- Also fixed typos
- Reorganized examples
- Fixed grammar issues
---
.../src/main/docs/milvus-component.adoc | 11 +-
.../src/main/docs/netty-http-component.adoc | 10 +-
.../camel-netty/src/main/docs/netty-component.adoc | 25 +--
.../src/main/docs/nitrite-component.adoc | 4 +-
.../src/main/docs/oaipmh-component.adoc | 4 +-
.../src/main/docs/olingo2-component.adoc | 6 +-
.../src/main/docs/olingo4-component.adoc | 6 +-
.../src/main/docs/opensearch-component.adoc | 53 +++---
.../src/main/docs/openstack-cinder-component.adoc | 19 +-
.../src/main/docs/openstack-glance-component.adoc | 5 +-
.../main/docs/openstack-keystone-component.adoc | 35 ++--
.../src/main/docs/openstack-neutron-component.adoc | 25 ++-
.../src/main/docs/openstack-nova-component.adoc | 21 ++-
.../src/main/docs/openstack-summary.adoc | 1 +
.../src/main/docs/openstack-swift-component.adoc | 17 +-
.../src/main/docs/opentelemetry.adoc | 10 +-
.../src/main/docs/optaplanner-component.adoc | 14 +-
.../src/main/docs/paho-mqtt5-component.adoc | 4 +-
.../camel-paho/src/main/docs/paho-component.adoc | 3 +-
.../src/main/docs/parquetAvro-dataformat.adoc | 2 +-
.../camel-pdf/src/main/docs/pdf-component.adoc | 3 +-
.../main/docs/pg-replication-slot-component.adoc | 21 ++-
.../src/main/docs/pgevent-component.adoc | 8 +-
.../src/main/docs/platform-http-component.adoc | 37 ++--
.../camel-plc4x/src/main/docs/plc4x-component.adoc | 37 ++--
.../camel-printer/src/main/docs/lpr-component.adoc | 15 +-
.../src/main/docs/protobuf-dataformat.adoc | 22 ++-
.../src/main/docs/pubnub-component.adoc | 9 +-
.../src/main/docs/python-language.adoc | 2 +-
.../src/main/docs/quartz-component.adoc | 78 ++++----
.../src/main/docs/quickfix-component.adoc | 105 ++++++-----
.../src/main/docs/reactive-streams-component.adoc | 24 +--
.../camel-ref/src/main/docs/ref-component.adoc | 3 +-
.../src/main/docs/resourceresolver-github.adoc | 2 +-
.../src/main/docs/rest-openapi-component.adoc | 72 ++++----
.../camel-rest/src/main/docs/rest-component.adoc | 12 +-
.../src/main/docs/rocketmq-component.adoc | 4 +-
.../camel-rss/src/main/docs/rss-component.adoc | 6 +-
.../camel-saga/src/main/docs/saga-component.adoc | 2 +-
.../src/main/docs/salesforce-component.adoc | 200 +++++++++++----------
.../src/main/docs/xquery-component.adoc | 26 +--
.../camel-saxon/src/main/docs/xquery-language.adoc | 12 +-
.../src/main/docs/scheduler-component.adoc | 45 ++---
.../src/main/docs/schematron-component.adoc | 8 +-
.../camel-seda/src/main/docs/seda-component.adoc | 16 +-
.../src/main/docs/servicenow-component.adoc | 2 +-
.../src/main/docs/servlet-component.adoc | 16 +-
components/camel-shiro/src/main/docs/shiro.adoc | 44 ++---
48 files changed, 583 insertions(+), 523 deletions(-)
diff --git
a/components/camel-ai/camel-milvus/src/main/docs/milvus-component.adoc
b/components/camel-ai/camel-milvus/src/main/docs/milvus-component.adoc
index 9eb48290483..e2360d455f1 100644
--- a/components/camel-ai/camel-milvus/src/main/docs/milvus-component.adoc
+++ b/components/camel-ai/camel-milvus/src/main/docs/milvus-component.adoc
@@ -184,7 +184,7 @@ from("direct:in")
The Milvus component provides a datatype transformer, from
langchain4j-embeddings to an insert/upsert object compatible with Milvus.
-As an example you could think about these routes:
+As an example, you could think about these routes:
[tabs]
====
@@ -215,11 +215,14 @@ Java::
----
====
-It's important to note that: Milvus SDK doesn't support upsert for autoID
fields. This means if you set a field as key, and you set the autoID to true,
the upsert won't be possible.
+It's important to note that Milvus SDK doesn't support upsert for autoID
fields.
+This means if you set a field as key, and you set the autoID to true, the
upsert won't be possible.
-That's the reason why, in the example we are setting the userID as keyName
with a keyValue of 3. This is particularly important when you design your
Milvus database.
+That's the reason why, in the example, we are setting the userID as keyName
with a keyValue of 3.
+This is particularly important when you design your Milvus database.
-The transformer only support insert/upsert objects, so the only operation you
can set via header are INSERT and UPSERT, otherwise the transformer will fail
with an error log.
+The transformer only supports insert/upsert objects, so the only operation you
can set via header are INSERT and UPSERT,
+otherwise the transformer will fail with an error log.
include::spring-boot:partial$starter.adoc[]
diff --git
a/components/camel-netty-http/src/main/docs/netty-http-component.adoc
b/components/camel-netty-http/src/main/docs/netty-http-component.adoc
index 2d717766d5a..14b3b8cea92 100644
--- a/components/camel-netty-http/src/main/docs/netty-http-component.adoc
+++ b/components/camel-netty-http/src/main/docs/netty-http-component.adoc
@@ -105,7 +105,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Access to Netty types
+== Usage
+
+=== Access to Netty types
This component uses the
`org.apache.camel.component.netty.http.NettyHttpMessage` as the message
@@ -119,7 +121,7 @@ accessible at all times.
io.netty.handler.codec.http.HttpRequest request =
exchange.getIn(NettyHttpMessage.class).getHttpRequest();
----------------------------------------------------------------------------------------------------------
-== Using HTTP Basic Authentication
+=== Using HTTP Basic Authentication
The Netty HTTP consumer supports HTTP basic authentication by specifying
the security realm name to use, as shown below
@@ -141,7 +143,7 @@ End user of Apache Karaf / ServiceMix has a karaf realm out
of the box,
and hence why the example above would work out of the box in these
containers.
-=== Specifying ACL on web resources
+==== Specifying ACL on web resources
The `org.apache.camel.component.netty.http.SecurityConstraint` allows
to define constraints on web resources.
@@ -180,7 +182,7 @@ no roles)
* access to /admin/* requires the admin role
* access to /guest/* requires the admin or guest role
* access to /public/* is an exclusion that means no authentication is
-needed, and is therefore public for everyone without logging in
+necessary, and is therefore public for everyone without logging in
To use this constraint, we just need to refer to the bean id as shown
below:
diff --git a/components/camel-netty/src/main/docs/netty-component.adoc
b/components/camel-netty/src/main/docs/netty-component.adoc
index 21b429e70cb..ca548096a94 100644
--- a/components/camel-netty/src/main/docs/netty-component.adoc
+++ b/components/camel-netty/src/main/docs/netty-component.adoc
@@ -76,8 +76,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
+== Usage
-== Registry-based Options
+=== Registry-based Options
Codec Handlers and SSL Keystores can be enlisted in the Registry, such as in
the Spring XML file.
The values that could be passed in are the following:
@@ -135,7 +136,7 @@ Read below about using non-shareable encoders/decoders.
====
[[Netty-NonShareableEncodersOrDecoders]]
-=== Using non-shareable encoders or decoders
+==== Using non-shareable encoders or decoders
If your encoders or decoders are not shareable (e.g., they don't have the
@Shareable class annotation), then your encoder/decoder must implement
@@ -148,16 +149,16 @@ The Netty component offers a
`org.apache.camel.component.netty.ChannelHandlerFactories` factory
class, that has a number of commonly used methods.
-== Sending Messages to/from a Netty endpoint
+=== Sending Messages to/from a Netty endpoint
-=== Netty Producer
+==== Netty Producer
In Producer mode, the component provides the ability to send payloads to
a socket endpoint using either TCP or UDP protocols (with optional SSL
support).
The producer mode supports both one-way and request-response based operations.
-=== Netty Consumer
+==== Netty Consumer
In Consumer mode, the component provides the ability to:
@@ -170,7 +171,7 @@ object-based payloads and
The consumer mode supports both one-way and request-response based
operations.
-=== Using Multiple Codecs
+==== Using Multiple Codecs
In certain cases, it may be necessary to add chains of encoders and
decoders to the netty pipeline.
@@ -287,7 +288,7 @@ XML::
====
-== Closing Channel When Complete
+=== Closing Channel When Complete
When acting as a server, you sometimes want to close the channel when,
for example, a client conversion is finished.
@@ -317,7 +318,7 @@ from("netty:tcp://0.0.0.0:8080").process(new Processor() {
[[Netty-Addingcustomchannelpipelinefactoriestogaincompletecontroloveracreatedpipeline]]
Adding custom channel pipeline factories to gain complete control over a
created pipeline
-== Custom pipeline
+=== Custom pipeline
Custom channel pipelines provide complete control to the user over the
handler/interceptor chain by inserting custom handler(s), encoder(s) &
@@ -342,7 +343,7 @@ decoders wired to the pipeline.
The example below shows how `ServerInitializerFactory` factory may be
created
-=== Using custom pipeline factory
+==== Using custom pipeline factory
[source,java]
----
@@ -387,7 +388,7 @@ context.addRoutes(new RouteBuilder() {
});
----
-== Reusing Netty boss and worker thread pools
+=== Reusing Netty boss and worker thread pools
Netty has two kinds of thread pools: boss and worker. By default, each
Netty consumer and producer has their private thread pools. If you want
@@ -445,7 +446,7 @@ And if we have another route, we can refer to the shared
worker pool:
And so forth.
-== Multiplexing concurrent messages over a single connection with request/reply
+=== Multiplexing concurrent messages over a single connection with
request/reply
When using Netty for request/reply messaging via the netty producer, then by
default, each
message is sent via a non-shared connection (pooled). This ensures that
replies are
@@ -472,7 +473,7 @@ This provides support for timeout and other complexities
you otherwise would nee
You can find an example with the Apache Camel source code in the examples
directory
under the `camel-example-netty-custom-correlation` directory.
-== Native transport
+=== Native transport
To enable native transport, you need to add additional dependency for epoll or
kqueue depending on your OS and CPU arch.
To make it easier add the following extension to your `build` section of
`pom.xml`:
diff --git a/components/camel-nitrite/src/main/docs/nitrite-component.adoc
b/components/camel-nitrite/src/main/docs/nitrite-component.adoc
index 92e7a86427e..b7246af3887 100644
--- a/components/camel-nitrite/src/main/docs/nitrite-component.adoc
+++ b/components/camel-nitrite/src/main/docs/nitrite-component.adoc
@@ -48,7 +48,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Producer operations
+== Usage
+
+=== Producer operations
The following Operations are available to specify as
`NitriteConstants.OPERATION` when producing to Nitrite.
[width="100%",cols="2m,2m,1m,5",options="header"]
|===
diff --git a/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
b/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
index 7d0ddb35939..5a6af0b4581 100644
--- a/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
+++ b/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
@@ -60,7 +60,7 @@ include::partial$component-endpoint-headers.adoc[]
The OAI-PMH component supports both consumer and producer endpoints.
-== Producer Example
+=== Producer Example
The following is a basic example of how to send a request to an OAI-PMH Server.
@@ -73,7 +73,7 @@
from("direct:start").to("oaipmh:baseUrlRepository/oai/request");
The result is a set of pages in XML format with all the records of the
consulted repository.
-== Consumer Example
+=== Consumer Example
The following is a basic example of how to receive all messages from an
OAI-PMH Server.
In Java DSL
diff --git
a/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
b/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
index 84234635c5b..22cd88cf337 100644
---
a/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
+++
b/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
@@ -71,7 +71,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Endpoint HTTP Headers
+== Usage
+
+=== Endpoint HTTP Headers
The component level configuration property **httpHeaders** supplies static
HTTP header information.
However, some systems require dynamic header information to be passed to and
received from the endpoint.
@@ -81,7 +83,7 @@ be passed to the endpoint in the
*`CamelOlingo2.endpointHttpHeaders`* property a
response headers will be returned in a *`CamelOlingo2.responseHttpHeaders`*
property.
Both properties are of the type `java.util.Map<String, String>`.
-== OData Resource Type Mapping
+=== OData Resource Type Mapping
The result of *read* endpoint and data type of *data* option depends on
the OData resource being queried, created or modified.
diff --git
a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
index 42649edb6c1..b5b17d3b6e0 100644
---
a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
+++
b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
@@ -65,7 +65,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Endpoint HTTP Headers
+== Usage
+
+=== Endpoint HTTP Headers
The component level configuration property **httpHeaders** supplies static
HTTP header information.
However, some systems require dynamic header information to be passed to and
received from the endpoint.
@@ -75,7 +77,7 @@ be passed to the endpoint in the
*`CamelOlingo4.endpointHttpHeaders`* property a
response headers will be returned in a *`CamelOlingo4.responseHttpHeaders`*
property.
Both properties are of the type *`java.util.Map<String, String>`*.
-== OData Resource Type Mapping
+=== OData Resource Type Mapping
The result of *read* endpoint and data type of *data* option depends on
the OData resource being queried, created or modified.
diff --git
a/components/camel-opensearch/src/main/docs/opensearch-component.adoc
b/components/camel-opensearch/src/main/docs/opensearch-component.adoc
index 1517bd5a09e..4497c6742e9 100644
--- a/components/camel-opensearch/src/main/docs/opensearch-component.adoc
+++ b/components/camel-opensearch/src/main/docs/opensearch-component.adoc
@@ -54,9 +54,11 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Message Operations
+== Usage
-The following https://opensearch.org/ operations are currently supported.
+=== Message Operations
+
+The following https://opensearch.org/[OpenSearch] operations are currently
supported.
Set an endpoint URI option or exchange header with a key of "operation"
and a value set to one of the following. Some operations also require
other parameters or the message body to be set.
@@ -65,41 +67,41 @@ other parameters or the message body to be set.
|===
|operation |message body |description
-|Index |*Map*, *String*, *byte[]*, *Reader*, *InputStream* or
*IndexRequest.Builder* content to index |Adds content to an index and returns
the content's indexId in the body.
+|`Index` |`Map`, `String`, `byte[]`, `Reader`, `InputStream` or
`IndexRequest.Builder` content to index |Adds content to an index and returns
the content's indexId in the body.
You can set the name of the target index by setting the message header with
the key "indexName".
You can set the indexId by setting the message header with
the key "indexId".
-|GetById |*String* or *GetRequest.Builder* index id of content to retrieve
|Retrieves the document corresponding to the given index id and returns a
GetResponse object in the body.
+|`GetById` |`String` or `GetRequest.Builder` index id of content to retrieve
|Retrieves the document corresponding to the given index id and returns a
GetResponse object in the body.
You can set the name of the target index by setting the message header with
the key "indexName".
You can set the type of document by setting the message header with
the key "documentClass".
-|Delete |*String* or *DeleteRequest.Builder* index id of content to delete
|Deletes the specified indexName and returns a Result object in the body.
+|`Delete` |`String` or `DeleteRequest.Builder` index id of content to delete
|Deletes the specified indexName and returns a Result object in the body.
You can set the name of the target index by setting the message header with
the key "indexName".
-|DeleteIndex |*String* or *DeleteIndexRequest.Builder* index name of the index
to delete |Deletes the specified indexName and returns a status code in the
body.
+|`DeleteIndex` |`String` or `DeleteIndexRequest.Builder` index name of the
index to delete |Deletes the specified indexName and returns a status code in
the body.
You can set the name of the target index by setting the message header with
the key "indexName".
-|Bulk |*Iterable* or *BulkRequest.Builder* of any type that is already
accepted (DeleteOperation.Builder for delete operation, UpdateOperation.Builder
for update operation, CreateOperation.Builder for create operation, byte[],
InputStream, String, Reader, Map or any document type for index operation) |
Adds/Updates/Deletes content from/to an index and returns a
List<BulkResponseItem> object in the body
+|`Bulk` `Iterable` or `BulkRequest.Builder` of any type that is already
accepted (DeleteOperation.Builder for delete operation, UpdateOperation.Builder
for update operation, CreateOperation.Builder for create operation, byte[],
InputStream, String, Reader, Map or any document type for index operation) |
Adds/Updates/Deletes content from/to an index and returns a
List<BulkResponseItem> object in the body
You can set the name of the target index by setting the message header with
the key "indexName".
-|Search |*Map*, *String* or *SearchRequest.Builder* |Search the content with
the map of query string.
+|`Search` |`Map`, `String` or `SearchRequest.Builder` |Search the content with
the map of query string.
You can set the name of the target index by setting the message header with
the key "indexName".
You can set the number of hits to return by setting the message header with
the key "size".
You can set the starting document offset by setting the message header with
the key "from".
-|MultiSearch |*MsearchRequest.Builder* |Multiple search in one
+|`MultiSearch` |`MsearchRequest.Builder` |Multiple search in one
-|MultiGet |*Iterable<String>* or *MgetRequest.Builder* the id of the document
to retrieve |Multiple get in one
+|`MultiGet` |`Iterable<String>` or `MgetRequest.Builder` the id of the
document to retrieve |Multiple get in one
You can set the name of the target index by setting the message header with
the key "indexName".
-|Exists |None |Checks whether the index exists or not and returns a Boolean
flag in the body.
+|`Exists` |None |Checks whether the index exists or not and returns a Boolean
flag in the body.
You must set the name of the target index by setting the message header with
the key "indexName".
-|Update |*byte[]*, *InputStream*, *String*, *Reader*, *Map* or any document
type content to update |Updates content to an index and returns the content's
indexId in the body.
+|`Update` |`byte[]`, `InputStream`, `String`, `Reader`, `Map` or any document
type content to update |Updates content to an index and returns the content's
indexId in the body.
You can set the name of the target index by setting the message header with
the key "indexName".
You can set the indexId by setting the message header with
the key "indexId".
@@ -108,7 +110,7 @@ the key "indexId".
|===
-== Configure the component and enable basic authentication
+=== Configure the component and enable basic authentication
To use the OpenSearch component, it has to be configured with a minimum
configuration.
[source,java]
@@ -131,7 +133,16 @@ opensearchComponent.setPassword("secure!!");
camelContext.addComponent("opensearch", opensearchComponent);
----
-== Index Example
+
+=== Document type
+
+For all the search operations, it is possible to indicate the type of document
to retrieve to get the result already unmarshalled with the expected type.
+
+The document type can be set using the header "documentClass" or via the uri
parameter of the same name.
+
+== Examples
+
+=== Index Example
Below is a simple INDEX example
@@ -149,7 +160,7 @@ from("direct:index")
</route>
----
-*For this operation, you'll need to specify an indexId header.*
+NOTE: For this operation, you'll need to specify an indexId header.
A client would simply need to pass a body message containing a Map to
the route. The result body contains the indexId created.
@@ -161,7 +172,7 @@ map.put("content", "test");
String indexId = template.requestBody("direct:index", map, String.class);
----
-== Search Example
+=== Search Example
Searching on specific field(s) and value use the Operation ´Search´.
Pass in the query JSON String or the Map
@@ -240,7 +251,7 @@ from("direct:search")
.end();
----
-== MultiSearch Example
+=== MultiSearch Example
MultiSearching on specific field(s) and value uses the Operation `MultiSearch`.
Pass in the MultiSearchRequest instance
@@ -269,10 +280,4 @@ MsearchRequest.Builder builder = new
MsearchRequest.Builder().index("twitter").s
new RequestItem.Builder().header(new
MultisearchHeader.Builder().build())
.body(new MultisearchBody.Builder().query(b -> b.matchAll(x ->
x)).build()).build());
List<MultiSearchResponseItem<?>> response =
template.requestBody("direct:multiSearch", builder, List.class);
-----
-
-== Document type
-
-For all the search operations, it is possible to indicate the type of document
to retrieve to get the result already unmarshalled with the expected type.
-
-The document type can be set using the header "documentClass" or via the uri
parameter of the same name.
+----
\ No newline at end of file
diff --git
a/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
b/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
index c186c0b255b..29459f53393 100644
--- a/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
@@ -19,10 +19,9 @@ The Openstack Cinder component allows messages to be sent to
an OpenStack block
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
@@ -62,9 +61,9 @@ include::partial$component-endpoint-headers.adoc[]
You can use the following settings for each subsystem:
-== volumes
+=== Volumes
-=== Operations you can perform with the Volume producer
+==== Operations you can perform with the Volume producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -82,11 +81,11 @@ You can use the following settings for each subsystem:
|`delete` | Delete the volume.
|=========================================================================
-If you need more precise volume settings, you can create a new object of the
type *org.openstack4j.model.storage.block.Volume* and send in the message body.
+If you need more precise volume settings, you can create a new object of the
type `org.openstack4j.model.storage.block.Volume` and send in the message body.
-== snapshots
+=== Snapshots
-=== Operations you can perform with the Snapshot producer
+==== Operations you can perform with the Snapshot producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -103,8 +102,6 @@ If you need more precise volume settings, you can create a
new object of the typ
|=========================================================================
-If you need more precise server settings, you can create a new object of the
type *org.openstack4j.model.storage.block.VolumeSnapshot* and send in the
message body.
-
-
+If you need more precise server settings, you can create a new object of the
type `org.openstack4j.model.storage.block.VolumeSnapshot` and send in the
message body.
include::spring-boot:partial$starter.adoc[]
diff --git
a/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
b/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
index d0ee157c747..e8019499496 100644
--- a/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
@@ -19,10 +19,9 @@ The Openstack Glance component allows messages to be sent to
an OpenStack image
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
diff --git
a/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
b/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
index 00f1e2068fb..374dd54c05f 100644
--- a/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
@@ -21,10 +21,9 @@ NOTE: The openstack-keystone component supports only
Identity API v3
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
@@ -65,9 +64,9 @@ include::partial$component-endpoint-headers.adoc[]
You can use the following settings for each subsystem:
-== domains
+=== Domains
-=== Operations you can perform with the Domain producer
+==== Operations you can perform with the Domain producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -83,11 +82,11 @@ You can use the following settings for each subsystem:
|`delete` | Delete the domain.
|=========================================================================
-If you need more precise domain settings, you can create a new object of the
type *org.openstack4j.model.identity.v3.Domain* and send in the message body.
+If you need more precise domain settings, you can create a new object of the
type `org.openstack4j.model.identity.v3.Domain` and send in the message body.
-== groups
+=== Groups
-=== Operations you can perform with the Group producer
+==== Operations you can perform with the Group producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -109,11 +108,11 @@ If you need more precise domain settings, you can create
a new object of the typ
|`removeUserFromGroup` | Remove the user from the group.
|=========================================================================
-If you need more precise group settings, you can create a new object of the
type *org.openstack4j.model.identity.v3.Group* and send in the message body.
+If you need more precise group settings, you can create a new object of the
type `org.openstack4j.model.identity.v3.Group` and send in the message body.
-== projects
+=== Projects
-=== Operations you can perform with the Project producer
+==== Operations you can perform with the Project producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -129,11 +128,11 @@ If you need more precise group settings, you can create a
new object of the type
|`delete` | Delete the project.
|=========================================================================
-If you need more precise project settings, you can create a new object of the
type *org.openstack4j.model.identity.v3.Project* and send in the message body.
+If you need more precise project settings, you can create a new object of the
type `org.openstack4j.model.identity.v3.Project` and send in the message body.
-== regions
+=== Regions
-=== Operations you can perform with the Region producer
+==== Operations you can perform with the Region producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -149,11 +148,11 @@ If you need more precise project settings, you can create
a new object of the ty
|`delete` | Delete the region.
|=========================================================================
-If you need more precise region settings, you can create a new object of the
type *org.openstack4j.model.identity.v3.Region* and send in the message body.
+If you need more precise region settings, you can create a new object of the
type `org.openstack4j.model.identity.v3.Region` and send in the message body.
-== users
+=== Users
-=== Operations you can perform with the User producer
+==== Operations you can perform with the User producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -169,7 +168,7 @@ If you need more precise region settings, you can create a
new object of the typ
|`delete` | Delete the user.
|=========================================================================
-If you need more precise user settings, you can create a new object of the
type *org.openstack4j.model.identity.v3.User* and send in the message body.
+If you need more precise user settings, you can create a new object of the
type `org.openstack4j.model.identity.v3.User` and send in the message body.
diff --git
a/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
b/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
index 95cb74801ec..e0dbc4d444a 100644
--- a/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
@@ -19,10 +19,9 @@ The Openstack Neutron component allows messages to be sent
to an OpenStack netwo
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
@@ -62,9 +61,9 @@ include::partial$component-endpoint-headers.adoc[]
You can use the following settings for each subsystem:
-== networks
+=== Networks
-=== Operations you can perform with the Network producer
+==== Operations you can perform with the Network producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -78,11 +77,11 @@ You can use the following settings for each subsystem:
|`delete` | Delete the network.
|=========================================================================
-If you need more precise network settings, you can create a new object of the
type *org.openstack4j.model.network.Network* and send in the message body.
+If you need more precise network settings, you can create a new object of the
type `org.openstack4j.model.network.Network` and send in the message body.
-== subnets
+=== Subnets
-=== Operations you can perform with the Subnet producer
+==== Operations you can perform with the Subnet producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -98,11 +97,11 @@ If you need more precise network settings, you can create a
new object of the ty
|`action` | Perform an action on the subnet.
|=========================================================================
-If you need more precise subnet settings, you can create a new object of the
type *org.openstack4j.model.network.Subnet* and send in the message body.
+If you need more precise subnet settings, you can create a new object of the
type `org.openstack4j.model.network.Subnet` and send in the message body.
-== ports
+=== Ports
-=== Operations you can perform with the Port producer
+==== Operations you can perform with the Port producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -119,9 +118,9 @@ If you need more precise subnet settings, you can create a
new object of the typ
|=========================================================================
-== routers
+=== Routers
-=== Operations you can perform with the Router producer
+==== Operations you can perform with the Router producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
diff --git
a/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
b/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
index 17a61d5d66e..18d2817cb38 100644
--- a/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
@@ -19,10 +19,9 @@ The Openstack Nova component allows messages to be sent to
an OpenStack compute
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
@@ -62,9 +61,9 @@ include::partial$component-endpoint-headers.adoc[]
You can use the following settings for each subsystem:
-== flavors
+=== Flavors
-=== Operations you can perform with the Flavor producer
+==== Operations you can perform with the Flavor producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -78,11 +77,11 @@ You can use the following settings for each subsystem:
|`delete` | Delete the flavor.
|=========================================================================
-If you need more precise flavor settings, you can create a new object of the
type *org.openstack4j.model.compute.Flavor* and send in the message body.
+If you need more precise flavor settings, you can create a new object of the
type `org.openstack4j.model.compute.Flavor` and send in the message body.
-== servers
+=== Servers
-=== Operations you can perform with the Server producer
+==== Operations you can perform with the Server producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -100,11 +99,11 @@ If you need more precise flavor settings, you can create a
new object of the typ
|`action` | Perform an action on the server.
|=========================================================================
-If you need more precise server settings, you can create a new object of the
type *org.openstack4j.model.compute.ServerCreate* and send in the message body.
+If you need more precise server settings, you can create a new object of the
type `org.openstack4j.model.compute.ServerCreate` and send in the message body.
-== keypairs
+=== Key/Pairs
-=== Operations you can perform with the Keypair producer
+==== Operations you can perform with the Keypair producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
diff --git a/components/camel-openstack/src/main/docs/openstack-summary.adoc
b/components/camel-openstack/src/main/docs/openstack-summary.adoc
index 9dae8b31745..62dd189c35e 100644
--- a/components/camel-openstack/src/main/docs/openstack-summary.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-summary.adoc
@@ -20,6 +20,7 @@
indexDescriptionList::[attributes='group={doctitle}',descriptionformat=descripti
Maven users will need to add the following dependency to their `pom.xml`
for this component:
+
[source,xml]
------------------------------------------------------------
<dependency>
diff --git
a/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
b/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
index 77475457dd7..4f267aa6f9f 100644
--- a/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
@@ -19,10 +19,9 @@ The Openstack Swift component allows messages to be sent to
an OpenStack object
== Dependencies
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
+Maven users will need to add the following dependency to their `pom.xml`.
+.pom.xml
[source,xml]
---------------------------------------
<dependency>
@@ -61,9 +60,9 @@ include::partial$component-endpoint-headers.adoc[]
You can use the following settings for each subsystem:
-== containers
+=== Containers
-=== Operations you can perform with the Container producer
+==== Operations you can perform with the Container producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
@@ -85,12 +84,12 @@ You can use the following settings for each subsystem:
|`deleteMetadata` | Delete metadata.
|=========================================================================
-If you need more precise container settings, you can create a new object of
the type
*org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions* (in
case of create or update operation)
-or *org.openstack4j.model.storage.object.options.ContainerListOptions* for
listing containers and send in the message body.
+If you need more precise container settings, you can create a new object of
the type
`org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions` (in
case of create or update operation)
+or `org.openstack4j.model.storage.object.options.ContainerListOptions` for
listing containers and send in the message body.
-== objects
+=== Objects
-=== Operations you can perform with the Object producer
+==== Operations you can perform with the Object producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
diff --git a/components/camel-opentelemetry/src/main/docs/opentelemetry.adoc
b/components/camel-opentelemetry/src/main/docs/opentelemetry.adoc
index 078e69672c6..b40fbcfcb7d 100644
--- a/components/camel-opentelemetry/src/main/docs/opentelemetry.adoc
+++ b/components/camel-opentelemetry/src/main/docs/opentelemetry.adoc
@@ -24,13 +24,13 @@ The configuration properties for the OpenTelemetry tracer
are:
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Option |Default |Description
-|instrumentationName| camel | A name uniquely identifying the instrumentation
scope, such as the instrumentation library, package, or fully qualified class
name. Must not be null.
-|excludePatterns | | Sets exclude pattern(s) that will disable tracing for
Camel
+|`instrumentationName`| camel | A name uniquely identifying the
instrumentation scope, such as the instrumentation library, package, or fully
qualified class name. Must not be null.
+|`excludePatterns` | | Sets exclude pattern(s) that will disable tracing for
Camel
messages that matches the pattern. The content is a Set<String> where the key
is a pattern. The pattern
uses the rules from Intercept.
-|encoding | false | Sets whether the header keys need to be encoded (connector
specific) or not. The value is a boolean.
+|`encoding` | `false` | Sets whether the header keys need to be encoded
(connector specific) or not. The value is a boolean.
Dashes are required for instances to be encoded for JMS property keys.
-|traceProcessors | false | Setting this to true will create new OpenTelemetry
Spans for each Camel Processors.
+|`traceProcessors` | `false` | Setting this to true will create new
OpenTelemetry Spans for each Camel Processors.
Use the excludePattern property to filter out Processors
|=======================================================================
@@ -84,7 +84,7 @@ a `OpenTelemetryTracer` bean has been defined by the
application.
Download the
https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/[latest
version].
-This package includes the instrumentation agent as well as instrumentation's
for all supported libraries and all available data exporters.
+This package includes the instrumentation agent as well as instrumentation for
all supported libraries and all available data exporters.
The package provides a completely automatic, out-of-the-box experience.
Enable the instrumentation agent using the `-javaagent` flag to the JVM.
diff --git
a/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
b/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
index 9211e7f98eb..57fe87efda8 100644
--- a/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
+++ b/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
@@ -14,12 +14,12 @@
*{component-header}*
-The Optaplanner component solves the planning problem contained in a
-message with http://www.optaplanner.org/[OptaPlanner]. +
- For example, feed it an unsolved Vehicle Routing problem and it solves
+The http://www.optaplanner.org/[OptaPlanner] component solves the planning
problem contained in a
+message with http://www.optaplanner.org/[OptaPlanner].
+For example, feed it an unsolved Vehicle Routing problem and it solves
it.
-The component supports consumer listening for SloverManager results and
+The component supports consumer listening for `SolverManager` results and
producer for processing Solution and ProblemChange.
Maven users will need to add the following dependency to their `pom.xml`
@@ -62,8 +62,8 @@ include::partial$component-endpoint-headers.adoc[]
== Message Body
-Camel takes the planning problem for the _IN_ body, solves it and returns
-it on the _OUT_ body. The _IN_ body object supports the following use cases:
+Camel takes the planning problem for the `IN` body, solves it and returns
+it on the _OUT_ body. The `IN` body object supports the following use cases:
* If the body contains the `PlanningSolution` annotation, then it will be
solved using the
solver identified by solverId and either synchronously or asynchronously.
@@ -75,7 +75,7 @@ the best result from the solver identified by `solverId`.
=== Examples
-Solve a planning problem on the ActiveMQ queue with OptaPlanner, passing the
SolverManager:
+Solve a planning problem on the ActiveMQ queue with OptaPlanner, passing the
`SolverManager`:
[source,java]
--------------------------------------------------
diff --git
a/components/camel-paho-mqtt5/src/main/docs/paho-mqtt5-component.adoc
b/components/camel-paho-mqtt5/src/main/docs/paho-mqtt5-component.adoc
index a1a7d0b148d..90f535b606e 100644
--- a/components/camel-paho-mqtt5/src/main/docs/paho-mqtt5-component.adoc
+++ b/components/camel-paho-mqtt5/src/main/docs/paho-mqtt5-component.adoc
@@ -58,7 +58,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Default payload type
+== Usage
+
+=== Default payload type
By default, the Camel Paho component operates on the binary payloads
extracted out of (or put into) the MQTT message:
diff --git a/components/camel-paho/src/main/docs/paho-component.adoc
b/components/camel-paho/src/main/docs/paho-component.adoc
index 19ff10be895..79df6ae2bfa 100644
--- a/components/camel-paho/src/main/docs/paho-component.adoc
+++ b/components/camel-paho/src/main/docs/paho-component.adoc
@@ -57,8 +57,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
+== Usage
-== Default payload type
+=== Default payload type
By default, the Camel Paho component operates on the binary payloads
extracted out of (or put into) the MQTT message:
diff --git
a/components/camel-parquet-avro/src/main/docs/parquetAvro-dataformat.adoc
b/components/camel-parquet-avro/src/main/docs/parquetAvro-dataformat.adoc
index 236b6aa1dad..5ce01a20a4f 100644
--- a/components/camel-parquet-avro/src/main/docs/parquetAvro-dataformat.adoc
+++ b/components/camel-parquet-avro/src/main/docs/parquetAvro-dataformat.adoc
@@ -34,7 +34,7 @@
from("direct:unmarshal").unmarshal(parquet).to("mock:unmarshal");
== Marshal
-Marshalling is the reverse process of unmarshalling, so when you have your
GenericRecord or POJO and marshal it, you will get the parquet-formatted output
stream on your producer endpoint.
+Marshalling is the reverse process of unmarshalling, so when you have your
`GenericRecord` or POJO and marshal it, you will get the parquet-formatted
output stream on your producer endpoint.
[source,java]
-----------------------------------------------------------------------
diff --git a/components/camel-pdf/src/main/docs/pdf-component.adoc
b/components/camel-pdf/src/main/docs/pdf-component.adoc
index 631d10ecf5c..1f7228732cf 100644
--- a/components/camel-pdf/src/main/docs/pdf-component.adoc
+++ b/components/camel-pdf/src/main/docs/pdf-component.adoc
@@ -59,8 +59,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
+== Usage
-== Type converter
+=== Type converter
Since Camel 4.8, the component is capable of doing simple document
conversions. For instance,
suppose you are receiving a PDF byte as a byte array:
diff --git
a/components/camel-pg-replication-slot/src/main/docs/pg-replication-slot-component.adoc
b/components/camel-pg-replication-slot/src/main/docs/pg-replication-slot-component.adoc
index bf34ce7d181..e52652b6018 100644
---
a/components/camel-pg-replication-slot/src/main/docs/pg-replication-slot-component.adoc
+++
b/components/camel-pg-replication-slot/src/main/docs/pg-replication-slot-component.adoc
@@ -30,7 +30,7 @@ for this component:
</dependency>
------------------------------------------------------------
-URI format
+== URI format
The pg-replication-slot component uses the following two styles of endpoint URI
notation:
@@ -52,15 +52,9 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
-== Examples
-
-[source,java]
-----
-from("pg-replication-slot://localhost:5432/finance/sync_slot:test_decoding?user={{username}}&password={{password}}&slotOptions.skip-empty-xacts=true&slotOptions.include-xids=false")
- .to("mock:result");
-----
+== Usage
-== Tips
+=== Tips
PostgreSQL can generate a huge number of empty transactions on certain
operations (e.g. `VACUUM`). These transactions can congest
your route. Using `greedy=true` query parameter can help with this problem. It
will help your route filter out empty transactions quickly
@@ -70,6 +64,15 @@ The order of the messages is guaranteed, but the same
message might come more th
this component to sync data from PostgreSQL to another database, make sure
your operations are idempotent (e.g., use `UPSERT`
instead of `INSERT`, etc). This will make sure repeated messages won't affect
your system negatively.
+== Examples
+
+.Example route
+[source,java]
+----
+from("pg-replication-slot://localhost:5432/finance/sync_slot:test_decoding?user={{username}}&password={{password}}&slotOptions.skip-empty-xacts=true&slotOptions.include-xids=false")
+ .to("mock:result");
+----
+
include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-pgevent/src/main/docs/pgevent-component.adoc
b/components/camel-pgevent/src/main/docs/pgevent-component.adoc
index 754912e26e5..e84825484cb 100644
--- a/components/camel-pgevent/src/main/docs/pgevent-component.adoc
+++ b/components/camel-pgevent/src/main/docs/pgevent-component.adoc
@@ -31,7 +31,7 @@ for this component:
</dependency>
------------------------------------------------------------
-URI format
+== URI format
The pgevent component uses the following two styles of endpoint URI
notation:
@@ -59,9 +59,11 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Common problems
+== Usage
-=== Unable to connect to PostgreSQL database using DataSource
+=== Common problems
+
+==== Unable to connect to PostgreSQL database using DataSource
Using the driver provided by PostgreSQL itself (`jdbc:postgresql:/...`) when
using a DataSource to connect to a PostgreSQL database does not work.
Please use the pgjdbc-ng driver (`jdbc:pgsql:/...`) instead.
diff --git
a/components/camel-platform-http/src/main/docs/platform-http-component.adoc
b/components/camel-platform-http/src/main/docs/platform-http-component.adoc
index 6d67c31b7bb..c06878de3ca 100644
--- a/components/camel-platform-http/src/main/docs/platform-http-component.adoc
+++ b/components/camel-platform-http/src/main/docs/platform-http-component.adoc
@@ -29,7 +29,22 @@ Maven users will need to add the following dependency to
their `pom.xml` for thi
</dependency>
----
-== Platform HTTP Provider
+// component-configure options: START
+
+// component-configure options: END
+
+// component options: START
+include::partial$component-configure-options.adoc[]
+include::partial$component-endpoint-options.adoc[]
+// component options: END
+
+// endpoint options: START
+
+// endpoint options: END
+
+== Usage
+
+=== Platform HTTP Provider
To use Platform HTTP, a provider (engine) is required to be available on the
classpath.
The purpose is to have drivers for different runtimes such as Quarkus, or
Spring Boot.
@@ -63,24 +78,10 @@ Spring Boot::
----
====
-
-// component-configure options: START
-
-// component-configure options: END
-
-// component options: START
-include::partial$component-configure-options.adoc[]
-include::partial$component-endpoint-options.adoc[]
-// component options: END
-
-// endpoint options: START
-
-// endpoint options: END
-
-include::spring-boot:partial$starter.adoc[]
-
-== Implementing a reverse proxy
+=== Implementing a reverse proxy
Platform HTTP component can act as a reverse proxy. In that case, some headers
are populated from the absolute URL received on the request line of the HTTP
request. Those headers are specific to the underlining platform.
At this moment, this feature is only supported for Quarkus implemented in
`camel-platform-http-vertx` component.
+
+include::spring-boot:partial$starter.adoc[]
\ No newline at end of file
diff --git a/components/camel-plc4x/src/main/docs/plc4x-component.adoc
b/components/camel-plc4x/src/main/docs/plc4x-component.adoc
index c2de3853995..46250830f26 100644
--- a/components/camel-plc4x/src/main/docs/plc4x-component.adoc
+++ b/components/camel-plc4x/src/main/docs/plc4x-component.adoc
@@ -16,20 +16,6 @@
The Camel Component for PLC4X allows you to create routes using the PLC4X API
to read from a Programmable Logic Controllers (PLC) device or write to it.
-It supports various protocols by adding the driver dependencies:
-
-* Allen Bradley ETH
-* Automation Device Specification (ADS)
-* CANopen
-* EtherNet/IP
-* Firmata
-* KNXnet/IP
-* Modbus (TCP/UDP/Serial)
-* Open Platform Communications Unified Architecture (OPC UA)
-* Step7 (S7)
-
-The list of supported protocols is growing in https://plc4x.apache.org[PLC4X].
There are good chance that they will work out of the box just by adding the
driver dependency. You can check
https://plc4x.apache.org/users/protocols/index.html[here].
-
== URI Format
------------------------------
@@ -76,8 +62,25 @@ Maven users will need to add the following dependency to
their `pom.xml`.
where `$\{camel-version}` must be replaced by the actual version of Camel.
+== Usage
+
+The Camel PLC4X component supports various protocols by adding the driver
dependencies:
+
+* Allen Bradley ETH
+* Automation Device Specification (ADS)
+* CANopen
+* EtherNet/IP
+* Firmata
+* KNXnet/IP
+* Modbus (TCP/UDP/Serial)
+* Open Platform Communications Unified Architecture (OPC UA)
+* Step7 (S7)
+
+The list of supported protocols is growing in https://plc4x.apache.org[PLC4X].
+There are good chances that they will work out of the box just by adding the
driver dependency.
+You can check https://plc4x.apache.org/users/protocols/index.html[here].
-== Consumer
+=== Consumer
The consumer supports one-time reading or Triggered Reading. To read from
the PLC, use a `Map<String,String>` containing the Alias and Queries for the
Data you want (tags).
@@ -87,11 +90,11 @@ You can configure the _tags_ using `tag.key=value` in the
URI, and you can repea
The Body created by the Consumer will be a `Map<String,Object>` containing the
Aliases and their associated value
read from the PLC.
-== Polling Consumer
+=== Polling Consumer
The polling consumer supports consecutive reading. The input and output are
the same as for the regular consumer.
-== Producer
+=== Producer
To write data to the PLC, we also use a `Map`. The difference with the
Producer is that the `Value` of the Map has also to
be a `Map`. Also, this `Map` has to be set into the `Body` of the `Message`
diff --git a/components/camel-printer/src/main/docs/lpr-component.adoc
b/components/camel-printer/src/main/docs/lpr-component.adoc
index b21986d8332..971902f8173 100644
--- a/components/camel-printer/src/main/docs/lpr-component.adoc
+++ b/components/camel-printer/src/main/docs/lpr-component.adoc
@@ -64,9 +64,11 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Sending Messages to a Printer
+== Usage
-=== Printer Producer
+=== Sending Messages to a Printer
+
+==== Printer Producer
Sending data to the printer is very straightforward and involves
creating a producer endpoint that can be sent message exchanges on in
@@ -76,8 +78,9 @@ route.
Usage samples.
-=== Example 1: Printing text-based payloads on a Default printer using letter
stationary and one-sided mode
+=== Printing text-based payloads
+.Printing text-based payloads on a Default printer using letter stationary and
one-sided mode
[source,java]
-----------------------------------------------
RouteBuilder builder = new RouteBuilder() {
@@ -91,8 +94,9 @@ RouteBuilder builder = new RouteBuilder() {
}};
-----------------------------------------------
-=== Example 2: Printing GIF-based payloads on a remote printer using A4
stationary and one-sided mode
+=== Printing GIF-based payloads
+.Printing GIF-based payloads on a remote printer using A4 stationary and
one-sided mode
[source,java]
--------------------------------------------------
RouteBuilder builder = new RouteBuilder() {
@@ -105,8 +109,9 @@ RouteBuilder builder = new RouteBuilder() {
}};
--------------------------------------------------
-=== Example 3: Printing JPEG-based payloads on a remote printer using Japanese
Postcard stationary and one-sided mode
+=== Printing JPEG-based payloads
+.Printing JPEG-based payloads on a remote printer using Japanese Postcard
stationary and one-sided mode
[source,java]
--------------------------------------------------
RouteBuilder builder = new RouteBuilder() {
diff --git a/components/camel-protobuf/src/main/docs/protobuf-dataformat.adoc
b/components/camel-protobuf/src/main/docs/protobuf-dataformat.adoc
index 863da26be3f..2b7a9120c38 100644
--- a/components/camel-protobuf/src/main/docs/protobuf-dataformat.adoc
+++ b/components/camel-protobuf/src/main/docs/protobuf-dataformat.adoc
@@ -39,7 +39,7 @@ include::partial$dataformat-options.adoc[]
== Content type format
It's possible to parse JSON message to convert it to the protobuf format and
unparse it back using native util converter.
-To use this option, set contentTypeFormat value to 'json' or call protobuf
with second parameter.
+To use this option, set contentTypeFormat value to `json` or call protobuf
with second parameter.
If the default instance is not specified, always use the native protobuf
format.
The sample code shows below:
@@ -52,14 +52,19 @@ from("direct:marshal")
--------------------------------------------------------------------------------------------------
== Input data type
+
This dataformat supports marshaling input data either as protobuf `Message`
type or `Map` data type.
In case of input data as `Map` type, first it will try to retrieve the data as
`Map` using built-in type converters, if it fails to
do so, it will fall back to retrieve it as proto `Message`.
== Output data type
+
As mentioned above, you can define the content type format to choose from JSON
or native to serialize/deserialize data from/to.
In addition, you can also obtain the data as `Map` and let this component do
the heavy lifting to parse the
-data from proto `Message` to `Map`, you will need to set the
`contentTypeFormat` to *native* and explicitly define the data type `Map` when
you obtain body of the exchange, e.g.:
`exchange.getMessage().getBody(Map.class)`.
+data from proto `Message` to `Map`,
+you will need to set the `contentTypeFormat` to `native`
+and explicitly define the data type `Map` when you get body of the exchange.
+For instance: `exchange.getMessage().getBody(Map.class)`.
== Protobuf overview
@@ -109,11 +114,11 @@ message AddressBook {
== Generating Java classes
The Protobuf SDK provides a compiler which will generate the Java
-classes for the format we defined in our .proto file.
+classes for the format we defined in our `.proto` file.
If your operating system is supported by
https://www.xolstice.org/protobuf-maven-plugin[Protobuf Java code generator
maven plugin],
you can automate protobuf Java code generating by adding the following
configurations to your `pom.xml`:
-Insert operating system and CPU architecture detection extension inside
**<build>** tag of the project pom.xml or set ${os.detected.classifier}
parameter manually
+Insert operating system and CPU architecture detection extension inside
`<build>` tag of the project `pom.xml` or set `${os.detected.classifier}`
parameter manually
[source,xml]
-------------------------------------------------------------------------
<extensions>
@@ -124,7 +129,7 @@ Insert operating system and CPU architecture detection
extension inside **<build
</extension>
</extensions>
-------------------------------------------------------------------------
-Insert gRPC and protobuf Java code generator plugin **<plugins>** tag of the
project pom.xml
+Insert gRPC and protobuf Java code generator plugin **<plugins>** tag of the
project `pom.xml`
[source,xml]
-------------------------------------------------------------------------
<plugin>
@@ -174,7 +179,7 @@ DataFormat marshal and unmarshal API like this.
from("direct:back").unmarshal(format).to("mock:reverse");
-----------------------------------------------------------------------------------
-Or use the DSL protobuf() passing the unmarshal default instance or
+Or use the DSL `protobuf()` passing the unmarshal default instance or
default instance class name like this. However, if you have input data as
`Map` type, you will need to **specify** the ProtobufDataFormat otherwise it
will throw an error.
[source,java]
@@ -193,7 +198,7 @@ default instance class name like this. However, if you have
input data as `Map`
The following example shows how to use Protobuf to unmarshal using Spring
configuring the protobuf data type
-[source,java]
+[source,xml]
----------------------------------------------------------------------------------------------------------
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
@@ -208,9 +213,10 @@ configuring the protobuf data type
== Dependencies
-To use Protobuf in your Camel routes you need to add the dependency on
+To use Protobuf in your Camel routes, you need to add the dependency on
*camel-protobuf*, which implements this data format.
+.Example pom.xml for `camel-protobuf`
[source,xml]
-----------------------------------------
<dependency>
diff --git a/components/camel-pubnub/src/main/docs/pubnub-component.adoc
b/components/camel-pubnub/src/main/docs/pubnub-component.adoc
index 3844f1fb407..ecbfcdaf83b 100644
--- a/components/camel-pubnub/src/main/docs/pubnub-component.adoc
+++ b/components/camel-pubnub/src/main/docs/pubnub-component.adoc
@@ -63,7 +63,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Message body
+== Usage
+
+=== Message body
The message body can contain any JSON serializable data, including Objects,
Arrays, Integers, and Strings.
Message data should not contain special Java V4 classes or functions as these
will not serialize.
@@ -157,9 +159,10 @@ from("direct:control")
----
There are a couple of examples in the test directory that show some of the
PubNub features.
-They require a PubNub account, from where you can obtain a publish- and
subscribe key.
+They require a PubNub account, from where you can obtain a publish/subscribe
key.
-The example PubNubSensorExample already contains a subscribe key provided by
PubNub, so this is ready to run without an account.
+The example PubNubSensorExample already contains a subscription key provided
by PubNub,
+so this is ready to run without an account.
The example illustrates the PubNub component subscribing to an infinite stream
of sensor data.
diff --git a/components/camel-python/src/main/docs/python-language.adoc
b/components/camel-python/src/main/docs/python-language.adoc
index efa93a748c8..db7d88713bc 100644
--- a/components/camel-python/src/main/docs/python-language.adoc
+++ b/components/camel-python/src/main/docs/python-language.adoc
@@ -50,7 +50,7 @@ To use Python in your Camel routes, you need to add the
dependency on
*camel-python* which implements the Python language.
If you use Maven, you could add the following to your `pom.xml`,
-substituting the version number for the latest & greatest release.
+substituting the version number for the latest release.
[source,xml]
-------------------------------------
diff --git a/components/camel-quartz/src/main/docs/quartz-component.adoc
b/components/camel-quartz/src/main/docs/quartz-component.adoc
index 1adc0d6f233..10eb9dac6f8 100644
--- a/components/camel-quartz/src/main/docs/quartz-component.adoc
+++ b/components/camel-quartz/src/main/docs/quartz-component.adoc
@@ -15,9 +15,7 @@
*{component-header}*
The Quartz component provides a scheduled delivery of messages using
-the http://www.quartz-scheduler.org/[Quartz Scheduler 2.x]. +
- Each endpoint represents a different timer (in Quartz terms, a Trigger
-and JobDetail).
+the http://www.quartz-scheduler.org/[Quartz Scheduler 2.x].
Maven users will need to add the following dependency to their `pom.xml`
for this component:
@@ -61,7 +59,11 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
-== Configuring quartz.properties file
+== Usage
+
+Each endpoint represents a different timer (in Quartz terms, a `Trigger` and
``JobDetail`).
+
+=== Configuring quartz.properties file
By default, Quartz will look for a `quartz.properties` file in the
`org/quartz` directory of the classpath. If you are using WAR
@@ -89,16 +91,16 @@ To do this, you can configure this in Spring XML as follows
</bean>
----
-== Enabling Quartz scheduler in JMX
+=== Enabling Quartz scheduler in JMX
-You need to configure the quartz scheduler properties to enable JMX. +
- That is typically setting the option
+You need to configure the quartz scheduler properties to enable JMX.
+That is typically setting the option
`"org.quartz.scheduler.jmx.export"` to a `true` value in the
configuration file.
-This option is set to true by default, unless explicitly disabled.
+This option is set to `true` by default, unless explicitly disabled.
-== Clustering
+=== Clustering
If you use Quartz in clustered mode, e.g., the `JobStore` is clustered.
Then the xref:quartz-component.adoc[Quartz] component will *not* pause/remove
@@ -108,7 +110,7 @@ to keep running on the other nodes in the cluster.
NOTE: When running in clustered node, no checking is done to ensure
unique job name/group for endpoints.
-== Message Headers
+=== Message Headers
Camel adds the getters from the Quartz Execution Context as header
values. The following headers are added: +
@@ -120,7 +122,7 @@ values. The following headers are added: +
The `fireTime` header contains the `java.util.Date` of when the exchange
was fired.
-== Using Cron Triggers
+=== Using Cron Triggers
Quartz supports
http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron-like
@@ -153,7 +155,7 @@ valid URI syntax:
|`+` | _Space_
|===
-== Specifying time zone
+=== Specifying time zone
The Quartz Scheduler allows you to configure time zone per trigger. For
example, to use a time zone of your country, then you can do as follows:
@@ -164,7 +166,7 @@
quartz://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.timeZone=Europ
The timeZone value is the values accepted by `java.util.TimeZone`.
-== Specifying start date
+=== Specifying start date
The Quartz Scheduler allows you to configure start date per trigger. You can
provide the start date
in the date format yyyy-MM-dd'T'HH:mm:ssz.
@@ -173,10 +175,10 @@ in the date format yyyy-MM-dd'T'HH:mm:ssz.
quartz://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.startAt=2023-11-22T14:32:36UTC
----
-== Specifying end date
+=== Specifying end date
The Quartz Scheduler allows you to configure end date per trigger. You can
provide the end date
-in the date format yyyy-MM-dd'T'HH:mm:ssz.
+in the date format `yyyy-MM-dd'T'HH:mm:ssz`.
----
quartz://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.endAt=2023-11-22T14:32:36UTC
@@ -186,7 +188,7 @@ Note: Start and end dates may be affected by time drifts
and unpredictable behav
daylight-saving time changes.
Exercise caution, especially in environments where precise timing is critical.
-== Configuring misfire instructions
+=== Configuring misfire instructions
The quartz scheduler can be configured with a misfire instruction
to handle misfire situations for the trigger.
@@ -206,16 +208,16 @@
quartz://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.misfireInstruction=2
The simple and cron triggers have the following misfire instructions
representative:
-=== SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW = 1 (default)
+==== SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW = 1 (default)
Instructs the Scheduler that upon a mis-fire
situation, the SimpleTrigger wants to be fired now by Scheduler.
This instruction should typically only be used for
'one-shot' (non-repeating) Triggers. If it is used on a trigger with a
-repeat count > 0, then it is equivalent to the instruction
`MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT`.
+repeat count greater than 0, then it is equivalent to the instruction
`MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT`.
-===
SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2
+====
SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2
Instructs the Scheduler that upon a mis-fire
situation, the SimpleTrigger wants to be
@@ -229,7 +231,7 @@ the start-time and repeat-count that it was originally
setup with.
This is only an issue if you for some reason wanted to be able to tell what
the original values were at some later time.
-===
SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3
+====
SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3
Instructs the Scheduler that upon a mis-fire
situation, the SimpleTrigger wants to be
@@ -251,7 +253,7 @@ This instruction could cause the Trigger
to go to the 'COMPLETE' state after firing `now`, if all the
repeat-fire-times where missed.
-=== SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4
+==== SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4
Instructs the Scheduler that upon a mis-fire
situation, the SimpleTrigger wants to be
@@ -262,7 +264,7 @@ repeat count set to what it would be, if it had not missed
any firings.
WARNING: This instruction could cause the Trigger
to go directly to the 'COMPLETE' state if all fire-times where missed.
-=== SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT = 5
+==== SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT = 5
Instructs the Scheduler that upon a mis-fire
situation, the SimpleTrigger wants to be
@@ -273,12 +275,12 @@ WARNING: This instruction could cause the Trigger
to go directly to the 'COMPLETE' state if the end-time of the trigger
has arrived.
-=== CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW = 1 (default)
+==== CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW = 1 (default)
Instructs the Scheduler that upon a mis-fire
situation, the CronTrigger wants to be fired now by Scheduler.
-=== CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING = 2
+==== CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING = 2
Instructs the Scheduler that upon a mis-fire
situation, the CronTrigger wants to have its
@@ -287,16 +289,16 @@ current time (taking into account any associated Calendar.
However, it does not want to be fired now.
-== Using QuartzScheduledPollConsumerScheduler
+=== Using QuartzScheduledPollConsumerScheduler
The xref:quartz-component.adoc[Quartz] component provides a
-Polling Consumer scheduler which allows to
-use cron based scheduling for xref:eips:polling-consumer.adoc[Polling
+Polling Consumer scheduler which allows
+using cron based scheduling for xref:eips:polling-consumer.adoc[Polling
Consumers] such as the File and FTP
consumers.
-For example, to use a cron based expression to poll for files every second
-second, then a Camel route can be defined simply as:
+For example, to use a cron based expression to poll for files every second,
+then a Camel route can be defined simply as:
[source,java]
----
@@ -328,7 +330,7 @@ and used.
|`timeZone` |`Default` |`TimeZone` |The time zone to use for the CRON trigger.
|===
-*Important:* Remember configuring these options from the endpoint
+IMPORTANT: Remember that configuring these options from the endpoint
URIs must be prefixed with `scheduler.`.
For example, to configure the trigger id and group:
@@ -347,25 +349,15 @@ use the following as well:
.to("bean:process");
----
-== Cron Component Support
+=== Cron Component Support
The Quartz component can be used as implementation of the Camel Cron component.
-
-Maven users will need to add the following additional dependency to their
`pom.xml`:
-
-[source,xml]
-------------------------------------------------------------
-<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-cron</artifactId>
- <version>x.x.x</version>
- <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
+== Example
Users can then use the cron component instead of the quartz component, as in
the following route:
+.Example route for the cron component
[source,java]
----
from("cron://name?schedule=0+0/5+12-18+?+*+MON-FRI")
diff --git a/components/camel-quickfix/src/main/docs/quickfix-component.adoc
b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
index adad7c00a34..9e608db2428 100644
--- a/components/camel-quickfix/src/main/docs/quickfix-component.adoc
+++ b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
@@ -39,24 +39,28 @@ for this component:
quickfix:configFile[?sessionID=sessionID&lazyCreateEngine=true|false]
----
-The *configFile* is the name of the QuickFIX/J configuration to use for
+The `configFile` is the name of the QuickFIX/J configuration to use for
the FIX engine (located as a resource found in your classpath). The
-optional *sessionID* identifies a specific FIX session. The format of
+optional `sessionID` identifies a specific FIX session. The format of
the sessionID is:
----
(BeginString):(SenderCompID)[/(SenderSubID)[/(SenderLocationID)]]->(TargetCompID)[/(TargetSubID)[/(TargetLocationID)]]
----
-The optional *lazyCreateEngine* parameter allows
-creating QuickFIX/J engine on demand. Value *true* means the engine is
+The optional `lazyCreateEngine` parameter allows
+creating QuickFIX/J engine on demand:
+
+* The value `true` means the engine is
started when the first message is sent or there's consumer configured in
-route definition. When **false** value is used, the engine is started at
-the endpoint creation. When this parameter is missing, the value of
-component's property *lazyCreateEngines* is being used.
+route definition.
+* When the value `false` is used, the engine is started at
+the endpoint creation.
-Example URIs:
+When this parameter is missing, the value of
+component's property `lazyCreateEngines` is being used.
+.Example URIs:
----
quickfix:config.cfg
@@ -67,11 +71,11 @@
quickfix:config.cfg?sessionID=FIX.4.2:MyTradingCompany->SomeExchange&lazyCreateE
== Endpoints
-FIX sessions are endpoints for the *quickfix* component. An endpoint URI
+FIX sessions are endpoints for the quickfix component. An endpoint URI
may specify a single session or all sessions managed by a specific
QuickFIX/J engine. Typical applications will use only one FIX engine, but
advanced users may create multiple FIX engines by referencing different
-configuration files in *quickfix* component endpoint URIs.
+configuration files in quickfix component endpoint URIs.
When a consumer does not include a session ID in the endpoint URI, it
will receive exchanges for all sessions managed by the FIX engine
@@ -98,28 +102,29 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
+== Usage
+
The DataDictionary header is useful if string messages are being
received and need to be parsed in a route. QuickFIX/J requires a data
dictionary to parse certain types of messages (with repeating groups,
for example). By injecting a DataDictionary header in the route after
receiving a message string, the FIX engine can properly parse the data.
-== QuickFIX/J Configuration Extensions
+=== QuickFIX/J Configuration Extensions
When using QuickFIX/J directly, one typically writes code to create
instances of logging adapters, message stores, and communication
-connectors. The *quickfix* component will automatically create instances
+connectors. The quickfix component will automatically create instances
of these classes based on information in the configuration file. It also
provides defaults for many of the commonly required settings and adds
additional capabilities (like the ability to activate JMX support).
-The following sections describe how the *quickfix* component processes
+The following sections describe how the quickfix component processes
the QuickFIX/J configuration. For comprehensive information about
QuickFIX/J configuration, see the
-http://www.quickfixj.org/quickfixj/usermanual/usage/configuration.html[QFJ
-user manual].
+http://www.quickfixj.org/quickfixj/usermanual/usage/configuration.html[user
manual].
-=== Communication Connectors
+==== Communication Connectors
When the component detects an initiator or acceptor session setting in
the QuickFIX/J configuration file, it will automatically create the
@@ -148,7 +153,7 @@ and must be placed in the settings default section.
`ThreadedSocketAcceptor`
|=======================================================================
-=== Logging
+==== Logging
The QuickFIX/J logger implementation can be specified by including the
following settings in the default section of the configuration file. The
@@ -175,7 +180,7 @@ will cause this log to be used.
|`JdbcDriver` |Use a `JdbcLog`
|=======================================================================
-=== Message Store
+==== Message Store
The QuickFIX/J message store implementation can be specified by
including the following settings in the default section of the
@@ -194,14 +199,14 @@ QuickFIX/J settings file.
|`SleepycatDatabaseDir` |Use a `SleepcatStore`
|=============================================
-=== Message Factory
+==== Message Factory
A message factory is used to construct domain objects from raw FIX
messages. The default message factory is `DefaultMessageFactory`.
However, advanced applications may require a custom message factory.
This can be set on the QuickFIX/J component.
-=== JMX
+==== JMX
[width="100%",cols="10%,90%",options="header",]
|============================================
@@ -209,7 +214,7 @@ This can be set on the QuickFIX/J component.
|`UseJmx` |if `Y`, then enable QuickFIX/J JMX
|============================================
-=== Other Defaults
+==== Other Defaults
The component provides some default settings for what are normally
required settings in QuickFIX/J configuration files. `SessionStartTime`
@@ -217,7 +222,7 @@ and `SessionEndTime` default to "00:00:00", meaning the
session will not
be automatically started and stopped. The `HeartBtInt` (heartbeat
interval) defaults to 30 seconds.
-=== Minimal Initiator Configuration Example
+==== Minimal Initiator Configuration Example
----
[SESSION]
@@ -227,7 +232,7 @@ SenderCompID=YOUR_SENDER
TargetCompID=YOUR_TARGET
----
-== Using the InOut Message Exchange Pattern
+=== Using the InOut Message Exchange Pattern
Although the FIX protocol is event-driven and asynchronous, there are
specific pairs of messages
@@ -237,9 +242,9 @@ be a single request message and single reply message to the
request.
Examples include an
OrderStatusRequest message and UserRequest.
-=== Implementing InOut Exchanges for Consumers
+==== Implementing InOut Exchanges for Consumers
-Add "exchangePattern=InOut" to the QuickFIX/J enpoint URI. The
+Add `exchangePattern=InOut` to the QuickFIX/J enpoint URI. The
`MessageOrderStatusService` in
the example below is a bean with a synchronous service method. The
method returns the response
@@ -253,7 +258,7 @@ to the requestor session.
.bean(new MarketOrderStatusService());
----
-=== Implementing InOut Exchanges for Producers
+==== Implementing InOut Exchanges for Producers
For producers, sending a message will block until a reply is received or
a timeout occurs. There
@@ -266,16 +271,16 @@ using `Exchange` properties.
[width="100%",cols="60%,10%,20%,10%",options="header",]
|=======================================================================
|Description |Key String |Key Constant |Default
-|Correlation Criteria |"CorrelationCriteria"
-|QuickfixjProducer.CORRELATION_CRITERIA_KEY |None
+|Correlation Criteria |`CorrelationCriteria`
+|`QuickfixjProducer.CORRELATION_CRITERIA_KEY` |None
-|Correlation Timeout in Milliseconds |"CorrelationTimeout"
-|QuickfixjProducer.CORRELATION_TIMEOUT_KEY |1000
+|Correlation Timeout in Milliseconds |`CorrelationTimeout`
+|`QuickfixjProducer.CORRELATION_TIMEOUT_KEY` |1000
|=======================================================================
The correlation criteria is defined with a `MessagePredicate` object.
The following example will treat
-a FIX ExecutionReport from the specified session where the transaction
+a FIX `ExecutionReport` from the specified session where the transaction
type is STATUS and the Order ID
matches our request. The session ID should be for the __requestor__, the
sender and target CompID fields
@@ -289,20 +294,7 @@
exchange.setProperty(QuickfixjProducer.CORRELATION_CRITERIA_KEY,
.withField(OrderID.FIELD, request.getString(OrderID.FIELD)));
----
-=== Example
-
-The source code contains an example called `RequestReplyExample` that
-demonstrates the InOut exchanges
-for a consumer and producer. This example creates a simple HTTP server
-endpoint that accepts order
-status requests. The HTTP request is converted to a FIX
-OrderStatusRequestMessage, is augmented with a
-correlation criteria, and is then routed to a quickfix endpoint. The
-response is then converted to a
-JSON-formatted string and sent back to the HTTP server endpoint to be
-provided as the web response.
-
-== Spring Configuration
+=== Spring Configuration
The QuickFIX/J component includes a Spring `FactoryBean` for configuring
the session settings within a Spring context. A type converter for
@@ -373,7 +365,7 @@ settings for both sessions.
include::{examplesdir}/components/camel-quickfix/src/test/resources/org/apache/camel/component/quickfixj/QuickfixjSpringTest-context.xml[tags=e1]
----
-== Exception handling
+=== Exception handling
QuickFIX/J behavior can be modified if certain exceptions are thrown
during processing of a message. If a `RejectLogon` exception is thrown
@@ -384,13 +376,13 @@ Normally, QuickFIX/J handles the logon process
automatically. However,
sometimes an outgoing logon message must be modified to include
credentials required by a FIX counterparty. If the FIX logon message
body is modified when sending a logon message
-(EventCategory=`AdminMessageSent` the modified message will be sent to
+(`EventCategory=AdminMessageSent` the modified message will be sent to
the counterparty. It is important that the outgoing logon message is
being processed __synchronously__. If it is processed asynchronously (on
another thread), the FIX engine will immediately send the unmodified
outgoing message when its callback method returns.
-== FIX Sequence Number Management
+=== FIX Sequence Number Management
If an application exception is thrown during _synchronous_ exchange
processing, this will cause QuickFIX/J to not increment incoming FIX
@@ -415,7 +407,9 @@ sending messages.
See the FIX protocol specifications and the QuickFIX/J documentation for
more details about FIX sequence number management.
-== Route Examples
+== Examples
+
+=== Route Examples
Several examples are included in the QuickFIX/J component source code
(test subdirectories). One of these examples implements a trival trade
@@ -451,6 +445,19 @@
from("quickfix:examples/inprocess.qf.cfg?sessionID=FIX.4.2:TRADER->MARKET").
bean(new MyTradeExecutionProcessor());
----
+=== Additional Examples
+
+The source code contains an example called `RequestReplyExample` that
+demonstrates the InOut exchanges
+for a consumer and producer. This example creates a simple HTTP server
+endpoint that accepts order
+status requests. The HTTP request is converted to a FIX
+`OrderStatusRequestMessage`, is augmented with a
+correlation criteria, and is then routed to a quickfix endpoint. The
+response is then converted to a
+JSON-formatted string and sent back to the HTTP server endpoint to be
+provided as the web response.
+
include::spring-boot:partial$starter.adoc[]
diff --git
a/components/camel-reactive-streams/src/main/docs/reactive-streams-component.adoc
b/components/camel-reactive-streams/src/main/docs/reactive-streams-component.adoc
index 49f032bbced..184bf39d91f 100644
---
a/components/camel-reactive-streams/src/main/docs/reactive-streams-component.adoc
+++
b/components/camel-reactive-streams/src/main/docs/reactive-streams-component.adoc
@@ -76,7 +76,7 @@ The library is aimed to support all the communication modes
needed by an applica
* *Request* a transformation to a Camel route (In-Out towards Camel)
* *Process* data flowing from a Camel route using a reactive processing step
(In-Out from Camel)
-== Getting data from Camel
+=== Getting data from Camel
To subscribe to data flowing from a Camel route, exchanges should be
redirected to
a named stream, like in the following snippet:
@@ -116,7 +116,7 @@ Flowable.fromPublisher(numbers)
The example prints all numbers generated by Camel into `System.out`.
-=== Getting data from Camel using the direct API
+==== Getting data from Camel using the direct API
For short Camel routes and for users that prefer defining the whole processing
flow
using functional constructs of the reactive framework (without using the Camel
DSL at all),
@@ -135,7 +135,7 @@ Flowable.fromPublisher(files)
.subscribe();
---------------------------------------------------------
-== Sending data to Camel
+=== Sending data to Camel
When an external library needs to push events into a Camel route, the Reactive
Streams
endpoint must be set as consumer.
@@ -168,7 +168,7 @@ Flowable.interval(1, TimeUnit.SECONDS)
String items are generated every second by RxJava in the example, and they are
pushed into the Camel route defined above.
-=== Sending data to Camel using the direct API
+==== Sending data to Camel using the direct API
Also in this case, the direct API can be used to obtain a Camel subscriber
from an endpoint URI.
@@ -181,7 +181,7 @@ Flowable.just("hello", "world")
.subscribe(camel.subscriber("seda:queue", String.class));
---------------------------------------------------------
-== Request a transformation to Camel
+=== Request a transformation to Camel
Routes defined in some Camel DSL can be used within a reactive stream
framework to perform a
specific transformation.
@@ -209,7 +209,7 @@ from("reactive-streams:readAndMarshal")
.marshal() // ... other details
---------------------------------------------------------
-=== Request a transformation to Camel using the direct API
+==== Request a transformation to Camel using the direct API
An alternative approach consists of using the URI endpoints directly in the
reactive flow:
@@ -237,7 +237,7 @@ from("direct:process")
---------------------------------------------------------
-== Process Camel data into the reactive framework
+=== Process Camel data into the reactive framework
While a reactive streams _Publisher_ allows exchanging data in a
unidirectional way,
Camel routes often use an in-out exchange pattern (e.g., to define REST
endpoints and, in general,
@@ -285,8 +285,8 @@ camel.process("rest:get:orders", exchange ->
See Camel examples (*camel-example-reactive-streams*) for details.
-== Advanced Topics
-=== Controlling Backpressure (producer side)
+=== Advanced Topics
+==== Controlling Backpressure (producer side)
When routing Camel exchanges to an external subscriber, backpressure is
handled by an internal buffer that caches exchanges
before delivering them.
@@ -301,7 +301,7 @@ from("jms:queue")
---------------------------------------------------------
If the JMS queue contains a high number of messages and the Subscriber
associated with the `flow` stream is too slow,
-messages are dequeued from JMS and appended to the buffer, possibly causing a
"out of memory" error.
+messages are dequeued from JMS and appended to the buffer, possibly causing an
_"out of memory"_ error.
To avoid such problems, a `ThrottlingInflightRoutePolicy` can be set in the
route.
[source,java]
@@ -336,9 +336,9 @@ from("direct:thermostat")
When the `LATEST` backpressure strategy is used, the publisher keeps only the
last exchange received from the route, while older data is discarded (other
options are available).
-=== Controlling Backpressure (consumer side)
+==== Controlling Backpressure (consumer side)
-When Camel consumes items from a reactive-streams publisher, the maximum
number of inflight exchanges can be set as endpoint option.
+When Camel consumes items from a reactive-streams publisher, the maximum
number of in-flight exchanges can be set as an endpoint option.
The subscriber associated with the consumer interacts with the publisher to
keep the number of messages in the route lower than the threshold.
diff --git a/components/camel-ref/src/main/docs/ref-component.adoc
b/components/camel-ref/src/main/docs/ref-component.adoc
index 461f80874ac..826929da57a 100644
--- a/components/camel-ref/src/main/docs/ref-component.adoc
+++ b/components/camel-ref/src/main/docs/ref-component.adoc
@@ -42,8 +42,9 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
+== Usage
-== Runtime lookup
+=== Runtime lookup
This component can be used when you need dynamic discovery of endpoints
in the Registry where you can compute the URI at
diff --git
a/components/camel-resourceresolver-github/src/main/docs/resourceresolver-github.adoc
b/components/camel-resourceresolver-github/src/main/docs/resourceresolver-github.adoc
index cac836d07db..21b5a1e24b5 100644
---
a/components/camel-resourceresolver-github/src/main/docs/resourceresolver-github.adoc
+++
b/components/camel-resourceresolver-github/src/main/docs/resourceresolver-github.adoc
@@ -41,7 +41,7 @@
github:apache:camel-kamelets:kamelets/aws-ddb-streams-source.kamelet.yaml
IMPORTANT: This resource resolver can potentially load any resources from
GitHub that are in public repositories.
-It's not recommended for production usage, but is great for development and
demo purposes.
+It's not recommended for production usage but is great for development and
demo purposes.
== Resolving from gist
diff --git
a/components/camel-rest-openapi/src/main/docs/rest-openapi-component.adoc
b/components/camel-rest-openapi/src/main/docs/rest-openapi-component.adoc
index ff7c6a97451..7f1032d1c56 100644
--- a/components/camel-rest-openapi/src/main/docs/rest-openapi-component.adoc
+++ b/components/camel-rest-openapi/src/main/docs/rest-openapi-component.adoc
@@ -62,9 +62,9 @@ failing that OpenApi's own resource loading support.
This component does not act as an HTTP client.
It delegates that to another component mentioned above.
The lookup mechanism searches for a single component that
-implements the _RestProducerFactory_ interface and
+implements the `RestProducerFactory` interface and
uses that.
-If the CLASSPATH contains more than one, then the property
+If the `_CLASSPATH_` contains more than one, then the property
`componentName` should be set to indicate which component to delegate
to.
@@ -86,9 +86,9 @@ and implement the required _RestProducerFactory_ interface --
as do the
components listed at the top.
If you do not specify the _componentName_ at either component or
-endpoint level, CLASSPATH is searched for a suitable delegate. There
-should be only one component present on the CLASSPATH that implements
-the _RestProducerFactory_ interface for this to work.
+endpoint level, `_CLASSPATH_` is searched for a suitable delegate. There
+should be only one component present on the `_CLASSPATH_` that implements
+the `RestProducerFactory` interface for this to work.
This component's endpoint URI is lenient which means that in addition
to message headers you can specify REST operation's parameters as
@@ -110,23 +110,51 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
+== Usage
-== Example: PetStore
+== Request validation
+
+API requests can be validated against the configured OpenAPI specification
before they are sent by setting the `requestValidationEnabled` option to `true`.
+Validation is provided by the
https://bitbucket.org/atlassian/swagger-request-validator/src/master/[swagger-request-validator].
+
+The validator checks for the following conditions:
+
+* request body - Checks if the request body is required and whether there is
any body on the Camel Exchange.
+
+* valid json - Checks if the content-type is `application/json` that the
message body can be parsed as valid JSon.
+
+* content-type - Validates whether the `Content-Type` header for the request
is valid for the API operation.
+The value is taken from the `Content-Type` Camel message exchange header.
+
+* request parameters - Validates whether an HTTP header required by the API
operation is present. The header is
+expected to be present among the Camel message exchange headers.
+
+* query parameters - Validates whether an HTTP query parameter required by the
API operation is present. The query parameter is
+expected to be present among the Camel message exchange headers.
+
+If any of the validation checks fail, then a `RestOpenApiValidationException`
is thrown. The exception object
+has a `getValidationErrors` method that returns the error messages from the
validator.
+
+
+== Examples
+
+=== PetStore
Checkout the `rest-openapi-simple` example project in
-the https://github.com/apache/camel-spring-boot-examples repository.
+the
https://github.com/apache/camel-spring-boot-examples[camel-spring-boot-examples]
repository.
For example, if you wanted to use the
https://petstore3.swagger.io/api/v3/[_PetStore_] provided REST API simply
reference the specification URI and desired operation id from the
OpenApi specification or download the specification and store it as
-`openapi.json` (in the root) of CLASSPATH that way it will be
+`openapi.json` (in the root) of `_CLASSPATH_` that way it will be
automatically used. Let's use the xref:http-component.adoc[HTTP]
component to perform all the requests and Camel's excellent support for
Spring Boot.
Here are our dependencies defined in Maven POM file:
+.Example pom.xml
[source,xml]
----
<dependency>
@@ -140,7 +168,7 @@ Here are our dependencies defined in Maven POM file:
</dependency>
----
-Start by defining a _RestOpenApiComponent_ bean:
+Start by defining a `RestOpenApiComponent` bean:
[source,java]
----
@@ -166,7 +194,7 @@ manner (using `application.properties`).
In this example, there is no need to explicitly associate the `petstore`
component with the `HttpComponent` as Camel will use the first class on
-the CLASSPATH that implements `RestProducerFactory`. However, if a different
+the `_CLASSPATH_` that implements `RestProducerFactory`. However, if a
different
component is required, then calling `petstore.setComponentName("http")`
would use the named component from the Camel registry.
@@ -184,27 +212,3 @@ String getPetJsonById(int petId) {
return template.requestBodyAndHeader("petstore:getPetById", null, "petId",
petId);
}
----
-
-== Request validation
-
-API requests can be validated against the configured OpenAPI specification
before they are sent by setting the `requestValidationEnabled` option to `true`.
-Validation is provided by the
https://bitbucket.org/atlassian/swagger-request-validator/src/master/[swagger-request-validator].
-
-The validator checks for the following conditions:
-
-* request body - Checks if the request body is required and whether there is
any body on the Camel Exchange.
-
-* valid json - Checks if the content-type is `application/json` that the
message body can be parsed as valid JSon.
-
-* content-type - Validates whether the `Content-Type` header for the request
is valid for the API operation.
-The value is taken from the `Content-Type` Camel message exchange header.
-
-* request parameters - Validates whether an HTTP header required by the API
operation is present. The header is
-expected to be present among the Camel message exchange headers.
-
-* query parameters - Validates whether an HTTP query parameter required by the
API operation is present. The query parameter is
-expected to be present among the Camel message exchange headers.
-
-If any of the validation checks fail, then a `RestOpenApiValidationException`
is thrown. The exception object
-has a `getValidationErrors` method that returns the error messages from the
validator.
-
diff --git a/components/camel-rest/src/main/docs/rest-component.adoc
b/components/camel-rest/src/main/docs/rest-component.adoc
index 1f532936151..29be9d030a4 100644
--- a/components/camel-rest/src/main/docs/rest-component.adoc
+++ b/components/camel-rest/src/main/docs/rest-component.adoc
@@ -59,7 +59,9 @@ The following components support the REST producer:
* camel-undertow
* camel-vertx-http
-== Path and uriTemplate syntax
+== Usage
+
+=== Path and uriTemplate syntax
The path and uriTemplate option is defined using a REST syntax where you
define the REST context path using support for parameters.
@@ -103,7 +105,9 @@ from("rest:get:hello:/french/{me}")
.transform().simple("Bonjour ${header.me}");
----
-== Rest producer examples
+== Examples
+
+=== Rest producer examples
You can use the REST component to call REST services like any other Camel
component.
@@ -154,7 +158,7 @@ from("direct:start")
----
-== Rest producer binding
+=== Rest producer binding
The REST producer supports binding using JSON or XML like the rest-dsl does.
@@ -198,7 +202,7 @@ For example, if the REST service returns a JSON payload
that binds to `com.foo.M
IMPORTANT: You must configure `outType` option if you want POJO binding to
happen for the response messages received from calling the REST service.
-== More examples
+=== More examples
See Rest DSL, which offers more examples and how you
can use the Rest DSL to define those in a nicer, restful way.
diff --git a/components/camel-rocketmq/src/main/docs/rocketmq-component.adoc
b/components/camel-rocketmq/src/main/docs/rocketmq-component.adoc
index 836d6a56cc9..f162466e34e 100644
--- a/components/camel-rocketmq/src/main/docs/rocketmq-component.adoc
+++ b/components/camel-rocketmq/src/main/docs/rocketmq-component.adoc
@@ -64,7 +64,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== InOut Pattern
+== Usage
+
+=== InOut Pattern
InOut Pattern based on Message Key.
When the producer sends the message, a messageKey will be generated and append
to the message's key.
diff --git a/components/camel-rss/src/main/docs/rss-component.adoc
b/components/camel-rss/src/main/docs/rss-component.adoc
index 95c4dc4ed55..b4d6d785fd0 100644
--- a/components/camel-rss/src/main/docs/rss-component.adoc
+++ b/components/camel-rss/src/main/docs/rss-component.adoc
@@ -56,7 +56,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Exchange data types
+== Usage
+
+=== Exchange data types
Camel initializes the In body on the Exchange with a ROME `SyndFeed`.
Depending on the value of the `splitEntries` flag, Camel returns either
@@ -82,7 +84,7 @@
from("rss:http://someserver.com/feeds/posts/default?alt=rss&splitEntries=false&d
.to("bean:rss");
----
-== Filtering entries
+=== Filtering entries
You can filter out entries using XPath, as shown in the
data format section above. You can also exploit Camel's
diff --git a/components/camel-saga/src/main/docs/saga-component.adoc
b/components/camel-saga/src/main/docs/saga-component.adoc
index fc1e448da86..9f6d91f7a4a 100644
--- a/components/camel-saga/src/main/docs/saga-component.adoc
+++ b/components/camel-saga/src/main/docs/saga-component.adoc
@@ -19,7 +19,7 @@ The Saga component provides a bridge to execute custom
actions within a route us
The component should be used for advanced tasks, such as deciding to complete
or compensate a Saga
with completionMode set to *MANUAL*.
-Refer to the Saga EIP documentation for help on using sagas in common
scenarios.
+Refer to the xref:eips:saga-eip.adoc[Saga EIP] documentation for help on using
sagas in common scenarios.
== URI format
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index d1e7bd0ec0f..45267503beb 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -72,7 +72,9 @@ include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component headers: END
-== Authenticating to Salesforce [[AuthenticatingToSalesforce]]
+== Usage
+
+=== Authenticating to Salesforce [[AuthenticatingToSalesforce]]
The component supports three OAuth authentication flows:
@@ -86,12 +88,12 @@ For each of the flows, different sets of properties need to
be set:
|===
| Property | Where to find it on Salesforce | Flow
-| clientId | Connected App, Consumer Key | All flows
-| clientSecret | Connected App, Consumer Secret | Username-Password,
Refresh Token, Client Credentials
-| userName | Salesforce user username | Username-Password, JWT
Bearer Token
-| password | Salesforce user password | Username-Password
-| refreshToken | From OAuth flow callback | Refresh Token
-| keystore | Connected App, Digital Certificate | JWT Bearer Token
+| `clientId` | Connected App, Consumer Key | All flows
+| `clientSecret` | Connected App, Consumer Secret | Username-Password,
Refresh Token, Client Credentials
+| `userName` | Salesforce user username | Username-Password, JWT
Bearer Token
+| `password` | Salesforce user password | Username-Password
+| `refreshToken` | From OAuth flow callback | Refresh Token
+| `keystore` | Connected App, Digital Certificate | JWT Bearer Token
|===
The component auto determines what flow you're trying to configure. In order
to be explicit, set the
@@ -109,9 +111,9 @@ certificate. The KeyStore holding the certificate and the
private key
must contain only a single certificate-private key entry.
====
-== General Usage
+=== General Usage
-=== URI format
+==== URI format
When used as a consumer, receiving streaming events, the URI scheme is:
@@ -166,7 +168,7 @@ class MyProcessor implements Processor {
In addition, HTTP response status code and text are available as headers
`Exchange.HTTP_RESPONSE_CODE` and
`Exchange.HTTP_RESPONSE_TEXT`.
-=== Sending null values to salesforce
+==== Sending null values to salesforce
By default, SObject fields with null values are not sent to salesforce. In
order to
send null values to salesforce, use the `fieldsToNull` property, as follows:
@@ -176,7 +178,7 @@ send null values to salesforce, use the `fieldsToNull`
property, as follows:
accountSObject.getFieldsToNull().add("Site");
----
-== Supported Salesforce APIs
+=== Supported Salesforce APIs
Camel supports the following Salesforce APIs:
@@ -189,7 +191,7 @@ Camel supports the following Salesforce APIs:
* <<ReportsAPI,Reports API>>
[[RESTAPI]]
-=== REST API
+==== REST API
The following operations are supported:
@@ -230,7 +232,7 @@ request as the input to a subsequent request.
Unless otherwise specified, DTO types for the following options are from
`org.apache.camel.component.salesforce.api.dto` or one if its sub-packages.
[[getVersions]]
-==== Versions
+===== Versions
`getVersions`
@@ -241,7 +243,7 @@ Lists summary information about each Salesforce version
currently available, inc
Type: `List<Version>`
[[getResources]]
-==== Resources by Version
+===== Resources by Version
`getResources`
@@ -252,7 +254,7 @@ Lists available resources for the current API version,
including resource name a
Type: `Map<String, String>`
[[limits]]
-==== Limits
+===== Limits
`limits`
@@ -291,7 +293,7 @@ from("direct:querySalesforce")
----
[[recent]]
-==== Recently Viewed Items
+===== Recently Viewed Items
`recent`
@@ -327,7 +329,7 @@ from("direct:fetchRecentItems")
----
[[getGlobalObjects]]
-==== Describe Global
+===== Describe Global
`getGlobalObjects`
@@ -339,7 +341,7 @@ as well as the maximum batch size permitted in queries.
Type: `GlobalObjects`
[[getBasicInfo]]
-==== sObject Basic Information
+===== sObject Basic Information
`getBasicInfo`
@@ -356,7 +358,7 @@ Describes the individual metadata for the specified object.
Type: `SObjectBasicInfo`
[[getDescription]]
-==== sObject Describe
+===== sObject Describe
`getDescription`
@@ -373,7 +375,7 @@ Completely describes the individual metadata at all levels
for the specified obj
Type: `SObjectDescription`
[[getSObject]]
-==== Retrieve SObject
+===== Retrieve SObject
`getSObject`
@@ -394,7 +396,7 @@ overrides `sObjectName` and `sObjectId` parameters. | |
Type: Subclass of `AbstractSObjectBase`
[[getSObjectWithId]]
-==== Retrieve SObject by External Id
+===== Retrieve SObject by External Id
`getSObjectWithId`
@@ -415,7 +417,7 @@ overrides `sObjectName` and `sObjectIdValue` parameters. |
|
Type: Subclass of `AbstractSObjectBase`
[[getBlobField]]
-==== sObject Blob Retrieve
+===== sObject Blob Retrieve
`getBlobField`
@@ -437,7 +439,7 @@ and `sObjectName` are not supplied
Type: `InputStream`
[[createSObject]]
-==== Create SObject
+===== Create SObject
`createSObject`
@@ -455,7 +457,7 @@ Creates a record in salesforce.
Type: `CreateSObjectResult`
[[updateSObject]]
-==== Update SObject
+===== Update SObject
`updateSObject`
@@ -470,7 +472,7 @@ Updates a record in salesforce.
|===
[[upsertSObject]]
-==== Upsert SObject
+===== Upsert SObject
`upsertSObject`
@@ -490,7 +492,7 @@ Upserts a record by External ID.
Type: `UpsertSObjectResult`
[[deleteSObject]]
-==== Delete SObject
+===== Delete SObject
`deleteSObject`
@@ -505,7 +507,7 @@ Deletes a record in salesforce.
|===
[[deleteSObjectWithId]]
-==== Delete SObject by External Id
+===== Delete SObject by External Id
`deleteSObjectWithId`
@@ -521,7 +523,7 @@ Deletes a record in salesforce by External ID.
|===
[[query]]
-==== Query
+===== Query
`query`
@@ -542,7 +544,7 @@ the correct `AbstractQueryRecordsBase` sublcass based on
the response.
Type: Instance of class supplied in `sObjectClass`, or `Iterator<SomeSObject>`
if `streamQueryResult` is true. If `streamQueryResult` is true, the header
`CamelSalesforceQueryResultTotalSize` is set to the number of records that
matched the query.
[[queryMore]]
-==== Query More
+===== Query More
`queryMore`
@@ -564,7 +566,7 @@ operations. If neither `sObjectClass` nor `sObjectName` are
set, Camel will atte
Type: Instance of class supplied in `sObjectClass`
[[queryAll]]
-==== Query All
+===== Query All
`queryAll`
@@ -587,7 +589,7 @@ response.
Type: Instance of class supplied in `sObjectClass`, or `Iterator<SomeSObject>`
if `streamQueryResult` is true.
[[sosl_search]]
-==== Search
+===== Search
`search`
@@ -604,7 +606,7 @@ Runs a Salesforce SOSL search
Type: `SearchResult2`
[[approval]]
-==== Submit Approval
+===== Submit Approval
`approval`
@@ -667,7 +669,7 @@ final ApprovalResult result =
template.requestBody("direct:example1", body, Appr
----
[[approvals]]
-==== Get Approvals
+===== Get Approvals
`approvals`
@@ -678,7 +680,7 @@ Returns a list of all approval processes.
Type: `Approvals`
[[composite]]
-==== Composite
+===== Composite
`composite`
@@ -771,14 +773,14 @@ from("timer:fire?period=2000").setBody(constant("{\n" +
The route directly creates the body as JSON and directly submit to salesforce
endpoint using `rawPayload=true` option.
-With this approach, you have the complete control on the Salesforce request.
+With this approach, you have complete control on the Salesforce request.
`POST` is the default HTTP method used to send raw Composite requests to
salesforce. Use the
`compositeMethod` option to override to the other supported value, `GET`,
which returns a list of
other available composite resources.
[[composite-tree]]
-==== Composite Tree
+===== Composite Tree
`composite-tree`
@@ -835,7 +837,7 @@ final String firstId = succeeded.get(0).getId();
----
[[composite-batch]]
-==== Composite Batch
+===== Composite Batch
`composite-batch`
@@ -906,7 +908,7 @@ final Object updateResultData = deleteResult.getResult();
// probably null
----
[[compositeRetrieveSObjectCollections]]
-==== Retrieve Multiple Records with Fewer Round-Trips
+===== Retrieve Multiple Records with Fewer Round-Trips
`compositeRetrieveSObjectCollections`
@@ -927,7 +929,7 @@ Type: `List` of class determined by `sObjectName` or
`sObjectClass` header
[[compositeCreateSObjectCollections]]
-==== Create SObject Collections
+===== Create SObject Collections
`compositeCreateSObjectCollections`
@@ -944,7 +946,7 @@ Add up to 200 records. Mixed SObject types is supported.
Type: `List<SaveSObjectResult>`
[[compositeUpdateSObjectCollections]]
-==== Update SObject Collections
+===== Update SObject Collections
`compositeUpdateSObjectCollections`
@@ -961,7 +963,7 @@ Update up to 200 records. Mixed SObject types is supported.
Type: `List<SaveSObjectResult>`
[[compositeUpsertSObjectCollections]]
-==== Upsert SObject Collections
+===== Upsert SObject Collections
`compositeUpsertSObjectCollections`
@@ -980,7 +982,7 @@ Create or update (upsert) up to 200 records based on an
external ID field. Mixed
Type: `List<UpsertSObjectResult>`
[[compositeDeleteSObjectCollections]]
-==== Delete SObject Collections
+===== Delete SObject Collections
`compositeDeleteSObjectCollections`
@@ -999,7 +1001,7 @@ Type: `List<DeleteSObjectResult>`
[[getEventSchema]]
-==== Get Event Schema
+===== Get Event Schema
`getEventSchema`
@@ -1018,10 +1020,10 @@ Gets the definition of a Platform Event in JSON format.
Other types of events su
Type: `InputStream`
[[ApexRESTAPI]]
-=== Apex REST API
+==== Apex REST API
[[apexCall]]
-==== Invoke an Apex REST Web Service method
+===== Invoke an Apex REST Web Service method
`apexCall`
@@ -1059,7 +1061,7 @@ Type: Instance of class supplied in `sObjectClass` input
header.
[[Bulk2API]]
-=== Bulk 2.0 API
+==== Bulk 2.0 API
The Bulk 2.0 API has a simplified model over the original Bulk API. Use it to
quickly load a large
amount of data into salesforce, or query a large amount of data out of
salesforce. Data must be
@@ -1085,7 +1087,7 @@ is v41.0. The minimum API version for Bulk Queries is
v47.0. DTO classes mention
* <<bulk2GetAllQueryJobs,bulk2GetAllQueryJobs>> - Gets all query jobs.
[[bulk2CreateJob]]
-==== Create a Job
+===== Create a Job
`bulk2CreateJob`
Creates a bulk ingest job.
@@ -1101,7 +1103,7 @@ Creates a bulk ingest job.
Type: `Job`
[[bulk2CreateBatch]]
-==== Upload a Batch of Job Data
+===== Upload a Batch of Job Data
`bulk2CreateBatch`
@@ -1115,7 +1117,7 @@ Adds a batch of data to an ingest job.
|===
[[bulk2CloseJob]]
-==== Close a Job
+===== Close a Job
`bulk2CloseJob`
@@ -1133,7 +1135,7 @@ aborted/deleted.
Type: `Job`
[[bulk2AbortJob]]
-==== Abort a Job
+===== Abort a Job
`bulk2AbortJob`
@@ -1150,7 +1152,7 @@ Aborts an ingest job.
Type: `Job`
[[bulk2DeleteJob]]
-==== Delete a Job
+===== Delete a Job
`bulk2DeleteJob`
@@ -1163,7 +1165,7 @@ Deletes an ingest job.
|===
[[bulk2GetSuccessfulResults]]
-==== Get Job Successful Record Results
+===== Get Job Successful Record Results
`bulk2GetSuccessfulResults`
@@ -1181,7 +1183,7 @@ Type: `InputStream` +
Contents: CSV data
[[bulk2GetFailedResults]]
-==== Get Job Failed Record Results
+===== Get Job Failed Record Results
`bulk2GetFailedResults`
@@ -1199,7 +1201,7 @@ Type: `InputStream` +
Contents: CSV data
[[bulk2GetUnprocessedRecords]]
-==== Get Job Unprocessed Record Results
+===== Get Job Unprocessed Record Results
`bulk2GetUnprocessedRecords`
@@ -1217,7 +1219,7 @@ Type: `InputStream`
Contents: CSV data
[[bulk2GetJob]]
-==== Get Job Info
+===== Get Job Info
`bulk2GetJob`
@@ -1235,7 +1237,7 @@ Gets an ingest Job.
Type: `Job`
[[bulk2GetAllJobs]]
-==== Get All Jobs
+===== Get All Jobs
`bulk2GetAllJobs`
@@ -1256,7 +1258,7 @@ is false, there are additional pages to fetch, and the
`nextRecordsUrl` property
to be set in the `queryLocator` parameter on subsequent calls.
[[bulk2CreateQueryJob]]
-==== Create a Query Job
+===== Create a Query Job
`bulk2CreateQueryJob`
@@ -1273,7 +1275,7 @@ Gets a query job.
Type: `QueryJob`
[[bulk2GetQueryJobResults]]
-==== Get Results for a Query Job
+===== Get Results for a Query Job
`bulk2GetQueryJobResults`
@@ -1299,7 +1301,7 @@ Response message headers include `Sforce-NumberOfRecords`
and
`locator` parameter.
[[bulk2AbortQueryJob]]
-==== Abort a Query Job
+===== Abort a Query Job
`bulk2AbortQueryJob`
@@ -1316,7 +1318,7 @@ Aborts a query job.
Type: `QueryJob`
[[bulk2DeleteQueryJob]]
-==== Delete a Query Job
+===== Delete a Query Job
`bulk2DeleteQueryJob`
@@ -1329,7 +1331,7 @@ Deletes a query job.
|===
[[bulk2GetQueryJob]]
-==== Get Information About a Query Job
+===== Get Information About a Query Job
`bulk2GetQueryJob`
@@ -1346,7 +1348,7 @@ Gets a query job.
Type: `QueryJob`
[[bulk2GetAllQueryJobs]]
-==== Get Information About All Query Jobs
+===== Get Information About All Query Jobs
`bulk2GetAllQueryJobs`
@@ -1367,7 +1369,7 @@ is false, there are additional pages to fetch, and the
`nextRecordsUrl` property
to be set in the `queryLocator` parameter on subsequent calls.
[[BulkAPI]]
-=== Bulk (original) API
+==== Bulk (original) API
Producer endpoints can use the following APIs. All Job data formats,
i.e. xml, csv, zip/xml, and zip/csv are supported. +
@@ -1392,7 +1394,7 @@ The following operations are supported:
* <<getQueryResult,getQueryResult>> - Gets results for a Result Id
[[createJob]]
-==== Create a Job
+===== Create a Job
`createJob`
@@ -1415,7 +1417,7 @@ is supported via the pkChunking* options. See an
explanation https://developer.s
Type: `JobInfo`
[[getJob]]
-==== Get Job Details
+===== Get Job Details
`getJob`
@@ -1433,7 +1435,7 @@ Gets a Job
Type: `JobInfo`
[[closeJob]]
-==== Close a Job
+===== Close a Job
`closeJob`
@@ -1451,7 +1453,7 @@ Closes a Job
Type: `JobInfo`
[[abortJob]]
-==== Abort a Job
+===== Abort a Job
`abortJob`
@@ -1469,7 +1471,7 @@ Aborts a Job
Type: `JobInfo`
[[createBatch]]
-==== Add a Batch to a Job
+===== Add a Batch to a Job
`createBatch`
@@ -1488,7 +1490,7 @@ Submits a Batch within a Bulk Job
Type: `BatchInfo`
[[getBatch]]
-==== Get Information for a Batch
+===== Get Information for a Batch
`getBatch`
@@ -1507,7 +1509,7 @@ Get a Batch
Type: `BatchInfo`
[[getAllBatches]]
-==== Get Information for All Batches in a Job
+===== Get Information for All Batches in a Job
`getAllBatches`
@@ -1525,7 +1527,7 @@ Gets all Batches for a Bulk Job Id
Type: `List<JobInfo>`
[[getRequest]]
-==== Get a Batch Request
+===== Get a Batch Request
`getRequest`
@@ -1545,7 +1547,7 @@ Type: `InputStream`
[[getResults]]
-==== Get Batch Results
+===== Get Batch Results
`getResults`
@@ -1564,7 +1566,7 @@ Gets the results of the Batch when it's complete
Type: `InputStream`
[[createBatchQuery]]
-==== Create Bulk Query Batch
+===== Create Bulk Query Batch
`createBatchQuery`
@@ -1584,7 +1586,7 @@ Creates a Batch from an SOQL query
Type: `BatchInfo`
[[getQueryResultIds]]
-==== Get Batch Results
+===== Get Batch Results
`getQueryResultIds`
@@ -1604,7 +1606,7 @@ Type: `List<String>`
[[getQueryResult]]
-==== Get Bulk Query Results
+===== Get Bulk Query Results
`getQueryResult`
@@ -1638,13 +1640,13 @@ error.
----
[[PubSubAPI]]
-=== Pub/Sub API
+==== Pub/Sub API
The Pub/Sub API allows you to publish and subscribe to platform events,
including real-time event
monitoring events, and change data capture events. This API is based on gRPC
and HTTP/2, and event
payloads are delivered in Apache Avro format.
-==== Publishing Events
+===== Publishing Events
The URI format for publishing events is:
----
@@ -1657,7 +1659,7 @@ For example:
----
[[pubSubPublish]]
-==== Publish an Event
+===== Publish an Event
`pubSubPublish`
@@ -1691,7 +1693,7 @@ Type:
`List<org.apache.camel.component.salesforce.api.dto.pubsub.PublishResult>`
The order of the items in the returned `List` correlates to the order of the
items in the input `List`.
-==== Subscribing
+===== Subscribing
The URI format for subscribing to a Pub/Sub topic is:
----
salesforce:pubSubSubscribe:<topic_name>
@@ -1724,14 +1726,14 @@ Headers: `CamelSalesforcePubSubReplayId`
[[StreamingAPI]]
-=== Streaming API
+==== Streaming API
The Streaming API enables streaming of events using push technology and
provides a subscription
mechanism for receiving events in near real time. The Streaming API
subscription mechanism supports
multiple types of events, including PushTopic events, generic events, platform
events, and Change
Data Capture events.
-==== Push Topics
+===== Push Topics
The URI format for consuming Push Topics is:
----
@@ -1774,7 +1776,7 @@
from("salesforce:subscribe:CamelTestTopic&sObjectName=Merchandise__c")...
Type: Class passed via `sObjectName` parameter
-==== Platform Events
+===== Platform Events
To emit a platform event use the <<createSObject,createSObject>> operation,
passing an instance of a platform event, e.g. `Order_Event__e`.
@@ -1803,7 +1805,7 @@ from("salesforce:subscribe:event/Order_Event__e")
Type: `PlatformEvent` or `org.cometd.bayeux.Message`
-==== Change Data Capture Events
+===== Change Data Capture Events
Change Data Capture (CDC) allows you to receive near-real-time changes of
Salesforce records, and synchronize corresponding records in an external data
store. Change Data Capture publishes change events, which represent changes to
Salesforce records. Changes include the creation of a new record, updates to an
existing record, deletion of a record, and undeletion of a record.
@@ -1858,7 +1860,7 @@ Headers
|===
[[ReportsAPI]]
-=== Reports API
+==== Reports API
* <<getRecentReports,getRecentReports>> - Gets up to 200 of the reports you
most recently viewed.
* <<getReportDescription,getReportDescription>> - Retrieves report description.
@@ -1868,7 +1870,7 @@ Headers
* <<getReportResults,getReportResults>> - Retrieves results for an instance of
a report run asynchronously.
[[getRecentReports]]
-==== Report List
+===== Report List
`getRecentReports`
@@ -1879,7 +1881,7 @@ Gets up to 200 of the reports you most recently viewed.
Type: `List<RecentReport>`
[[getReportDescription]]
-==== Describe Report
+===== Describe Report
`getReportDescription`
@@ -1897,7 +1899,7 @@ Retrieves the report, report type, and related metadata
for a report, either in
Type: `ReportDescription`
[[executeSyncReport]]
-==== Execute Sync
+===== Execute Sync
`executeSyncReport`
@@ -1917,7 +1919,7 @@ Runs a report synchronously with or without changing
filters and returns the lat
Type: `AbstractReportResultsBase`
[[executeAsyncReport]]
-==== Execute Async
+===== Execute Async
`executeAsyncReport`
@@ -1937,7 +1939,7 @@ Runs an instance of a report asynchronously with or
without filters and returns
Type: `ReportInstance`
[[getReportInstances]]
-==== Instances List
+===== Instances List
`getReportInstances`
@@ -1955,7 +1957,7 @@ Returns a list of instances for a report that you
requested to be run asynchrono
Type: `List<ReportInstance>`
[[getReportResults]]
-==== Instance Results
+===== Instance Results
`getReportResults`
@@ -1973,12 +1975,12 @@ Contains the results of running a report.
Type: `AbstractReportResultsBase`
-== Miscellaneous Operations
+=== Miscellaneous Operations
* <<raw,raw>> - Send requests to salesforce and have full, raw control over
endpoint, parameters, body, etc.
[[raw]]
-=== Raw
+==== Raw
`raw`
@@ -1999,7 +2001,7 @@ header will be automatically set based on the `format`
option, but this can be o
Type: `InputStream`
-==== Query example
+===== Query example
In this example we'll send a query to the REST API. The query must be passed
in a URL parameter called "q", so we'll create a message header called q and
tell the
raw operation to include that message header as a URL parameter:
@@ -2010,7 +2012,7 @@ from("direct:queryExample")
// deserialize JSON results or handle in some other way
----
-==== SObject example
+===== SObject example
In this example, we'll pass a Contact the REST API in a `create` operation.
Since the `raw` operation does not perform any serialization,
we make sure to pass XML in the message body
@@ -2029,7 +2031,7 @@ The response is:
</Result>
----
-== Uploading a document to a ContentWorkspace
+=== Uploading a document to a ContentWorkspace
Create the ContentVersion in Java, using a Processor instance:
@@ -2069,11 +2071,11 @@ from("file:///home/camel/library")
.to("salesforce:createSObject");
----
-== Generating SOQL query strings
+=== Generating SOQL query strings
`org.apache.camel.component.salesforce.api.utils.QueryHelper` contains helper
-methods to generate SOQL queries. For instance to fetch all custom fields from
-_Account_ SObject you can simply generate the SOQL SELECT by invoking:
+methods to generate SOQL queries. For instance, to fetch all custom fields from
+_Account_ SObject, you can generate the SOQL SELECT by invoking:
[source,java]
----
@@ -2081,7 +2083,7 @@ String allCustomFieldsQuery =
QueryHelper.queryToFetchFilteredFieldsOf(new Accou
----
[[MavenPlugin]]
-== Camel Salesforce Maven Plugin
+=== Camel Salesforce Maven Plugin
The Maven plugin generates Java DTOs to represent salesforce objects.
diff --git a/components/camel-saxon/src/main/docs/xquery-component.adoc
b/components/camel-saxon/src/main/docs/xquery-component.adoc
index 56d1691fdd5..c92cddf6e17 100644
--- a/components/camel-saxon/src/main/docs/xquery-component.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-component.adoc
@@ -50,7 +50,9 @@ from("direct:start")
.recipientList().xquery("concat('mock:foo.', /person/@city)", String.class);
-----------------------------------------------------------------------------
-== Variables
+== Usage
+
+=== Variables
The IN message body will be set as the `contextItem`. Besides this, these
Variables are also added as parameters:
@@ -59,25 +61,25 @@ Variables are also added as parameters:
|=======================================================================
|Variable |Type |Description
-|exchange |Exchange |The current Exchange
+|`exchange` |Exchange |The current Exchange
-|in.body |Object |The In message's body
+|`in.body` |Object |The In message's body
-|out.body |Object |The OUT message's body (if any)
+|`out.body` |Object |The OUT message's body (if any)
-|in.headers.* |Object |You can access the value of exchange.in.headers with
key *foo* by using
+|`in.headers.*` |Object |You can access the value of exchange.in.headers with
key *foo* by using
the variable which name is in.headers.foo
-|out.headers.* |Object |You can access the value of exchange.out.headers with
key *foo* by using
+|`out.headers.*` |Object |You can access the value of exchange.out.headers
with key *foo* by using
the variable which name is out.headers.foo variable
-|*key name* |Object |Any exchange.properties and exchange.in.headers and any
additional
+|`*key name*` |Object |Any exchange.properties and exchange.in.headers and any
additional
parameters set using `setParameters(Map)`. These parameters are added
with their own key name, for instance, if there is an IN header with the
key name *foo* then it is added as *foo*.
|=======================================================================
-== Using XML configuration
+=== Using XML configuration
If you prefer to configure your routes in your Spring
XML file, then you can use XPath expressions as follows
@@ -116,7 +118,7 @@ attribute:
-------------------------------------------------------------------------------
-== Using XQuery as an endpoint
+=== Using XQuery as an endpoint
Sometimes an XQuery expression can be quite large; it can essentally be
used for Templating. So you may want to use an
@@ -137,7 +139,7 @@ The following example shows how to take a message of an
ActiveMQ queue
</camelContext>
-------------------------------------------------------------------------
-== Loading script from external resource
+=== Loading script from external resource
You can externalize the script and have Apache Camel load it from a resource
such as `"classpath:"`, `"file:"`, or `"http:"`.
@@ -149,7 +151,7 @@ e.g., to refer to a file on the classpath you can do:
.setHeader("myHeader").xquery("resource:classpath:myxquery.txt", String.class)
------------------------------------------------------------------------------
-== Learning XQuery
+=== Learning XQuery
XQuery is a very powerful language for querying, searching, sorting and
returning XML.
@@ -164,7 +166,7 @@ To use XQuery in your Camel routes, you need to add the
dependency on
*camel-saxon*, which implements the XQuery language.
If you use Maven, you could add the following to your `pom.xml`,
-substituting the version number for the latest & greatest release.
+substituting the version number for the latest release.
[source,xml]
--------------------------------------
diff --git a/components/camel-saxon/src/main/docs/xquery-language.adoc
b/components/camel-saxon/src/main/docs/xquery-language.adoc
index 207f6a860fb..34909675d2e 100644
--- a/components/camel-saxon/src/main/docs/xquery-language.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-language.adoc
@@ -33,14 +33,14 @@ And the following variables are available as well:
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Variable |Type |Description
-|exchange |Exchange |The current Exchange
-|in.body |Object |The message body
-|out.body |Object |*deprecated* The OUT message body (if any)
-|in.headers.* |Object |You can access the value of exchange.in.headers with
key *foo* by using
+|`exchange` |Exchange |The current Exchange
+|`in.body` |Object |The message body
+|`out.body` |Object |*deprecated* The OUT message body (if any)
+|`in.headers.*` |Object |You can access the value of exchange.in.headers with
key *foo* by using
the variable which name is in.headers.foo
-|out.headers.* |Object |*deprecated* You can access the value of
`exchange.out.headers` with key *foo* by using
+|`out.headers.*` |Object |*deprecated* You can access the value of
`exchange.out.headers` with key *foo* by using
the variable which name is `out.headers.foo` variable
-|*key name* |Object |Any `exchange.properties` and `exchange.in.headers` and
any additional
+|`*key name*` |Object |Any `exchange.properties` and `exchange.in.headers` and
any additional
parameters set using `setParameters(Map)`. These parameters are added
with their own key name, for instance, if there is an IN header with the
key name *foo* then it is added as *foo*.
diff --git a/components/camel-scheduler/src/main/docs/scheduler-component.adoc
b/components/camel-scheduler/src/main/docs/scheduler-component.adoc
index f613b3b7c69..a37a582beb3 100644
--- a/components/camel-scheduler/src/main/docs/scheduler-component.adoc
+++ b/components/camel-scheduler/src/main/docs/scheduler-component.adoc
@@ -63,7 +63,9 @@ you can find more information about the options above, and
examples at
the http://camel.apache.org/polling-consumer.html[Polling
Consumer] page.
-== Exchange Properties
+== Usage
+
+=== Exchange Properties
When the timer is fired, it adds the following information as properties
to the `Exchange`:
@@ -77,6 +79,26 @@ to the `Exchange`:
|`Exchange.TIMER_FIRED_TIME` |`Date` |The time when the consumer fired.
|===
+=== Forcing the scheduler to trigger immediately when completed
+
+To let the scheduler trigger as soon as the previous task is complete,
+you can set the option `greedy=true`. But beware then the scheduler will
+keep firing all the time. So use this with caution.
+
+=== Forcing the scheduler to be idle
+
+There can be use cases where you want the scheduler to trigger and be
+greedy. But sometimes you want to "tell the scheduler" that there was no
+task to poll, so the scheduler can change into idle mode using the
+backoff options. To do this, you would need to set a property on the
+exchange with the key `Exchange.SCHEDULER_POLLED_MESSAGES` to a boolean
+value of false. This will cause the consumer to indicate that there were
+no messages polled.
+
+The consumer will otherwise as by default return 1 message polled to the
+scheduler, every time the consumer has completed processing the
+exchange.
+
== Example
To set up a route that generates an event every 60 seconds:
@@ -100,26 +122,5 @@ And the route in Spring DSL:
</route>
----
-== Forcing the scheduler to trigger immediately when completed
-
-To let the scheduler trigger as soon as the previous task is complete,
-you can set the option `greedy=true`. But beware then the scheduler will
-keep firing all the time. So use this with caution.
-
-== Forcing the scheduler to be idle
-
-There can be use cases where you want the scheduler to trigger and be
-greedy. But sometimes you want to "tell the scheduler" that there was no
-task to poll, so the scheduler can change into idle mode using the
-backoff options. To do this, you would need to set a property on the
-exchange with the key `Exchange.SCHEDULER_POLLED_MESSAGES` to a boolean
-value of false. This will cause the consumer to indicate that there were
-no messages polled.
-
-The consumer will otherwise as by default return 1 message polled to the
-scheduler, every time the consumer has completed processing the
-exchange.
-
-
include::spring-boot:partial$starter.adoc[]
diff --git
a/components/camel-schematron/src/main/docs/schematron-component.adoc
b/components/camel-schematron/src/main/docs/schematron-component.adoc
index 9b03b04951c..da6f92ffca2 100644
--- a/components/camel-schematron/src/main/docs/schematron-component.adoc
+++ b/components/camel-schematron/src/main/docs/schematron-component.adoc
@@ -61,7 +61,9 @@ include::partial$component-endpoint-options.adoc[]
|CamelSchematronValidationReport |The schematrion report body in XML format.
See an example below |String |IN
|=======================================================================
-== URI and path syntax
+== Examples
+
+=== URI and path syntax
The following example shows how to invoke the schematron processor in
Java DSL. The schematron rules file is sourced from the class path:
@@ -72,7 +74,7 @@
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
----------------------------------------------------------------------------
The following example shows how to invoke the schematron processor in
-XML DSL. The schematrion rules file is sourced from the file system:
+XML DSL. The schematron rules file is sourced from the file system:
[source,xml]
-----------------------------------------------------------------------------------------------
@@ -114,7 +116,7 @@ harm in storing these rules in the class path though, but
you will have
to build and deploy the component to pick up the changes.
====
-== Schematron rules and report examples
+=== Schematron rules and report examples
Here is an example of schematron rules
diff --git a/components/camel-seda/src/main/docs/seda-component.adoc
b/components/camel-seda/src/main/docs/seda-component.adoc
index 260223e462a..e0e18124417 100644
--- a/components/camel-seda/src/main/docs/seda-component.adoc
+++ b/components/camel-seda/src/main/docs/seda-component.adoc
@@ -61,9 +61,9 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
+== Usage
-
-== Choosing BlockingQueue implementation
+=== Choosing BlockingQueue implementation
By default, the SEDA component always instantiates a `LinkedBlockingQueue`,
but you can use different implementation, you can reference your own
@@ -99,7 +99,7 @@ Three implementations are provided:
<from>seda:priority?queueFactory=#priorityQueueFactory&size=100</from>
----
-== Use of Request Reply
+=== Use of Request Reply
The xref:seda-component.adoc[SEDA] component supports using
Request Reply, where the caller will wait for
@@ -118,7 +118,7 @@ it is a Request Reply message, we wait for the
response. When the consumer on the `seda:input` queue is complete, it
copies the response to the original message response.
-== Concurrent consumers
+=== Concurrent consumers
By default, the SEDA endpoint uses a single consumer thread, but you can
configure it to use concurrent consumer threads. So instead of thread
@@ -133,7 +133,7 @@ As for the difference between the two, note a _thread pool_
can
increase/shrink dynamically at runtime depending on load, whereas the
number of concurrent consumers is always fixed.
-== Thread pools
+=== Thread pools
Be aware that adding a thread pool to a SEDA endpoint by doing something
like:
@@ -157,7 +157,7 @@ from("direct:stageName").thread(5).process(...)
You can also directly configure number of threads that process messages
on a SEDA endpoint using the `concurrentConsumers` option.
-== Example
+== Examples
In the route below, we use the SEDA queue to send the request to this
async queue.
@@ -206,7 +206,7 @@ another thread for further processing. Since this is from a
unit test,
it will be sent to a `mock` endpoint where we can do assertions in the
unit test.
-== Using multipleConsumers
+=== Using multipleConsumers
In this example, we have defined two consumers.
@@ -242,7 +242,7 @@ message as a kind of _publish/subscribe_ style messaging.
As the beans are part of a unit test, they simply send the message to a
mock endpoint.
-== Extracting queue information.
+=== Extracting queue information.
If needed, information such as queue size, etc. can be obtained without
using JMX in this fashion:
diff --git
a/components/camel-servicenow/camel-servicenow-component/src/main/docs/servicenow-component.adoc
b/components/camel-servicenow/camel-servicenow-component/src/main/docs/servicenow-component.adoc
index 29b281a9027..858fe030d25 100644
---
a/components/camel-servicenow/camel-servicenow-component/src/main/docs/servicenow-component.adoc
+++
b/components/camel-servicenow/camel-servicenow-component/src/main/docs/servicenow-component.adoc
@@ -141,7 +141,7 @@
http://wiki.servicenow.com/index.php?title=REST_API#Available_APIs[Fuji REST API
https://docs.servicenow.com/bundle/helsinki-servicenow-platform/page/integrate/inbound-rest/reference/r_RESTResources.html[Helsinki
REST API Documentation]
====
-== Usage examples:
+== Examples:
[source,java]
.Retrieve 10 Incidents
diff --git a/components/camel-servlet/src/main/docs/servlet-component.adoc
b/components/camel-servlet/src/main/docs/servlet-component.adoc
index 2400c355df6..b78444cb306 100644
--- a/components/camel-servlet/src/main/docs/servlet-component.adoc
+++ b/components/camel-servlet/src/main/docs/servlet-component.adoc
@@ -77,21 +77,21 @@ Camel will also populate *all* `request.parameter` and
http://myserver/myserver?orderid=123, the exchange will contain a
header named `orderid` with the value `123`.
-== Usage
+== Examples
You can consume only `from` endpoints generated by the Servlet component.
Therefore, it should be used only as input into your Camel routes. To
issue HTTP requests against other HTTP endpoints, use the
xref:http-component.adoc[HTTP Component].
-== Example `CamelHttpTransportServlet` configuration
+=== Example `CamelHttpTransportServlet` configuration
-=== Camel Spring Boot / Camel Quarkus
+==== Camel Spring Boot / Camel Quarkus
When running camel-servlet on the Spring Boot or Camel Quarkus runtimes,
`CamelHttpTransportServlet` is configured for
you automatically and is driven by configuration properties. Refer to the
camel-servlet configuration documentation for these runtimes.
-=== Servlet container / application server
+==== Servlet container / application server
If you're running Camel standalone on a Servlet container or application
server, you can use `web.xml` to configure `CamelHttpTransportServlet`.
@@ -112,7 +112,7 @@ For example, to define a route that exposes an HTTP service
under the path `/ser
</web-app>
-------------------------------------------------------------------------
-== Example route
+=== Example route
[source,java]
-------------------------------------------------------------------------
@@ -129,7 +129,7 @@ from("servlet:hello").process(new Processor() {
});
-------------------------------------------------------------------------
-== Camel Servlet HTTP endpoint path
+=== Camel Servlet HTTP endpoint path
The full path where the camel-servlet HTTP endpoint is published depends on:
@@ -140,7 +140,7 @@ The full path where the camel-servlet HTTP endpoint is
published depends on:
For example, if the application context path is `/camel` and
`CamelHttpTransportServlet` is configured with a URL mapping of `/services/*`.
Then a Camel route like `from("servlet:hello")` would be published to a path
like http://localhost:8080/camel/services/hello.
-== Servlet asynchronous support
+=== Servlet asynchronous support
To enable Camel to benefit from Servlet asynchronous support, you must enable
the `async` boolean init parameter by setting it to `true`.
@@ -176,7 +176,7 @@ On other runtimes you can configure these parameters in
`web.xml` as follows.
</web-app>
-----------------------------------------------------------------------------------------------
-== Camel JARs on an application server boot classpath
+=== Camel JARs on an application server boot classpath
If deploying into an application server / servlet container and you choose to
have Camel JARs such as `camel-core`, `camel-servlet`, etc on the boot
classpath.
Then the servlet mapping list will be shared between multiple deployed Camel
application in the app server.
diff --git a/components/camel-shiro/src/main/docs/shiro.adoc
b/components/camel-shiro/src/main/docs/shiro.adoc
index e88cb5d0d66..603447f5713 100644
--- a/components/camel-shiro/src/main/docs/shiro.adoc
+++ b/components/camel-shiro/src/main/docs/shiro.adoc
@@ -21,16 +21,6 @@ is to provide the most robust and comprehensive application
security
framework available while also being straightforward to understand and
extremely simple to use.
-This camel shiro-security component allows authentication and
-authorization support to be applied to different segments of a camel
-route.
-
-Shiro security is applied on a route using a Camel Policy. A Policy in
-Camel uses a strategy pattern for applying interceptors on Camel
-Processors. It is offering the ability to apply cross-cutting concerns (for
-example, security, transactions, etc.), on sections/segments of a Camel
-route.
-
Maven users will need to add the following dependency to their `pom.xml`
for this component:
@@ -44,12 +34,26 @@ for this component:
</dependency>
------------------------------------------------------------
+== Usage
+
+The camel shiro-security component allows authentication and
+authorization support to be applied to different segments of a camel
+route.
+
+Shiro security is applied on a route using a Camel Policy.
+A Policy in
+Camel uses a strategy pattern for applying interceptors on Camel
+Processors.
+It is offering the ability to apply cross-cutting concerns (for
+example, security, transactions, etc.), on sections/segments of a Camel
+route.
+
[[ShiroSecurity-ShiroSecurityBasics]]
-== Shiro Security Basics
+=== Shiro Security Basics
-To employ Shiro security on a camel route, a ShiroSecurityPolicy object
+To use Shiro security on a camel route, a ShiroSecurityPolicy object
must be instantiated with security configuration details (including
-users, passwords, roles etc). This object must then be applied to a
+users, passwords, roles, etc). This object must then be applied to a
camel route. This ShiroSecurityPolicy Object may also be registered in
the Camel registry (JNDI or ApplicationContextRegistry) and then
used on other routes in the Camel Context.
@@ -82,7 +86,7 @@ sec-level1 = zone1:readonly:*
------------------------------------------------------------------
[[ShiroSecurity-InstantiatingaShiroSecurityPolicyObject]]
-== Instantiating a ShiroSecurityPolicy Object
+=== Instantiating a ShiroSecurityPolicy Object
A ShiroSecurityPolicy object is instantiated as follows
@@ -103,7 +107,7 @@ A ShiroSecurityPolicy object is instantiated as follows
----------------------------------------------------------------------------------------
[[ShiroSecurity-ShiroSecurityPolicyOptions]]
-== ShiroSecurityPolicy Options
+=== ShiroSecurityPolicy Options
[width="100%",cols="10%,10%,10%,90%",options="header",]
|=======================================================================
@@ -152,7 +156,7 @@ require all the roles to be met.
|=======================================================================
[[ShiroSecurity-ApplyingShiroAuthenticationonaCamelRoute]]
-== Applying Shiro Authentication on a Camel Route
+=== Applying Shiro Authentication on a Camel Route
The ShiroSecurityPolicy, tests and permits incoming message exchanges
containing an encrypted SecurityToken in the Message Header to proceed
@@ -187,7 +191,7 @@ the user is a valid user.
-----------------------------------------------------------------------
[[ShiroSecurity-ApplyingShiroAuthorizationonaCamelRoute]]
-=== Applying Shiro Authorization on a Camel Route
+==== Applying Shiro Authorization on a Camel Route
Authorization can be applied on a camel route by associating a
Permissions List with the ShiroSecurityPolicy. The Permissions List
@@ -222,7 +226,7 @@ permission set, the request is not authorized to continue
any further.
-------------------------------------------------------------------------------------------
[[ShiroSecurity-CreatingaShiroSecurityTokenandinjectingitintoaMessageExchange]]
-== Creating a ShiroSecurityToken and injecting it into a Message Exchange
+=== Creating a ShiroSecurityToken and injecting it into a Message Exchange
A ShiroSecurityToken object may be created and injected into a Message
Exchange using a Shiro Processor called ShiroSecurityTokenInjector. An
@@ -241,7 +245,7 @@ ShiroSecurityTokenInjector in the client is shown below
-------------------------------------------------------------------------------------
[[ShiroSecurity-SendingMessagestoroutessecuredbyaShiroSecurityPolicy]]
-== Sending Messages to routes secured by a ShiroSecurityPolicy
+=== Sending Messages to routes secured by a ShiroSecurityPolicy
Messages and Message Exchanges sent along the camel route where the
security policy is applied need to be accompanied by a SecurityToken in
@@ -275,7 +279,7 @@ ProducerTemplate in Camel along with a SecurityToken
-------------------------------------------------------------------------------------------------
[[ShiroSecurity-UsingShiroSecurityToken]]
-== Using ShiroSecurityToken
+=== Using ShiroSecurityToken
You can send a message to a Camel route with a header of key
`ShiroSecurityConstants.SHIRO_SECURITY_TOKEN` of the type