diff --git a/documentation/0.13.0/html/developer-guide/content.html b/documentation/0.13.0/html/developer-guide/content.html index 3fcde6c7..33b93466 100644 --- a/documentation/0.13.0/html/developer-guide/content.html +++ b/documentation/0.13.0/html/developer-guide/content.html @@ -91,13 +91,13 @@
A collection of sample filters is available within the Kroxylicious repository for you to download, try out, and customise. You can find them here for a hands-on introduction to creating your own custom filters.
+A collection of sample filters is available within the Kroxylicious repository for you to download, try out, and customise. You can find them here for a hands-on introduction to creating your own custom filters.
Custom filters are built by implementing interfaces supplied by the kroxylicious-api module (io.kroxylicious:kroxylicious-api on maven central). You can view the javadoc here.
+Custom filters are built by implementing interfaces supplied by the kroxylicious-api module (io.kroxylicious:kroxylicious-api on maven central). You can view the javadoc here.
To intercept all Fetch Requests your class would implement FetchRequestFilter:
+To intercept all Fetch Requests your class would implement FetchRequestFilter:
To intercept all Fetch Responses your class would implement FetchResponseFilter:
+To intercept all Fetch Responses your class would implement FetchResponseFilter:
To intercept all Fetch Requests and all Fetch Responses your class would implement FetchRequestFilter and FetchResponseFilter:
+To intercept all Fetch Requests and all Fetch Responses your class would implement FetchRequestFilter and FetchResponseFilter:
RequestFilter to intercept all requests.
+RequestFilter to intercept all requests.
ResponseFilter to intercept all responses.
+ResponseFilter to intercept all responses.
The simplest way of managing per-client state is to use member fields. The proxy guarantees that all methods of a given filter instance will always be invoked on the same thread (also true of the CompletionStage completion in the case of Sending asynchronous requests to the Cluster). Therefore, there is no need to use synchronization when accessing such fields.
See the io.kroxylicious.proxy.filter package javadoc for more information on thread-safety.
See the io.kroxylicious.proxy.filter package javadoc for more information on thread-safety.
As you have read above, we need to know the API version we want our request to be encoded at. Your filter can discover what versions of an API the Kafka Cluster supports. To do this use the ApiVersionsService available from the FilterContext to determine programmatically what versions of an API are support and then write code to make a suitable request object.
As you have read above, we need to know the API version we want our request to be encoded at. Your filter can discover what versions of an API the Kafka Cluster supports. To do this use the ApiVersionsService available from the FilterContext to determine programmatically what versions of an API are support and then write code to make a suitable request object.
| - | Kroxylicious provides the guarantee that computation stages chained using the default execution methods are executed on the same thread as the rest of the Filter work, so we can safely mutate Filter members without synchronising. See the io.kroxylicious.proxy.filter package javadoc for more information on thread-safety. |
+ Kroxylicious provides the guarantee that computation stages chained using the default execution methods are executed on the same thread as the rest of the Filter work, so we can safely mutate Filter members without synchronising. See the io.kroxylicious.proxy.filter package javadoc for more information on thread-safety. |
For Kroxylicious to instantiate and configure your custom filter we use Java’s ServiceLoader API. Each Custom Filter should provide a corresponding FilterFactory implementation that can create an instance of your custom Filter. The factory can optionally declare a configuration class that Kroxylicious will populate (using Jackson) when loading your custom Filter. The module must package a META-INF/services/io.kroxylicious.proxy.filter.FilterFactory file containing the classnames of each filter factory implementation into the JAR file.
For Kroxylicious to instantiate and configure your custom filter we use Java’s ServiceLoader API. Each Custom Filter should provide a corresponding FilterFactory implementation that can create an instance of your custom Filter. The factory can optionally declare a configuration class that Kroxylicious will populate (using Jackson) when loading your custom Filter. The module must package a META-INF/services/io.kroxylicious.proxy.filter.FilterFactory file containing the classnames of each filter factory implementation into the JAR file.
For example in the kroxylicious-samples we have the SampleFilterConfig class. This is used in the SampleFetchResponseFilter). The configuration is routed to the Filter instance via the SampleFetchResponse.
+For example in the kroxylicious-samples we have the SampleFilterConfig class. This is used in the SampleFetchResponseFilter). The configuration is routed to the Filter instance via the SampleFetchResponse.
Then, when we configure a filter in Kroxylicious configuration like:
diff --git a/documentation/0.13.0/html/kroxylicious-operator/content.html b/documentation/0.13.0/html/kroxylicious-operator/content.html index 3ef4d6c5..fc118af8 100644 --- a/documentation/0.13.0/html/kroxylicious-operator/content.html +++ b/documentation/0.13.0/html/kroxylicious-operator/content.html @@ -175,7 +175,7 @@To use YAML manifest files to install Kroxylicious, download kroxylicious-operator-0.13.zip or kroxylicious-operator-0.13.tar.gz file from the GitHub releases page, and extract the files as appropriate (for example using unzip or tar -xzf).
To use YAML manifest files to install Kroxylicious, download kroxylicious-operator-0.13.0.zip or kroxylicious-operator-0.13.0.tar.gz file from the GitHub releases page, and extract the files as appropriate (for example using unzip or tar -xzf).
Each of these archives contains:
@@ -205,7 +205,7 @@You need an account with permission to create and manage CustomResourceDefinition and RBAC (ClusterRole) resources.
You have downloaded one of kroxylicious-operator-0.13.zip or kroxylicious-operator-0.13.tar.gz and extracted the contents into the current directory.
+You have downloaded one of kroxylicious-operator-0.13.0.zip or kroxylicious-operator-0.13.0.tar.gz and extracted the contents into the current directory.
The Kroxylicious binary distribution includes log4j2 as the default logging backend.
+The Kroxylicious binary distribution includes log4j2 as the default logging backend.
When using the bin/kroxylicious-start.sh script from the binary distribution, you can set an environment variable to load a custom log4j2 configuration file or change the root logging level.
To test whether the application identity and the policy are working correctly, a script can be used.
+To test whether the application identity and the policy are working correctly, a script can be used.
First, as the administrator, create a KEK in the hierarchy at this path transit/keys/KEK_testkey.