Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document available configuration methods for the Infinispan extension #6084

Merged
merged 1 commit into from
May 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 49 additions & 8 deletions docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,55 @@ ifeval::[{doc-show-user-guide-link} == true]
Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
endif::[]

[id="extensions-infinispan-additional-camel-quarkus-configuration"]
== Additional Camel Quarkus configuration
[id="extensions-infinispan-usage"]
== Usage
[id="extensions-infinispan-usage-infinispan-client-configuration"]
=== Infinispan client configuration

You can configure Camel Infinispan in one of two ways.

1. Using the relevant Camel Infinispan xref:{cq-camel-components}::infinispan-component.adoc#_component_options[component & endpoint options]

2. Using the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].

More details about these two configuration methods is described below.

[id="extensions-infinispan-usage-camel-infinispan-component-and-endpoint-configuration"]
=== Camel Infinispan component and endpoint configuration

When using 'pure' Camel Infinispan component and endpoint configuration (I.e where's there's no `quarkus.infinispan-client` configuration set), you *must* disable generation of the default Quarkus Infinispan `RemoteCacheManager` bean by adding the following configuration to `application.properties`.

[source,properties]
----
quarkus.infinispan-client.devservices.create-default-client=false
----

If you wish to take advantage of https://quarkus.io/guides/infinispan-dev-services[Quarkus Dev Services for Infinispan], the Camel Infinispan component can be configured as follows in `application.properties`.

[source,properties]
----
# dev / test mode Quarkus Infinispan Dev services configuration
quarkus.infinispan-client.devservices.port=31222
%dev,test.camel.component.infinispan.username=admin
%dev,test.camel.component.infinispan.password=password
%dev,test.camel.component.infinispan.secure=true
%dev,test.camel.component.infinispan.hosts=localhost:31222

# Example prod mode configuration
%prod.camel.component.infinispan.username=prod-user
%prod.camel.component.infinispan.password=prod-password
%prod.camel.component.infinispan.secure=true
%prod.camel.component.infinispan.hosts=infinispan.prod:11222
----

[id="extensions-infinispan-configuration-infinispan-client-configuration"]
=== Infinispan Client Configuration
[id="extensions-infinispan-usage-quarkus-infinispan-configuration"]
=== Quarkus Infinispan configuration

You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you
may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].
When using the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties], the Quarkus Infinispan extensions creates and manages a `RemoteCacheManager` bean.

Note that if you choose to use Quarkus Infinispan configuration properties, you *must* add an injection point for the `RemoteCacheManager` in order for it to be discoverable by the Camel Infinispan component. For example:
The bean will get automatically autowired into the Camel Infinispan component on application startup.

Note that to materialize the `RemoteCacheManager` beans, you *must* add injection points for them. For example:

[source,java]
----
Expand All @@ -73,10 +112,12 @@ public class Routes extends RouteBuilder {
// Route configuration here...
}
}

----


[id="extensions-infinispan-additional-camel-quarkus-configuration"]
== Additional Camel Quarkus configuration

[id="extensions-infinispan-configuration-camel-infinispan-infinispanremoteaggregationrepository-in-native-mode"]
=== Camel Infinispan `InfinispanRemoteAggregationRepository` in native mode

Expand Down
28 changes: 0 additions & 28 deletions extensions/infinispan/runtime/src/main/doc/configuration.adoc
Original file line number Diff line number Diff line change
@@ -1,31 +1,3 @@
=== Infinispan Client Configuration

You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you
may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].

Note that if you choose to use Quarkus Infinispan configuration properties, you *must* add an injection point for the `RemoteCacheManager` in order for it to be discoverable by the Camel Infinispan component. For example:

[source,java]
----
public class Routes extends RouteBuilder {
// Injects the default unnamed RemoteCacheManager
@Inject
RemoteCacheManager cacheManager;

// If configured, injects an optional named RemoteCacheManager
@Inject
@InfinispanClientName("myNamedClient")
RemoteCacheManager namedCacheManager;

@Override
public void configure() {
// Route configuration here...
}
}

----


=== Camel Infinispan `InfinispanRemoteAggregationRepository` in native mode

If you chose to use the `InfinispanRemoteAggregationRepository` in native mode, then you must xref:extensions/core.adoc#quarkus.camel.native.reflection.serialization-enabled[enable native serialization support].
63 changes: 63 additions & 0 deletions extensions/infinispan/runtime/src/main/doc/usage.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
=== Infinispan client configuration

You can configure Camel Infinispan in one of two ways.

1. Using the relevant Camel Infinispan xref:{cq-camel-components}::infinispan-component.adoc#_component_options[component & endpoint options]

2. Using the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].

More details about these two configuration methods is described below.

=== Camel Infinispan component and endpoint configuration

When using 'pure' Camel Infinispan component and endpoint configuration (I.e where's there's no `quarkus.infinispan-client` configuration set), you *must* disable generation of the default Quarkus Infinispan `RemoteCacheManager` bean by adding the following configuration to `application.properties`.

[source,properties]
----
quarkus.infinispan-client.devservices.create-default-client=false
----

If you wish to take advantage of https://quarkus.io/guides/infinispan-dev-services[Quarkus Dev Services for Infinispan], the Camel Infinispan component can be configured as follows in `application.properties`.

[source,properties]
----
# dev / test mode Quarkus Infinispan Dev services configuration
quarkus.infinispan-client.devservices.port=31222
%dev,test.camel.component.infinispan.username=admin
%dev,test.camel.component.infinispan.password=password
%dev,test.camel.component.infinispan.secure=true
%dev,test.camel.component.infinispan.hosts=localhost:31222

# Example prod mode configuration
%prod.camel.component.infinispan.username=prod-user
%prod.camel.component.infinispan.password=prod-password
%prod.camel.component.infinispan.secure=true
%prod.camel.component.infinispan.hosts=infinispan.prod:11222
----

=== Quarkus Infinispan configuration

When using the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties], the Quarkus Infinispan extensions creates and manages a `RemoteCacheManager` bean.

The bean will get automatically autowired into the Camel Infinispan component on application startup.

Note that to materialize the `RemoteCacheManager` beans, you *must* add injection points for them. For example:

[source,java]
----
public class Routes extends RouteBuilder {
// Injects the default unnamed RemoteCacheManager
@Inject
RemoteCacheManager cacheManager;

// If configured, injects an optional named RemoteCacheManager
@Inject
@InfinispanClientName("myNamedClient")
RemoteCacheManager namedCacheManager;

@Override
public void configure() {
// Route configuration here...
}
}
----