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 2bb4d58 CAMEL-17154: Dynamic Router EIP Component 2bb4d58 is described below commit 2bb4d58f0a5bcbe2412d94aa56deff0a10d3d16b Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Jan 11 20:29:11 2022 +0100 CAMEL-17154: Dynamic Router EIP Component --- .../dsl/DynamicRouterComponentBuilderFactory.java | 146 ++++++ .../dsl/DynamicRouterEndpointBuilderFactory.java | 556 +++++++++++++++++++++ 2 files changed, 702 insertions(+) diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DynamicRouterComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DynamicRouterComponentBuilderFactory.java new file mode 100644 index 0000000..f74fe83 --- /dev/null +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DynamicRouterComponentBuilderFactory.java @@ -0,0 +1,146 @@ +/* + * 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.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.dynamicrouter.DynamicRouterComponent; + +/** + * The Dynamic Router component routes exchanges to recipients, and the + * recipients (and their rules) may change at runtime. + * + * Generated by camel-package-maven-plugin - do not edit this file! + */ +@Generated("org.apache.camel.maven.packaging.ComponentDslMojo") +public interface DynamicRouterComponentBuilderFactory { + + /** + * Dynamic Router (camel-dynamic-router) + * The Dynamic Router component routes exchanges to recipients, and the + * recipients (and their rules) may change at runtime. + * + * Category: endpoint,java + * Since: 3.15 + * Maven coordinates: org.apache.camel:camel-dynamic-router + * + * @return the dsl builder + */ + static DynamicRouterComponentBuilder dynamicRouter() { + return new DynamicRouterComponentBuilderImpl(); + } + + /** + * Builder for the Dynamic Router component. + */ + interface DynamicRouterComponentBuilder + extends + ComponentBuilder<DynamicRouterComponent> { + /** + * Allows for bridging the consumer to the Camel routing Error Handler, + * which mean any exceptions occurred while the consumer is trying to + * pickup incoming messages, or the likes, will now be processed as a + * message and handled by the routing Error Handler. By default the + * consumer will use the org.apache.camel.spi.ExceptionHandler to deal + * with exceptions, that will be logged at WARN or ERROR level and + * ignored. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: consumer + * + * @param bridgeErrorHandler the value to set + * @return the dsl builder + */ + default DynamicRouterComponentBuilder bridgeErrorHandler( + boolean bridgeErrorHandler) { + doSetProperty("bridgeErrorHandler", bridgeErrorHandler); + 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 DynamicRouterComponentBuilder 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 DynamicRouterComponentBuilder autowiredEnabled( + boolean autowiredEnabled) { + doSetProperty("autowiredEnabled", autowiredEnabled); + return this; + } + } + + class DynamicRouterComponentBuilderImpl + extends + AbstractComponentBuilder<DynamicRouterComponent> + implements + DynamicRouterComponentBuilder { + @Override + protected DynamicRouterComponent buildConcreteComponent() { + return new DynamicRouterComponent(); + } + @Override + protected boolean setPropertyOnComponent( + Component component, + String name, + Object value) { + switch (name) { + case "bridgeErrorHandler": ((DynamicRouterComponent) component).setBridgeErrorHandler((boolean) value); return true; + case "lazyStartProducer": ((DynamicRouterComponent) component).setLazyStartProducer((boolean) value); return true; + case "autowiredEnabled": ((DynamicRouterComponent) component).setAutowiredEnabled((boolean) 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/dsl/DynamicRouterEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java new file mode 100644 index 0000000..08f845a --- /dev/null +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java @@ -0,0 +1,556 @@ +/* + * 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.Generated; +import org.apache.camel.builder.EndpointConsumerBuilder; +import org.apache.camel.builder.EndpointProducerBuilder; +import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; + +/** + * The Dynamic Router component routes exchanges to recipients, and the + * recipients (and their rules) may change at runtime. + * + * Generated by camel build tools - do NOT edit this file! + */ +@Generated("org.apache.camel.maven.packaging.EndpointDslMojo") +public interface DynamicRouterEndpointBuilderFactory { + + + /** + * Builder for endpoint consumers for the Dynamic Router component. + */ + public interface DynamicRouterEndpointConsumerBuilder + extends + EndpointConsumerBuilder { + default AdvancedDynamicRouterEndpointConsumerBuilder advanced() { + return (AdvancedDynamicRouterEndpointConsumerBuilder) this; + } + /** + * Allows for bridging the consumer to the Camel routing Error Handler, + * which mean any exceptions occurred while the consumer is trying to + * pickup incoming messages, or the likes, will now be processed as a + * message and handled by the routing Error Handler. By default the + * consumer will use the org.apache.camel.spi.ExceptionHandler to deal + * with exceptions, that will be logged at WARN or ERROR level and + * ignored. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: consumer + * + * @param bridgeErrorHandler the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointConsumerBuilder bridgeErrorHandler( + boolean bridgeErrorHandler) { + doSetProperty("bridgeErrorHandler", bridgeErrorHandler); + return this; + } + /** + * Allows for bridging the consumer to the Camel routing Error Handler, + * which mean any exceptions occurred while the consumer is trying to + * pickup incoming messages, or the likes, will now be processed as a + * message and handled by the routing Error Handler. By default the + * consumer will use the org.apache.camel.spi.ExceptionHandler to deal + * with exceptions, that will be logged at WARN or ERROR level and + * ignored. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: false + * Group: consumer + * + * @param bridgeErrorHandler the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointConsumerBuilder bridgeErrorHandler( + String bridgeErrorHandler) { + doSetProperty("bridgeErrorHandler", bridgeErrorHandler); + return this; + } + } + + /** + * Advanced builder for endpoint consumers for the Dynamic Router component. + */ + public interface AdvancedDynamicRouterEndpointConsumerBuilder + extends + EndpointConsumerBuilder { + default DynamicRouterEndpointConsumerBuilder basic() { + return (DynamicRouterEndpointConsumerBuilder) this; + } + /** + * To let the consumer use a custom ExceptionHandler. Notice if the + * option bridgeErrorHandler is enabled then this option is not in use. + * By default the consumer will deal with exceptions, that will be + * logged at WARN or ERROR level and ignored. + * + * The option is a: + * <code>org.apache.camel.spi.ExceptionHandler</code> type. + * + * Group: consumer (advanced) + * + * @param exceptionHandler the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder exceptionHandler( + org.apache.camel.spi.ExceptionHandler exceptionHandler) { + doSetProperty("exceptionHandler", exceptionHandler); + return this; + } + /** + * To let the consumer use a custom ExceptionHandler. Notice if the + * option bridgeErrorHandler is enabled then this option is not in use. + * By default the consumer will deal with exceptions, that will be + * logged at WARN or ERROR level and ignored. + * + * The option will be converted to a + * <code>org.apache.camel.spi.ExceptionHandler</code> type. + * + * Group: consumer (advanced) + * + * @param exceptionHandler the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder exceptionHandler( + String exceptionHandler) { + doSetProperty("exceptionHandler", exceptionHandler); + return this; + } + /** + * Sets the exchange pattern when the consumer creates an exchange. + * + * The option is a: + * <code>org.apache.camel.ExchangePattern</code> type. + * + * Group: consumer (advanced) + * + * @param exchangePattern the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder exchangePattern( + org.apache.camel.ExchangePattern exchangePattern) { + doSetProperty("exchangePattern", exchangePattern); + return this; + } + /** + * Sets the exchange pattern when the consumer creates an exchange. + * + * The option will be converted to a + * <code>org.apache.camel.ExchangePattern</code> type. + * + * Group: consumer (advanced) + * + * @param exchangePattern the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder exchangePattern( + String exchangePattern) { + doSetProperty("exchangePattern", exchangePattern); + return this; + } + /** + * Flag to ensure synchronous processing. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder synchronous( + boolean synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + /** + * Flag to ensure synchronous processing. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointConsumerBuilder synchronous( + String synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + } + + /** + * Builder for endpoint producers for the Dynamic Router component. + */ + public interface DynamicRouterEndpointProducerBuilder + extends + EndpointProducerBuilder { + default AdvancedDynamicRouterEndpointProducerBuilder advanced() { + return (AdvancedDynamicRouterEndpointProducerBuilder) this; + } + /** + * Flag that determines if the producer should block while waiting for a + * consumer. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: producer + * + * @param block the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder block(boolean block) { + doSetProperty("block", block); + return this; + } + /** + * Flag that determines if the producer should block while waiting for a + * consumer. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: true + * Group: producer + * + * @param block the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder block(String block) { + doSetProperty("block", block); + return this; + } + /** + * Flag to fail if there are no consumers. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: producer + * + * @param failIfNoConsumers the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder failIfNoConsumers( + boolean failIfNoConsumers) { + doSetProperty("failIfNoConsumers", failIfNoConsumers); + return this; + } + /** + * Flag to fail if there are no consumers. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: true + * Group: producer + * + * @param failIfNoConsumers the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder failIfNoConsumers( + String failIfNoConsumers) { + doSetProperty("failIfNoConsumers", failIfNoConsumers); + 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 DynamicRouterEndpointProducerBuilder 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 + * + * @param lazyStartProducer the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder lazyStartProducer( + String lazyStartProducer) { + doSetProperty("lazyStartProducer", lazyStartProducer); + return this; + } + /** + * The time limit, in milliseconds, if/when the producer blocks while + * waiting for a consumer. + * + * The option is a: <code>long</code> type. + * + * Default: 30000 + * Group: producer + * + * @param timeout the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder timeout(long timeout) { + doSetProperty("timeout", timeout); + return this; + } + /** + * The time limit, in milliseconds, if/when the producer blocks while + * waiting for a consumer. + * + * The option will be converted to a <code>long</code> type. + * + * Default: 30000 + * Group: producer + * + * @param timeout the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder timeout(String timeout) { + doSetProperty("timeout", timeout); + return this; + } + /** + * Flag to log a warning if no predicates match for an exchange. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: producer + * + * @param warnDroppedMessage the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder warnDroppedMessage( + boolean warnDroppedMessage) { + doSetProperty("warnDroppedMessage", warnDroppedMessage); + return this; + } + /** + * Flag to log a warning if no predicates match for an exchange. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: false + * Group: producer + * + * @param warnDroppedMessage the value to set + * @return the dsl builder + */ + default DynamicRouterEndpointProducerBuilder warnDroppedMessage( + String warnDroppedMessage) { + doSetProperty("warnDroppedMessage", warnDroppedMessage); + return this; + } + } + + /** + * Advanced builder for endpoint producers for the Dynamic Router component. + */ + public interface AdvancedDynamicRouterEndpointProducerBuilder + extends + EndpointProducerBuilder { + default DynamicRouterEndpointProducerBuilder basic() { + return (DynamicRouterEndpointProducerBuilder) this; + } + /** + * Flag to ensure synchronous processing. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointProducerBuilder synchronous( + boolean synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + /** + * Flag to ensure synchronous processing. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointProducerBuilder synchronous( + String synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + } + + /** + * Builder for endpoint for the Dynamic Router component. + */ + public interface DynamicRouterEndpointBuilder + extends + DynamicRouterEndpointConsumerBuilder, + DynamicRouterEndpointProducerBuilder { + default AdvancedDynamicRouterEndpointBuilder advanced() { + return (AdvancedDynamicRouterEndpointBuilder) this; + } + } + + /** + * Advanced builder for endpoint for the Dynamic Router component. + */ + public interface AdvancedDynamicRouterEndpointBuilder + extends + AdvancedDynamicRouterEndpointConsumerBuilder, + AdvancedDynamicRouterEndpointProducerBuilder { + default DynamicRouterEndpointBuilder basic() { + return (DynamicRouterEndpointBuilder) this; + } + /** + * Flag to ensure synchronous processing. + * + * The option is a: <code>boolean</code> type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointBuilder synchronous( + boolean synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + /** + * Flag to ensure synchronous processing. + * + * The option will be converted to a <code>boolean</code> + * type. + * + * Default: false + * Group: advanced + * + * @param synchronous the value to set + * @return the dsl builder + */ + default AdvancedDynamicRouterEndpointBuilder synchronous( + String synchronous) { + doSetProperty("synchronous", synchronous); + return this; + } + } + + public interface DynamicRouterBuilders { + /** + * Dynamic Router (camel-dynamic-router) + * The Dynamic Router component routes exchanges to recipients, and the + * recipients (and their rules) may change at runtime. + * + * Category: endpoint,java + * Since: 3.15 + * Maven coordinates: org.apache.camel:camel-dynamic-router + * + * Syntax: <code>dynamic-router:channel</code> + * + * Path parameter: channel (required) + * Channel of the Dynamic Router + * + * @param path channel + * @return the dsl builder + */ + default DynamicRouterEndpointBuilder dynamicRouter(String path) { + return DynamicRouterEndpointBuilderFactory.endpointBuilder("dynamic-router", path); + } + /** + * Dynamic Router (camel-dynamic-router) + * The Dynamic Router component routes exchanges to recipients, and the + * recipients (and their rules) may change at runtime. + * + * Category: endpoint,java + * Since: 3.15 + * Maven coordinates: org.apache.camel:camel-dynamic-router + * + * Syntax: <code>dynamic-router:channel</code> + * + * Path parameter: channel (required) + * Channel of the Dynamic Router + * + * @param componentName to use a custom component name for the endpoint + * instead of the default name + * @param path channel + * @return the dsl builder + */ + default DynamicRouterEndpointBuilder dynamicRouter( + String componentName, + String path) { + return DynamicRouterEndpointBuilderFactory.endpointBuilder(componentName, path); + } + } + static DynamicRouterEndpointBuilder endpointBuilder( + String componentName, + String path) { + class DynamicRouterEndpointBuilderImpl extends AbstractEndpointBuilder implements DynamicRouterEndpointBuilder, AdvancedDynamicRouterEndpointBuilder { + public DynamicRouterEndpointBuilderImpl(String path) { + super(componentName, path); + } + } + return new DynamicRouterEndpointBuilderImpl(path); + } +} \ No newline at end of file