This is an automated email from the ASF dual-hosted git repository.
davsclaus 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 a6cbdc4752a Include kservce in catalog
a6cbdc4752a is described below
commit a6cbdc4752a71706e1c3d5dc1cdfc2c252c7a64d
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jan 22 11:03:31 2025 +0100
Include kservce in catalog
---
.../org/apache/camel/catalog/components.properties | 1 +
.../apache/camel/catalog/components/kserve.json | 49 ++++
.../org/apache/camel/main/components.properties | 1 +
.../component/ComponentsBuilderFactory.java | 14 +
.../dsl/KserveComponentBuilderFactory.java | 253 ++++++++++++++++++
.../builder/endpoint/EndpointBuilderFactory.java | 1 +
.../camel/builder/endpoint/EndpointBuilders.java | 1 +
.../builder/endpoint/StaticEndpointBuilders.java | 46 ++++
.../endpoint/dsl/KServeEndpointBuilderFactory.java | 287 +++++++++++++++++++++
.../camel-component-known-dependencies.properties | 1 +
.../apache/camel/maven/packaging/MojoHelper.java | 2 +-
11 files changed, 655 insertions(+), 1 deletion(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 87d12ba79bf..3502089f41a 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -189,6 +189,7 @@ jte
kafka
kamelet
knative
+kserve
kubernetes-config-maps
kubernetes-cronjob
kubernetes-custom-resources
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json
new file mode 100644
index 00000000000..cda7067ee14
--- /dev/null
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json
@@ -0,0 +1,49 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "kserve",
+ "title": "KServe",
+ "description": "Provide access to AI model servers with the KServe
standard to run inference with remote models",
+ "deprecated": false,
+ "firstVersion": "4.10.0",
+ "label": "ai",
+ "javaType": "org.apache.camel.component.kserve.KServeComponent",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-kserve",
+ "version": "4.10.0-SNAPSHOT",
+ "scheme": "kserve",
+ "extendsScheme": "",
+ "syntax": "kserve:api",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": true,
+ "lenientProperties": false,
+ "browsable": false,
+ "remote": true
+ },
+ "componentProperties": {
+ "configuration": { "index": 0, "kind": "property", "displayName":
"Configuration", "group": "producer", "label": "", "required": false, "type":
"object", "javaType": "org.apache.camel.component.kserve.KServeConfiguration",
"deprecated": false, "autowired": false, "secret": false, "description": "The
configuration." },
+ "modelName": { "index": 1, "kind": "property", "displayName": "Model
Name", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The name of the model used for inference." },
+ "modelVersion": { "index": 2, "kind": "property", "displayName": "Model
Version", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The version of the model used for inference."
},
+ "target": { "index": 3, "kind": "property", "displayName": "Target",
"group": "common", "label": "common", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "localhost:8001", "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The target URI of the client. See:
https:\/\/grpc.github.io\/grpc-java\/javadoc\/io\/g [...]
+ "lazyStartProducer": { "index": 4, "kind": "property", "displayName":
"Lazy Start Producer", "group": "producer", "label": "producer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description":
"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 [...]
+ "autowiredEnabled": { "index": 5, "kind": "property", "displayName":
"Autowired Enabled", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"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 t [...]
+ "healthCheckConsumerEnabled": { "index": 6, "kind": "property",
"displayName": "Health Check Consumer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all consumer based health checks
from this component" },
+ "healthCheckProducerEnabled": { "index": 7, "kind": "property",
"displayName": "Health Check Producer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all producer based health checks
from this component. Notice: Camel has by default disabled all producer based
health-checks. You can turn on producer [...]
+ "credentials": { "index": 8, "kind": "property", "displayName":
"Credentials", "group": "security", "label": "security", "required": false,
"type": "object", "javaType": "io.grpc.ChannelCredentials", "deprecated":
false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The credentials of the client." }
+ },
+ "headers": {
+ "CamelKServeModelName": { "index": 0, "kind": "header", "displayName": "",
"group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The name of the model used for inference.",
"constantName": "org.apache.camel.component.kserve.KServeConstants#MODEL_NAME"
},
+ "CamelKServeModelVersion": { "index": 1, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The version of the model used for inference.",
"constantName":
"org.apache.camel.component.kserve.KServeConstants#MODEL_VERSION" }
+ },
+ "properties": {
+ "api": { "index": 0, "kind": "path", "displayName": "Api", "group":
"producer", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "enum": [ "infer", "model\/ready", "model\/metadata",
"server\/ready", "server\/live", "server\/metadata" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
KServe API" },
+ "modelName": { "index": 1, "kind": "parameter", "displayName": "Model
Name", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The name of the model used for inference." },
+ "modelVersion": { "index": 2, "kind": "parameter", "displayName": "Model
Version", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The version of the model used for inference."
},
+ "target": { "index": 3, "kind": "parameter", "displayName": "Target",
"group": "common", "label": "common", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "localhost:8001", "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The target URI of the client. See:
https:\/\/grpc.github.io\/grpc-java\/javadoc\/io\/ [...]
+ "lazyStartProducer": { "index": 4, "kind": "parameter", "displayName":
"Lazy Start Producer", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "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 produc [...]
+ "credentials": { "index": 5, "kind": "parameter", "displayName":
"Credentials", "group": "security", "label": "security", "required": false,
"type": "object", "javaType": "io.grpc.ChannelCredentials", "deprecated":
false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.kserve.KServeConfiguration", "configurationField":
"configuration", "description": "The credentials of the client." }
+ }
+}
diff --git
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 87d12ba79bf..3502089f41a 100644
---
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -189,6 +189,7 @@ jte
kafka
kamelet
knative
+kserve
kubernetes-config-maps
kubernetes-cronjob
kubernetes-custom-resources
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index 9085a27759b..625d974e2bf 100644
---
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -2580,6 +2580,20 @@ public interface ComponentsBuilderFactory {
static KnativeComponentBuilderFactory.KnativeComponentBuilder knative() {
return KnativeComponentBuilderFactory.knative();
}
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * @return the dsl builder
+ */
+ static KserveComponentBuilderFactory.KserveComponentBuilder kserve() {
+ return KserveComponentBuilderFactory.kserve();
+ }
/**
* Kubernetes ConfigMap (camel-kubernetes)
* Perform operations on Kubernetes ConfigMaps and get notified on
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java
new file mode 100644
index 00000000000..5a2942574dc
--- /dev/null
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java
@@ -0,0 +1,253 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.kserve.KServeComponent;
+
+/**
+ * Provide access to AI model servers with the KServe standard to run inference
+ * with remote models
+ *
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface KserveComponentBuilderFactory {
+
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * @return the dsl builder
+ */
+ static KserveComponentBuilder kserve() {
+ return new KserveComponentBuilderImpl();
+ }
+
+ /**
+ * Builder for the KServe component.
+ */
+ interface KserveComponentBuilder extends ComponentBuilder<KServeComponent>
{
+
+ /**
+ * The configuration.
+ *
+ * The option is a:
+ *
<code>org.apache.camel.component.kserve.KServeConfiguration</code>
type.
+ *
+ * Group: producer
+ *
+ * @param configuration the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder
configuration(org.apache.camel.component.kserve.KServeConfiguration
configuration) {
+ doSetProperty("configuration", configuration);
+ return this;
+ }
+
+ /**
+ * The name of the model used for inference.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param modelName the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder modelName(java.lang.String modelName) {
+ doSetProperty("modelName", modelName);
+ return this;
+ }
+
+ /**
+ * The version of the model used for inference.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param modelVersion the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder modelVersion(java.lang.String
modelVersion) {
+ doSetProperty("modelVersion", modelVersion);
+ return this;
+ }
+
+
+ /**
+ * The target URI of the client. See:
+ *
https://grpc.github.io/grpc-java/javadoc/io/grpc/Grpc.html#newChannelBuilder%28java.lang.String,io.grpc.ChannelCredentials%29.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: localhost:8001
+ * Group: common
+ *
+ * @param target the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder target(java.lang.String target) {
+ doSetProperty("target", target);
+ return this;
+ }
+
+
+ /**
+ * 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.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder lazyStartProducer(boolean
lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+
+
+ /**
+ * 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.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: advanced
+ *
+ * @param autowiredEnabled the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder autowiredEnabled(boolean
autowiredEnabled) {
+ doSetProperty("autowiredEnabled", autowiredEnabled);
+ return this;
+ }
+
+
+ /**
+ * Used for enabling or disabling all consumer based health checks from
+ * this component.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: health
+ *
+ * @param healthCheckConsumerEnabled the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder healthCheckConsumerEnabled(boolean
healthCheckConsumerEnabled) {
+ doSetProperty("healthCheckConsumerEnabled",
healthCheckConsumerEnabled);
+ return this;
+ }
+
+
+ /**
+ * Used for enabling or disabling all producer based health checks from
+ * this component. Notice: Camel has by default disabled all producer
+ * based health-checks. You can turn on producer checks globally by
+ * setting camel.health.producersEnabled=true.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: health
+ *
+ * @param healthCheckProducerEnabled the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder healthCheckProducerEnabled(boolean
healthCheckProducerEnabled) {
+ doSetProperty("healthCheckProducerEnabled",
healthCheckProducerEnabled);
+ return this;
+ }
+
+ /**
+ * The credentials of the client.
+ *
+ * The option is a: <code>io.grpc.ChannelCredentials</code>
+ * type.
+ *
+ * Group: security
+ *
+ * @param credentials the value to set
+ * @return the dsl builder
+ */
+ default KserveComponentBuilder credentials(io.grpc.ChannelCredentials
credentials) {
+ doSetProperty("credentials", credentials);
+ return this;
+ }
+ }
+
+ class KserveComponentBuilderImpl
+ extends AbstractComponentBuilder<KServeComponent>
+ implements KserveComponentBuilder {
+ @Override
+ protected KServeComponent buildConcreteComponent() {
+ return new KServeComponent();
+ }
+ private org.apache.camel.component.kserve.KServeConfiguration
getOrCreateConfiguration(KServeComponent component) {
+ if (component.getConfiguration() == null) {
+ component.setConfiguration(new
org.apache.camel.component.kserve.KServeConfiguration());
+ }
+ return component.getConfiguration();
+ }
+ @Override
+ protected boolean setPropertyOnComponent(
+ Component component,
+ String name,
+ Object value) {
+ switch (name) {
+ case "configuration": ((KServeComponent)
component).setConfiguration((org.apache.camel.component.kserve.KServeConfiguration)
value); return true;
+ case "modelName": getOrCreateConfiguration((KServeComponent)
component).setModelName((java.lang.String) value); return true;
+ case "modelVersion": getOrCreateConfiguration((KServeComponent)
component).setModelVersion((java.lang.String) value); return true;
+ case "target": getOrCreateConfiguration((KServeComponent)
component).setTarget((java.lang.String) value); return true;
+ case "lazyStartProducer": ((KServeComponent)
component).setLazyStartProducer((boolean) value); return true;
+ case "autowiredEnabled": ((KServeComponent)
component).setAutowiredEnabled((boolean) value); return true;
+ case "healthCheckConsumerEnabled": ((KServeComponent)
component).setHealthCheckConsumerEnabled((boolean) value); return true;
+ case "healthCheckProducerEnabled": ((KServeComponent)
component).setHealthCheckProducerEnabled((boolean) value); return true;
+ case "credentials": getOrCreateConfiguration((KServeComponent)
component).setCredentials((io.grpc.ChannelCredentials) value); return true;
+ default: return false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 8de8e48658e..22f306dcffe 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -193,6 +193,7 @@ public interface EndpointBuilderFactory
org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory.Jt400Builders,
org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory.JteBuilders,
org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders,
+
org.apache.camel.builder.endpoint.dsl.KServeEndpointBuilderFactory.KServeBuilders,
org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory.KafkaBuilders,
org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory.KameletBuilders,
org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory.KeyVaultBuilders,
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 964a0c9a493..47370e3cbe7 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -190,6 +190,7 @@ public interface EndpointBuilders
org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory,
+ org.apache.camel.builder.endpoint.dsl.KServeEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory,
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 05b1000e832..9c741712064 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -8464,6 +8464,52 @@ public class StaticEndpointBuilders {
public static KnativeEndpointBuilderFactory.KnativeEndpointBuilder
knative(String componentName, String path) {
return KnativeEndpointBuilderFactory.endpointBuilder(componentName,
path);
}
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * Syntax: <code>kserve:api</code>
+ *
+ * Path parameter: api (required)
+ * The KServe API
+ * There are 6 enums and the value can be one of: infer, model/ready,
+ * model/metadata, server/ready, server/live, server/metadata
+ *
+ * @param path api
+ * @return the dsl builder
+ */
+ public static KServeEndpointBuilderFactory.KServeEndpointBuilder
kserve(String path) {
+ return kserve("kserve", path);
+ }
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * Syntax: <code>kserve:api</code>
+ *
+ * Path parameter: api (required)
+ * The KServe API
+ * There are 6 enums and the value can be one of: infer, model/ready,
+ * model/metadata, server/ready, server/live, server/metadata
+ *
+ * @param componentName to use a custom component name for the endpoint
+ * instead of the default name
+ * @param path api
+ * @return the dsl builder
+ */
+ public static KServeEndpointBuilderFactory.KServeEndpointBuilder
kserve(String componentName, String path) {
+ return KServeEndpointBuilderFactory.endpointBuilder(componentName,
path);
+ }
/**
* Kubernetes ConfigMap (camel-kubernetes)
* Perform operations on Kubernetes ConfigMaps and get notified on
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java
new file mode 100644
index 00000000000..0ffe4e88d2c
--- /dev/null
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java
@@ -0,0 +1,287 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Provide access to AI model servers with the KServe standard to run inference
+ * with remote models
+ *
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface KServeEndpointBuilderFactory {
+
+ /**
+ * Builder for endpoint for the KServe component.
+ */
+ public interface KServeEndpointBuilder
+ extends
+ EndpointProducerBuilder {
+ default AdvancedKServeEndpointBuilder advanced() {
+ return (AdvancedKServeEndpointBuilder) this;
+ }
+
+ /**
+ * The name of the model used for inference.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param modelName the value to set
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder modelName(String modelName) {
+ doSetProperty("modelName", modelName);
+ return this;
+ }
+ /**
+ * The version of the model used for inference.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param modelVersion the value to set
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder modelVersion(String modelVersion) {
+ doSetProperty("modelVersion", modelVersion);
+ return this;
+ }
+ /**
+ * The target URI of the client. See:
+ *
https://grpc.github.io/grpc-java/javadoc/io/grpc/Grpc.html#newChannelBuilder%28java.lang.String,io.grpc.ChannelCredentials%29.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: localhost:8001
+ * Group: common
+ *
+ * @param target the value to set
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder target(String target) {
+ doSetProperty("target", target);
+ return this;
+ }
+ /**
+ * The credentials of the client.
+ *
+ * The option is a: <code>io.grpc.ChannelCredentials</code> type.
+ *
+ * Group: security
+ *
+ * @param credentials the value to set
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder credentials(io.grpc.ChannelCredentials
credentials) {
+ doSetProperty("credentials", credentials);
+ return this;
+ }
+ /**
+ * The credentials of the client.
+ *
+ * The option will be converted to a
+ * <code>io.grpc.ChannelCredentials</code> type.
+ *
+ * Group: security
+ *
+ * @param credentials the value to set
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder credentials(String credentials) {
+ doSetProperty("credentials", credentials);
+ return this;
+ }
+ }
+
+ /**
+ * Advanced builder for endpoint for the KServe component.
+ */
+ public interface AdvancedKServeEndpointBuilder
+ extends
+ EndpointProducerBuilder {
+ default KServeEndpointBuilder basic() {
+ return (KServeEndpointBuilder) this;
+ }
+
+ /**
+ * 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.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedKServeEndpointBuilder lazyStartProducer(boolean
lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ /**
+ * 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.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedKServeEndpointBuilder lazyStartProducer(String
lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ }
+
+ public interface KServeBuilders {
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * @return the dsl builder for the headers' name.
+ */
+ default KServeHeaderNameBuilder kserve() {
+ return KServeHeaderNameBuilder.INSTANCE;
+ }
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * Syntax: <code>kserve:api</code>
+ *
+ * Path parameter: api (required)
+ * The KServe API
+ * There are 6 enums and the value can be one of: infer, model/ready,
+ * model/metadata, server/ready, server/live, server/metadata
+ *
+ * @param path api
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder kserve(String path) {
+ return KServeEndpointBuilderFactory.endpointBuilder("kserve",
path);
+ }
+ /**
+ * KServe (camel-kserve)
+ * Provide access to AI model servers with the KServe standard to run
+ * inference with remote models
+ *
+ * Category: ai
+ * Since: 4.10
+ * Maven coordinates: org.apache.camel:camel-kserve
+ *
+ * Syntax: <code>kserve:api</code>
+ *
+ * Path parameter: api (required)
+ * The KServe API
+ * There are 6 enums and the value can be one of: infer, model/ready,
+ * model/metadata, server/ready, server/live, server/metadata
+ *
+ * @param componentName to use a custom component name for the endpoint
+ * instead of the default name
+ * @param path api
+ * @return the dsl builder
+ */
+ default KServeEndpointBuilder kserve(String componentName, String
path) {
+ return KServeEndpointBuilderFactory.endpointBuilder(componentName,
path);
+ }
+
+ }
+ /**
+ * The builder of headers' name for the KServe component.
+ */
+ public static class KServeHeaderNameBuilder {
+ /**
+ * The internal instance of the builder used to access to all the
+ * methods representing the name of headers.
+ */
+ private static final KServeHeaderNameBuilder INSTANCE = new
KServeHeaderNameBuilder();
+
+ /**
+ * The name of the model used for inference.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code KServeModelName}.
+ */
+ public String kServeModelName() {
+ return "CamelKServeModelName";
+ }
+ /**
+ * The version of the model used for inference.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code KServeModelVersion}.
+ */
+ public String kServeModelVersion() {
+ return "CamelKServeModelVersion";
+ }
+ }
+ static KServeEndpointBuilder endpointBuilder(String componentName, String
path) {
+ class KServeEndpointBuilderImpl extends AbstractEndpointBuilder
implements KServeEndpointBuilder, AdvancedKServeEndpointBuilder {
+ public KServeEndpointBuilderImpl(String path) {
+ super(componentName, path);
+ }
+ }
+ return new KServeEndpointBuilderImpl(path);
+ }
+}
\ No newline at end of file
diff --git
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index 8b5f9aedc9f..3a95ab32a3c 100644
---
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -201,6 +201,7 @@ org.apache.camel.component.jte.JteComponent=camel:jte
org.apache.camel.component.kafka.KafkaComponent=camel:kafka
org.apache.camel.component.kamelet.KameletComponent=camel:kamelet
org.apache.camel.component.knative.KnativeComponent=camel:knative
+org.apache.camel.component.kserve.KServeComponent=camel:kserve
org.apache.camel.component.kubernetes.config_maps.KubernetesConfigMapsComponent=camel:kubernetes
org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent=camel:kubernetes
org.apache.camel.component.kubernetes.customresources.KubernetesCustomResourcesComponent=camel:kubernetes
diff --git
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
index 46574dc0a19..0cb06f8df16 100644
---
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
+++
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
@@ -42,7 +42,7 @@ public final class MojoHelper {
dir.resolve("camel-langchain4j-embeddings"),
dir.resolve("camel-langchain4j-tokenizer"),
dir.resolve("camel-langchain4j-tools"),
dir.resolve("camel-langchain4j-web-search"),
dir.resolve("camel-qdrant"),
dir.resolve("camel-milvus"),
- dir.resolve("camel-pinecone"));
+ dir.resolve("camel-pinecone"),
dir.resolve("camel-kserve"));
case "camel-as2":
return
Collections.singletonList(dir.resolve("camel-as2-component"));
case "camel-avro-rpc":