{
  "component": {
    "kind": "component",
    "name": "dynamic-router",
    "title": "Dynamic Router",
    "description": "The Dynamic Router component routes exchanges to recipients, and the recipients (and their rules) may change at runtime.",
    "deprecated": false,
    "firstVersion": "3.15.0",
    "label": "endpoint,java",
    "javaType": "org.apache.camel.component.dynamicrouter.DynamicRouterComponent",
    "supportLevel": "Stable",
    "groupId": "org.apache.camel.springboot",
    "artifactId": "camel-dynamic-router-starter",
    "version": "3.20.1-SNAPSHOT",
    "scheme": "dynamic-router",
    "extendsScheme": "",
    "syntax": "dynamic-router:channel",
    "alternativeSyntax": "dynamic-router:channel\/controlAction\/subscribeChannel",
    "async": false,
    "api": false,
    "consumerOnly": false,
    "producerOnly": true,
    "lenientProperties": false
  },
  "componentProperties": {
    "lazyStartProducer": { "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 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." },
    "autowiredEnabled": { "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 type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc." }
  },
  "properties": {
    "channel": { "kind": "path", "displayName": "Channel", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "Channel of the Dynamic Router" },
    "controlAction": { "kind": "path", "displayName": "Control Action", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "subscribe", "unsubscribe" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "Control channel action: subscribe or unsubscribe" },
    "subscribeChannel": { "kind": "path", "displayName": "Subscribe Channel", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The channel to subscribe to" },
    "recipientMode": { "kind": "parameter", "displayName": "Recipient Mode", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "firstMatch", "allMatch" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "firstMatch", "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "Recipient mode: firstMatch or allMatch" },
    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "Flag to ensure synchronous processing." },
    "warnDroppedMessage": { "kind": "parameter", "displayName": "Warn Dropped Message", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "Flag to log a warning if no predicates match for an exchange." },
    "lazyStartProducer": { "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 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." },
    "destinationUri": { "kind": "parameter", "displayName": "Destination Uri", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The destination URI for exchanges that match." },
    "expressionLanguage": { "kind": "parameter", "displayName": "Expression Language", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "simple", "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The subscription predicate language." },
    "predicate": { "kind": "parameter", "displayName": "Predicate", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The subscription predicate." },
    "predicateBean": { "kind": "parameter", "displayName": "Predicate Bean", "group": "control", "label": "control", "required": false, "type": "object", "javaType": "org.apache.camel.Predicate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "A Predicate instance in the registry." },
    "priority": { "kind": "parameter", "displayName": "Priority", "group": "control", "label": "control", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The subscription priority." },
    "subscriptionId": { "kind": "parameter", "displayName": "Subscription Id", "group": "control", "label": "control", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dynamicrouter.DynamicRouterConfiguration", "configurationField": "configuration", "description": "The subscription ID; if unspecified, one will be assigned and returned." }
  }
}
