diff --git a/modules/infra-kafka-connect/build.gradle.kts b/modules/infra-kafka-connect/build.gradle.kts deleted file mode 100644 index 69b2970..0000000 --- a/modules/infra-kafka-connect/build.gradle.kts +++ /dev/null @@ -1,116 +0,0 @@ -import dev.adamko.kafkatorio.gradle.asConsumer -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs - -plugins { - dev.adamko.kafkatorio.infra.`docker-compose` - dev.adamko.kafkatorio.lang.`kotlin-jvm` -} - -val dockerSrcDir: Directory by extra(layout.projectDirectory.dir("src/main/docker")) -val connectorJarDir: Directory = dockerSrcDir.dir("camel-kafka-connectors") - -val camelConnectorDependencies: Configuration by configurations.creating { asConsumer() } - -fun DependencyHandlerScope.kafkaConnector( - name: String, - group: String = "org.apache.camel.kafkaconnector", - version: String = libs.versions.camel.kafkaConnectors.get(), - classifier: String = "package", - extension: String = "tar.gz", -) { - camelConnectorDependencies(group, name, version, ext = extension, classifier = classifier) -} - -dependencies { - implementation(platform(projects.modules.versionsPlatform)) - - kotlin("reflect") - - kafkaConnector("camel-ahc-ws-kafka-connector") - kafkaConnector("camel-websocket-kafka-connector") - - implementation("com.github.adamko-dev:json5-kotlin:2.0.3") - - implementation(libs.bundles.http4k) - - implementation(libs.kotlinx.serialization.core) - implementation(libs.kotlinx.serialization.json) -} - -// disabled for now... -val projectEnabled = false - -val dockerBuildKafkaConnect by tasks.registering(Exec::class) { - enabled = projectEnabled - - group = "docker-compose" - dependsOn(downloadCamelConnectors, tasks.dockerEnv) - - logging.captureStandardOutput(LogLevel.LIFECYCLE) - - inputs.dir(dockerSrcDir) - - workingDir = dockerSrcDir.asFile - commandLine = parseSpaceSeparatedArgs(""" docker-compose build connect """) -} -//tasks.assemble { dependsOn(dockerBuildKafkaConnect) } - - -val downloadCamelConnectors by tasks.registering(Sync::class) { - enabled = projectEnabled - - group = project.name - description = "Retrieve Camel Kafka Connectors from Maven, in preparation for the Docker build" - - dependsOn(camelConnectorDependencies) - - from( - provider { camelConnectorDependencies } - .map { eventsSchema -> - eventsSchema.incoming - .artifacts - .artifactFiles - } - ) - into(temporaryDir) - - doLast { - sync { - fileTree(temporaryDir) - .asFileTree - .forEach { zip -> - from(tarTree(zip)) - } - into(connectorJarDir) - } - } -} - -tasks.dockerUp { - enabled = projectEnabled - - dependsOn(":modules:infra-kafka-cluster:dockerUp") - dependsOn(downloadCamelConnectors) -} - -tasks.dockerEnv { - enabled = projectEnabled - - properties( - "CONNECTOR_ID" to "kafkatorio-connect", - "KAFKA_CONNECT_VERSION" to libs.versions.confluent.kafkaConnect.get(), - ) -} - -idea { - module { - excludeDirs.add(file("src/main/docker/camel-kafka-connectors")) - } -} - -tasks.withType().configureEach { - kotlinOptions.freeCompilerArgs += listOf( - "-opt-in=kotlinx.serialization.ExperimentalSerializationApi", - ) -} diff --git a/modules/infra-kafka-connect/src/main/docker/.env b/modules/infra-kafka-connect/src/main/docker/.env deleted file mode 100644 index 3af8d5f..0000000 --- a/modules/infra-kafka-connect/src/main/docker/.env +++ /dev/null @@ -1,4 +0,0 @@ -# Do not edit manually. This file was created with task 'dockerEnv' -COMPOSE_PROJECT_NAME=kafkatorio -CONNECTOR_ID=kafkatorio-connect -KAFKA_CONNECT_VERSION=7.0.1 diff --git a/modules/infra-kafka-connect/src/main/docker/.gitignore b/modules/infra-kafka-connect/src/main/docker/.gitignore deleted file mode 100644 index 664df74..0000000 --- a/modules/infra-kafka-connect/src/main/docker/.gitignore +++ /dev/null @@ -1 +0,0 @@ -camel-kafka-connectors/ diff --git a/modules/infra-kafka-connect/src/main/docker/docker-compose.yml b/modules/infra-kafka-connect/src/main/docker/docker-compose.yml deleted file mode 100644 index 278ba19..0000000 --- a/modules/infra-kafka-connect/src/main/docker/docker-compose.yml +++ /dev/null @@ -1,55 +0,0 @@ -version: "3.9" - -services: - - connect: - image: adamko-dev/kafkatorio-kafka-connect:${KAFKA_CONNECT_VERSION} - hostname: ${CONNECTOR_ID} - container_name: ${CONNECTOR_ID} - build: - context: "." - dockerfile: kafka-connect.Dockerfile - args: - KAFKA_CONNECT_VERSION: ${KAFKA_CONNECT_VERSION} -# FILE_PULSE_VERSION: ${CONNECTOR_FILE_PULSE_VERSION} -# CAMEL_KC_VERSION: ${CONNECTOR_CAMEL_KAFKA_VERSION} -# CAMEL_CONNECTOR: ${CAMEL_FILE_CONNECTOR} - ports: - - "8083:8083" - - "8095:8095" # ws-async (client?) - - "9292:9292" # websocket server(?) -# volumes: -# - "./connect/input:/warehouse/input" -# - "./connect/components:/usr/share/confluent-hub-components" - -# volumes: -# - "./camel-kafka-connectors:/usr/share/java" - networks: - - "kafkatorio-nw" - environment: - CONNECT_BOOTSTRAP_SERVERS: "kafka:29092" -# CONNECT_REST_ADVERTISED_HOST_NAME: ${CONNECTOR_ID} - CONNECT_REST_ADVERTISED_HOST_NAME: connect -# CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: "http://${SCHEMA_REGISTRY}:8081" -# CONNECT_REST_PORT: 28083 - CONNECT_REST_PORT: 8083 - CONNECT_GROUP_ID: ${CONNECTOR_ID} - CONNECT_CONFIG_STORAGE_TOPIC: ${CONNECTOR_ID}-configs - CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 - CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000 - CONNECT_OFFSET_STORAGE_TOPIC: ${CONNECTOR_ID}-offsets - CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 - CONNECT_STATUS_STORAGE_TOPIC: ${CONNECTOR_ID}-status - CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 - CONNECT_KEY_CONVERTER: "org.apache.kafka.connect.storage.StringConverter" -# CONNECT_VALUE_CONVERTER: "io.confluent.connect.avro.AvroConverter" - CONNECT_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" - CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/camel-kafka-connectors" - CONNECT_LOG4J_ROOT_LOGLEVEL: INFO - CONNECT_LOG4J_LOGGERS: "org.apache.zookeeper=INFO,org.I0Itec.zkclient=ERROR,org.reflections=ERROR" -# CONNECT_LISTENERS: "http://localhost:28083" - -networks: - kafkatorio-nw: - name: "kafkatorio-nw" - external: true diff --git a/modules/infra-kafka-connect/src/main/docker/kafka-connect.Dockerfile b/modules/infra-kafka-connect/src/main/docker/kafka-connect.Dockerfile deleted file mode 100644 index 885c292..0000000 --- a/modules/infra-kafka-connect/src/main/docker/kafka-connect.Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -ARG KAFKA_CONNECT_VERSION - - -FROM confluentinc/cp-kafka-connect-base:${KAFKA_CONNECT_VERSION} - -ENV CONNECT_VERSION=${KAFKA_CONNECT_VERSION} - -USER 0:0 - -COPY ./camel-kafka-connectors /usr/share/camel-kafka-connectors - -#WORKDIR /usr/share/java/ -# -##ENV CAMEL_KC_VERSION=0.9.0 -##ENV CAMEL_CONNECTOR=camel-file-kafka-connector -# -#ENV URL=https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-file-kafka-connector/0.9.0/camel-file-kafka-connector-0.9.0-package.tar.gz -# -#RUN curl -L $URL | tar -xzvf - --strip=0 $CAMEL_CONNECTOR diff --git a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/Resources.kt b/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/Resources.kt deleted file mode 100644 index 0e6406c..0000000 --- a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/Resources.kt +++ /dev/null @@ -1,10 +0,0 @@ -package dev.adamko.kafkatorio.kafkaconnect - -import java.io.File - -object Resources { - fun loadResource(name: String): File = - File(requireNotNull(Resources::class.java.getResource(name)?.file) { - "could not load resource '$name'" - }) -} diff --git a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/kafkaConnectAdmin.kt b/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/kafkaConnectAdmin.kt deleted file mode 100644 index e8eccfb..0000000 --- a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/kafkaConnectAdmin.kt +++ /dev/null @@ -1,92 +0,0 @@ -package dev.adamko.kafkatorio.kafkaconnect - -import at.syntaxerror.json5.Json5Module -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.JsonElement -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.json.jsonPrimitive -import org.http4k.client.OkHttp -import org.http4k.core.Method.GET -import org.http4k.core.Method.PUT -import org.http4k.core.Request -import org.http4k.core.Uri - -val jsonMapper = Json { - prettyPrint = true - prettyPrintIndent = " " -} - -val j5 = Json5Module() - -fun main() { - - val connectorHostUrl = Uri.of("http://localhost:8083") - - val configFile = Resources.loadResource("/configs/ckc-websocket-lua-objects.json5") - - val jsonObject: JsonObject = j5.decodeObject(configFile.readText()) - println("json5 connector config: $jsonObject") - val configJson = jsonMapper.encodeToString(jsonObject) - println("json connector config: $configJson") - - val connectorName = jsonObject["name"]!!.jsonPrimitive.content - - val request: Request = - Request(PUT, connectorHostUrl.path("/connectors/$connectorName/config")) - .header("Content-Type", "application/json") - .header("Accept", "application/json") -// .header("Accept-Encoding", "identity") - .body(configJson) - - val client = OkHttp() - - // check the status of KC - val statusResponse = client(Request(GET, connectorHostUrl)) - println(statusResponse.toMessage()) - - val response = client(request) - - println(response.toMessage()) - println( - jsonMapper.encodeToString( - jsonMapper.decodeFromString(response.body.toString()) - ) - ) -} - -//val updateConnectors by tasks.registering { -// group = project.name -// -// val configFile = layout.projectDirectory.file("configs/websocket-async-lua-objects.json5") -// inputs.file(configFile) -// -// doLast { -// val fileText = resources.text.fromFile(configFile) -// -// val jsonObject: JsonObject = j5.decodeObject(fileText.asString()) -// -// logger.lifecycle("out: $jsonObject") -// val configJson = jsonMapper.encodeToString(jsonObject) -// logger.lifecycle("configJson: $configJson") -// -// val request = Request( -// PUT, -// Uri.of("http://localhost:8083").path("/connectors/kafkatorio-ws-connector/config") -// ).header("Content-Type", "application/json") -// .body(configJson) -// -// -// val client = OkHttp() -// val response = client(request) -// -// println(response.toMessage()) -// println( -// jsonMapper.encodeToString( -// jsonMapper.decodeFromString(response.body.toString()) -// ) -// ) -// } -// -//} diff --git a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/websocketClient.kt b/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/websocketClient.kt deleted file mode 100644 index 1763679..0000000 --- a/modules/infra-kafka-connect/src/main/kotlin/dev/adamko/kafkatorio/kafkaconnect/websocketClient.kt +++ /dev/null @@ -1,41 +0,0 @@ -package dev.adamko.kafkatorio.kafkaconnect - -import java.time.Duration -import org.http4k.client.WebsocketClient -import org.http4k.core.Uri -import org.http4k.websocket.WsMessage - -fun main() { - - val client = WebsocketClient.blocking( - uri = Uri.of("ws://localhost:9073/ws"), -// autoReconnection = true, -// timeout = Duration.ofSeconds(30) - ) -// client.send(WsMessage("server sent on connection")) - - client.received() - .take(100) - .forEachIndexed { index, wsMessage -> - println("[$index] ${wsMessage.bodyString()}") - } - - -// val nonBlockingClient = WebsocketClient.nonBlocking( -// uri = Uri.of("ws://localhost:9097/lua-objects"), -// onError = { it.printStackTrace() }, -// onConnect = { ws -> -// println("onConnect, ws.upgradeRequest ${ws.upgradeRequest}") -//// ws.send(WsMessage("client sent on connection")) -// } -// ) -// -// nonBlockingClient.onMessage { msg -> print(msg.bodyString()) } -// nonBlockingClient.onClose { -// println("non-blocking client closing") -// } -//// nonBlockingClient.onError { it.printStackTrace() } -// -// Thread.sleep(Duration.ofMinutes(1).toMillis()) - -} diff --git a/modules/infra-kafka-connect/src/main/resources/configs/ckc-websocket-lua-objects.json5 b/modules/infra-kafka-connect/src/main/resources/configs/ckc-websocket-lua-objects.json5 deleted file mode 100644 index c96e8c8..0000000 --- a/modules/infra-kafka-connect/src/main/resources/configs/ckc-websocket-lua-objects.json5 +++ /dev/null @@ -1,130 +0,0 @@ -{ - "name": "ckc-websocket-lua-objects", - "connector.class": "org.apache.camel.kafkaconnector.websocket.CamelWebsocketSinkConnector", - "topics.regex": "^Lua.*$", - "key.converter": "org.apache.kafka.connect.storage.StringConverter", - "value.converter": "org.apache.kafka.connect.storage.StringConverter", - // The hostname. The default value is 0.0.0.0. Setting this option on the component will use the - // component configured value as default. - "camel.sink.path.host": "0.0.0.0", -// "camel.sink.path.host": "host.docker.internal", - // The port number. The default value is 9292. Setting this option on the component will use the - // component configured value as default. - "camel.sink.path.port": "9292", - // Name of the websocket channel to use - "camel.sink.path.resourceUri": "lua-objects", - "camel.sink.endpoint.sendToAll": "true", - "camel.component.websocket.host":"0.0.0.0", - "camel.component.websocket.port": "8084", - // Can be used to set the size in bytes that the websocket created by the websocketServlet may - // be accept before closing. (Default is -1 - or unlimited) - // "camel.sink.endpoint.maxBinaryMessageSize": -1, - - // Whether the producer should be started lazy (on the first message). By starting lazy you can - // use this to allow CamelContext and routes to startup in situations where a producer may otherwise - // fail during starting and cause the route to fail being started. By deferring this startup to be - // lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. - // Beware that when the first message is processed then creating and starting the producer may take a little - // time and prolong the total processing time of the processing. - // "camel.sink.endpoint.lazyStartProducer": false, - - // Timeout in millis when sending to a websocket channel. The default timeout is 30000 (30 seconds). - // "camel.sink.endpoint.sendTimeout": 30000, - - // To send to all websocket subscribers. Can be used to configure on endpoint level, instead of - // having to use the WebsocketConstants.SEND_TO_ALL header on the message. - // "camel.sink.endpoint.sendToAll": , - - // Set the buffer size of the websocketServlet, which is also the max frame byte size (default - // 8192) - // "camel.sink.endpoint.bufferSize": 8192, - - // Set the time in ms that the websocket created by the websocketServlet may be idle before - // closing. (default is 300000) - // "camel.sink.endpoint.maxIdleTime": 300000, - - // Can be used to set the size in characters that the websocket created by the websocketServlet - // may be accept before closing. - // "camel.sink.endpoint.maxTextMessageSize": , - - // Can be used to set the minimum protocol version accepted for the websocketServlet. - // (Default 13 - the RFC6455 version) - // "camel.sink.endpoint.minVersion": 13, - - // The CORS allowed origins. Use to allow all. - // "camel.sink.endpoint.allowedOrigins": , - - // Whether to enable CORS - // "camel.sink.endpoint.crossOriginFilterOn": false, - - // Context path for filtering CORS - // "camel.sink.endpoint.filterPath": , - - // If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX - // support for more details. - // "camel.sink.endpoint.enableJmx": false, - - // To configure security using SSLContextParameters - // "camel.sink.endpoint.sslContextParameters": , - - // The hostname. The default value is 0.0.0.0 - // "camel.component.websocket.host": "0.0.0.0", - - // The port number. The default value is 9292 - // "camel.component.websocket.port": 9292, - - // Whether the producer should be started lazy (on the first message). By starting lazy you can - // use this to allow CamelContext and routes to startup in situations where a producer may otherwise - // fail during starting and cause the route to fail being started. By deferring this startup to be - // lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. - // Beware that when the first message is processed then creating and starting the producer may take a little - // time and prolong the total processing time of the processing. - // "camel.component.websocket.lazyStartProducer": false, - - // Whether autowiring is enabled. This is used for automatic autowiring options (the option must - // be marked as autowired) by looking up in the registry to find if there is a single instance - // of matching type, which then gets configured on the component. This can be used for automatic - // configuring JDBC data sources, JMS connection factories, AWS Clients, etc. - // "camel.component.websocket.autowiredEnabled": true, - - // If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX - // support for more details. - // "camel.component.websocket.enableJmx": false, - - // To set a value for maximum number of threads in server thread pool. MaxThreads\/minThreads - // or threadPool fields are required due to switch to Jetty9. The default values for maxThreads - // is 1 2 noCores. - // "camel.component.websocket.maxThreads": , - - // To set a value for minimum number of threads in server thread pool. MaxThreads\/minThreads - // or threadPool fields are required due to switch to Jetty9. The default values for minThreads - // is 1. - // "camel.component.websocket.minThreads": , - - // This is a comma-separated list of subprotocols that are supported by the application. The list - // is in priority order. The first subprotocol on this list that is proposed by the client is - // the one that will be accepted. If no subprotocol on this list is proposed by the client, then the - // websocket connection is refused. The special value 'any' means that any subprotocol is acceptable. 'any' - // can be used on its own, or as a failsafe at the end of a list of more specific protocols. 'any' will also - // match the case where no subprotocol is proposed by the client. - // "camel.component.websocket.subprotocol": "any", - - // To use a custom thread pool for the server. MaxThreads\/minThreads or threadPool fields are - // required due to switch to Jetty9. - // "camel.component.websocket.threadPool": , - - // To configure security using SSLContextParameters - // "camel.component.websocket.sslContextParameters": , - - // The password for the keystore when using SSL. - // "camel.component.websocket.sslKeyPassword": , - - // The path to the keystore. - // "camel.component.websocket.sslKeystore": , - - // The password when using SSL. - // "camel.component.websocket.sslPassword": , - - // Enable usage of global SSL context parameters. - // "camel.component.websocket.useGlobalSslContextParameters": false, -} diff --git a/modules/infra-kafka-connect/src/main/resources/configs/websocket-async-lua-objects.json5 b/modules/infra-kafka-connect/src/main/resources/configs/websocket-async-lua-objects.json5 deleted file mode 100644 index 19837c3..0000000 --- a/modules/infra-kafka-connect/src/main/resources/configs/websocket-async-lua-objects.json5 +++ /dev/null @@ -1,84 +0,0 @@ -//Exchange data with external Websocket servers using Async Http Client -{ - name: "websocket-async-lua-objects", - "connector.class": "org.apache.camel.kafkaconnector.ahcws.CamelAhcwsSinkConnector", - "tasks.max": 1, - //use the kafka converters that better suit your needs, these are just defaults: - "key.converter": "org.apache.kafka.connect.storage.StringConverter", - "value.converter": "org.apache.kafka.connect.storage.StringConverter", - //https://docs.confluent.io/platform/current/installation/configuration/connect/sink-connect-configs.html#sinkconnectorconfigs_topics - //List of topics to consume, separated by commas - // topics= - "topics.regex": "^Lua.*$", - - // mandatory properties (for a complete properties list see the connector documentation): - - // The URI to use such as http://hostname:port/path - "camel.sink.path.httpUri": "host.docker.internal:8095/ws/lua", - // If the option is true, then the Exchange.HTTP_URI header is ignored, and use the endpoint's - // URI for request. You may also set the throwExceptionOnFailure to be false to let the - // AhcProducer send all the fault response back. - // camel.sink.endpoint.bridgeEndpoint= - - // The initial in-memory buffer size used when transferring data between Camel and AHC Client. - // camel.sink.endpoint.bufferSize= - // To use a custom HeaderFilterStrategy to filter header to and from Camel message. - // camel.sink.endpoint.headerFilterStrategy= - // Option to disable throwing the AhcOperationFailedException in case of failed responses from - // the remote server. This allows you to get all responses regardless of the HTTP status code. - // camel.sink.endpoint.throwExceptionOnFailure= - // If enabled and an Exchange failed processing on the consumer side, and if the caused - - // Exception was send back serialized in the response as a application\/x-java-serialized-object - // content type (for example using Jetty or Servlet Camel components). On the producer side the - // exception will be deserialized and thrown as is, instead of the AhcOperationFailedException. - // The caused exception is required to be serialized. This is by default turned off. - // If you enable this then be aware that Java will deserialize the incoming data from the - // request to Java and that can be a potential security risk. - // camel.sink.endpoint.transferException= - - // Define if the Connection Close header has to be added to HTTP Request. This parameter is false by default - // camel.sink.endpoint.connectionClose= - // Configure a cookie handler to maintain a HTTP session - // camel.sink.endpoint.cookieHandler= - - // Whether the producer should be started lazy (on the first message). By starting lazy you can - // use this to allow CamelContext and routes to startup in situations where a producer - // may otherwise fail during starting and cause the route to fail being started. By deferring - // this startup to be lazy then the startup failure can be handled during routing messages via - // Camel's routing error handlers. Beware that when the first message is processed then creating - // and starting the producer may take a little time and prolong the total processing time of the - // processing. - // camel.sink.endpoint.lazyStartProducer= - - // To enable streaming to send data as multiple text fragments. - // camel.sink.endpoint.useStreaming= - // To use a custom AhcBinding which allows to control how to bind between AHC and Camel. - // camel.sink.endpoint.binding= - // To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. - // camel.sink.endpoint.clientConfig= - // To configure the AsyncHttpClientConfig using the key\/values from the Map. - // camel.sink.endpoint.clientConfigOptions= - // To configure the AsyncHttpClientConfig Realm using the key\/values from the Map. - // camel.sink.endpoint.clientConfigRealmOptions= - // Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. This reference overrides any configured SSLContextParameters at the component level. See Using the JSSE Configuration Utility. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. - // camel.sink.endpoint.sslContextParameters= - // Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. - // camel.component.ahc-ws.lazyStartProducer= - // Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. - // camel.component.ahc-ws.allowJavaSerializedObject= - // Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. - // camel.component.ahc-ws.autowiredEnabled= - // To use a custom AhcBinding which allows to control how to bind between AHC and Camel. - // camel.component.ahc-ws.binding= - // To use a custom AsyncHttpClient - // camel.component.ahc-ws.client= - // To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. - // camel.component.ahc-ws.clientConfig= - // To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. - // camel.component.ahc-ws.headerFilterStrategy= - // Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. - // camel.component.ahc-ws.sslContextParameters= - // Enable usage of global SSL context parameters. - // camel.component.ahc-ws.useGlobalSslContextParameters= -} diff --git a/settings.gradle.kts b/settings.gradle.kts index 37b5fca..fee9190 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -10,7 +10,6 @@ include( ":modules:infra-kafka-cluster", ":modules:infra-kafka-pipe", - ":modules:infra-kafka-connect", ":modules:kt-rcon", ":modules:web-map",