This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch ks in repository https://gitbox.apache.org/repos/asf/camel.git
commit 686b9e481664d00bf4e257e016b81add16020ecf Author: Claus Ibsen <[email protected]> AuthorDate: Sun Feb 15 11:23:34 2026 +0100 CAMEL-23007: camel-jbang - Add a support JAR for neutral common code that can be reused by other tooling --- bom/camel-bom/pom.xml | 5 + .../org/apache/camel/catalog/others.properties | 1 + .../camel/catalog/others/kamelet-main-support.json | 15 +++ .../SpringCacheIdempotentRepository.java | 4 +- docs/components/modules/others/nav.adoc | 1 + .../modules/others/pages/kamelet-main-support.adoc | 1 + dsl/camel-kamelet-main-support/pom.xml | 48 +++++++++ .../services/org/apache/camel/other.properties | 7 ++ .../generated/resources/kamelet-main-support.json | 15 +++ .../src/main/docs/kamelet-main-support.adoc | 14 +++ .../apache/camel/main/stub/BeanStubReifier.java | 0 .../apache/camel/main/stub/KameletStubReifier.java | 0 .../camel/main/stub}/StubBeanRepository.java | 2 +- .../org/apache/camel/main/stub/StubDataFormat.java | 0 .../org/apache/camel/main/stub/StubLanguage.java | 0 .../apache/camel/main/stub/StubTransformer.java | 0 dsl/camel-kamelet-main/pom.xml | 4 + .../java/org/apache/camel/main/KameletMain.java | 2 +- .../camel-yaml-dsl-validator/pom.xml | 2 +- .../camel/dsl/yaml/validator/CamelYamlParser.java | 31 +++--- .../yaml/validator/stub/StubBeanRepository.java | 108 --------------------- .../dsl/yaml/validator/stub/StubDataFormat.java | 48 --------- .../dsl/yaml/validator/stub/StubLanguage.java | 40 -------- .../camel/dsl/yaml/validator/stub/StubReifier.java | 92 ------------------ .../dsl/yaml/validator/stub/StubTransformer.java | 32 ------ dsl/pom.xml | 1 + parent/pom.xml | 5 + 27 files changed, 138 insertions(+), 340 deletions(-) diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml index dda32ab0f532..412042d1da3e 100644 --- a/bom/camel-bom/pom.xml +++ b/bom/camel-bom/pom.xml @@ -1417,6 +1417,11 @@ <artifactId>camel-kamelet-main</artifactId> <version>4.18.0-SNAPSHOT</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-kamelet-main-support</artifactId> + <version>4.18.0-SNAPSHOT</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-keycloak</artifactId> diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties index c3cb3ad8148a..65d41aa550ea 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties @@ -22,6 +22,7 @@ java-joor-dsl jfr jta kamelet-main +kamelet-main-support langchain4j-tokenizer leveldb lra diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kamelet-main-support.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kamelet-main-support.json new file mode 100644 index 000000000000..eccdd444e183 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/kamelet-main-support.json @@ -0,0 +1,15 @@ +{ + "other": { + "kind": "other", + "name": "kamelet-main-support", + "title": "Kamelet Main Support", + "description": "Support Module for Kamelet Main", + "deprecated": false, + "firstVersion": "4.19.0", + "label": "jbang", + "supportLevel": "Preview", + "groupId": "org.apache.camel", + "artifactId": "camel-kamelet-main-support", + "version": "4.18.0-SNAPSHOT" + } +} diff --git a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/processor/idempotent/SpringCacheIdempotentRepository.java b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/processor/idempotent/SpringCacheIdempotentRepository.java index a4868f4a1975..cd1ab1b9d98b 100644 --- a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/processor/idempotent/SpringCacheIdempotentRepository.java +++ b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/processor/idempotent/SpringCacheIdempotentRepository.java @@ -27,8 +27,8 @@ import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; @Metadata(label = "bean", - description = "SpringCache based message id repository.", - annotations = { "interfaceName=org.apache.camel.spi.IdempotentRepository" }) + description = "SpringCache based message id repository.", + annotations = { "interfaceName=org.apache.camel.spi.IdempotentRepository" }) @Configurer(metadataOnly = true) @ManagedResource(description = "SpringCache based message id repository") public class SpringCacheIdempotentRepository extends ServiceSupport implements IdempotentRepository { diff --git a/docs/components/modules/others/nav.adoc b/docs/components/modules/others/nav.adoc index 138e6ddf9ef3..0576683fc197 100644 --- a/docs/components/modules/others/nav.adoc +++ b/docs/components/modules/others/nav.adoc @@ -17,6 +17,7 @@ *** xref:java-joor-dsl.adoc[Java DSL (runtime compiled)] *** xref:java-xml-jaxb-dsl.adoc[Jaxb XML Dsl] *** xref:kamelet-main.adoc[Kamelet Main] +*** xref:kamelet-main-support.adoc[Kamelet Main Support] *** xref:java-xml-io-dsl.adoc[XML Io Dsl] *** xref:yaml-dsl.adoc[YAML DSL] ** xref:elytron.adoc[Elytron] diff --git a/docs/components/modules/others/pages/kamelet-main-support.adoc b/docs/components/modules/others/pages/kamelet-main-support.adoc new file mode 120000 index 000000000000..21b44645e9a7 --- /dev/null +++ b/docs/components/modules/others/pages/kamelet-main-support.adoc @@ -0,0 +1 @@ +../../../../../dsl/camel-kamelet-main-support/src/main/docs/kamelet-main-support.adoc \ No newline at end of file diff --git a/dsl/camel-kamelet-main-support/pom.xml b/dsl/camel-kamelet-main-support/pom.xml new file mode 100644 index 000000000000..95c4c9f90c40 --- /dev/null +++ b/dsl/camel-kamelet-main-support/pom.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel</groupId> + <artifactId>dsl</artifactId> + <version>4.18.0-SNAPSHOT</version> + </parent> + + <artifactId>camel-kamelet-main-support</artifactId> + <packaging>jar</packaging> + + <name>Camel :: Kamelet Main :: Support</name> + <description>Support Module for Kamelet Main</description> + + <properties> + <firstVersion>4.19.0</firstVersion> + <label>jbang</label> + <supportLevel>Preview</supportLevel> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> + </dependency> + </dependencies> + +</project> diff --git a/dsl/camel-kamelet-main-support/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-kamelet-main-support/src/generated/resources/META-INF/services/org/apache/camel/other.properties new file mode 100644 index 000000000000..380b8afbe06c --- /dev/null +++ b/dsl/camel-kamelet-main-support/src/generated/resources/META-INF/services/org/apache/camel/other.properties @@ -0,0 +1,7 @@ +# Generated by camel build tools - do NOT edit this file! +name=kamelet-main-support +groupId=org.apache.camel +artifactId=camel-kamelet-main-support +version=4.18.0-SNAPSHOT +projectName=Camel :: Kamelet Main :: Support +projectDescription=Support Module for Kamelet Main diff --git a/dsl/camel-kamelet-main-support/src/generated/resources/kamelet-main-support.json b/dsl/camel-kamelet-main-support/src/generated/resources/kamelet-main-support.json new file mode 100644 index 000000000000..eccdd444e183 --- /dev/null +++ b/dsl/camel-kamelet-main-support/src/generated/resources/kamelet-main-support.json @@ -0,0 +1,15 @@ +{ + "other": { + "kind": "other", + "name": "kamelet-main-support", + "title": "Kamelet Main Support", + "description": "Support Module for Kamelet Main", + "deprecated": false, + "firstVersion": "4.19.0", + "label": "jbang", + "supportLevel": "Preview", + "groupId": "org.apache.camel", + "artifactId": "camel-kamelet-main-support", + "version": "4.18.0-SNAPSHOT" + } +} diff --git a/dsl/camel-kamelet-main-support/src/main/docs/kamelet-main-support.adoc b/dsl/camel-kamelet-main-support/src/main/docs/kamelet-main-support.adoc new file mode 100644 index 000000000000..4a0aeccca107 --- /dev/null +++ b/dsl/camel-kamelet-main-support/src/main/docs/kamelet-main-support.adoc @@ -0,0 +1,14 @@ += Kamelet Main Support Component +:doctitle: Kamelet Main Support +:shortname: kamelet-main-support +:artifactid: camel-kamelet-main-support +:description: Support Module for Kamelet Main +:since: 4.19 +:supportlevel: Preview +:tabs-sync-option: +//Manually maintained attributes +:group: DSL + +*Since Camel {since}* + +Support module for xref:_kamelet_main_component[Kamelet Main] (aka camel-jbang). diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/BeanStubReifier.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/BeanStubReifier.java similarity index 100% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/BeanStubReifier.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/BeanStubReifier.java diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/KameletStubReifier.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/KameletStubReifier.java similarity index 100% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/KameletStubReifier.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/KameletStubReifier.java diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubBeanRepository.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubBeanRepository.java similarity index 99% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubBeanRepository.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubBeanRepository.java index 242f8a4ca21d..04485d4ebdd5 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/StubBeanRepository.java +++ b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubBeanRepository.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.download; +package org.apache.camel.main.stub; import java.util.Collections; import java.util.Map; diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubDataFormat.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubDataFormat.java similarity index 100% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubDataFormat.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubDataFormat.java diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubLanguage.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubLanguage.java similarity index 100% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubLanguage.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubLanguage.java diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubTransformer.java b/dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubTransformer.java similarity index 100% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/stub/StubTransformer.java rename to dsl/camel-kamelet-main-support/src/main/java/org/apache/camel/main/stub/StubTransformer.java diff --git a/dsl/camel-kamelet-main/pom.xml b/dsl/camel-kamelet-main/pom.xml index 9c588ca7e5aa..e55cbc52f9d2 100644 --- a/dsl/camel-kamelet-main/pom.xml +++ b/dsl/camel-kamelet-main/pom.xml @@ -40,6 +40,10 @@ <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-kamelet-main-support</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-main</artifactId> diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java index 361c4eb1a4ae..779c89ffeb4a 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java @@ -73,7 +73,6 @@ import org.apache.camel.main.download.MavenDependencyDownloader; import org.apache.camel.main.download.PackageNameSourceLoader; import org.apache.camel.main.download.PromptPropertyPlaceholderSource; import org.apache.camel.main.download.SagaDownloader; -import org.apache.camel.main.download.StubBeanRepository; import org.apache.camel.main.download.StubComponentAutowireStrategy; import org.apache.camel.main.download.TransactedDownloader; import org.apache.camel.main.download.TypeConverterLoaderDownloadListener; @@ -81,6 +80,7 @@ import org.apache.camel.main.injection.AnnotationDependencyInjection; import org.apache.camel.main.reload.OpenApiGeneratorReloadStrategy; import org.apache.camel.main.stub.BeanStubReifier; import org.apache.camel.main.stub.KameletStubReifier; +import org.apache.camel.main.stub.StubBeanRepository; import org.apache.camel.main.util.ClipboardReloadStrategy; import org.apache.camel.main.util.ExtraClassesClassLoader; import org.apache.camel.main.util.ExtraFilesClassLoader; diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/pom.xml index 82338ad07ae7..72884bc8cf92 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/pom.xml +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/pom.xml @@ -44,7 +44,7 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-core-engine</artifactId> + <artifactId>camel-kamelet-main-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/CamelYamlParser.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/CamelYamlParser.java index 9ebca9b460b1..de355b21ef70 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/CamelYamlParser.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/CamelYamlParser.java @@ -25,12 +25,13 @@ import com.networknt.schema.ValidationMessage; import org.apache.camel.CamelContext; import org.apache.camel.component.stub.StubComponent; import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader; -import org.apache.camel.dsl.yaml.validator.stub.StubBeanRepository; -import org.apache.camel.dsl.yaml.validator.stub.StubDataFormat; -import org.apache.camel.dsl.yaml.validator.stub.StubLanguage; -import org.apache.camel.dsl.yaml.validator.stub.StubReifier; -import org.apache.camel.dsl.yaml.validator.stub.StubTransformer; import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.main.stub.BeanStubReifier; +import org.apache.camel.main.stub.KameletStubReifier; +import org.apache.camel.main.stub.StubBeanRepository; +import org.apache.camel.main.stub.StubDataFormat; +import org.apache.camel.main.stub.StubLanguage; +import org.apache.camel.main.stub.StubTransformer; import org.apache.camel.spi.ComponentResolver; import org.apache.camel.spi.DataFormatResolver; import org.apache.camel.spi.LanguageResolver; @@ -51,7 +52,7 @@ public class CamelYamlParser { CamelContext camelContext = null; try { DefaultRegistry registry = new DefaultRegistry(); - registry.addBeanRepository(new StubBeanRepository()); + registry.addBeanRepository(new StubBeanRepository("*")); camelContext = new DefaultCamelContext(registry); camelContext.setAutoStartup(false); @@ -65,16 +66,16 @@ public class CamelYamlParser { (name, context) -> new StubTransformer()); camelContext.start(); - StubReifier.registerStubReifiers(); - - YamlRoutesBuilderLoader loader = new YamlRoutesBuilderLoader(); - loader.setCamelContext(camelContext); - loader.start(); - - var rb = loader.doLoadRouteBuilder(ResourceHelper.fromString(file.getName(), Files.readString(file.toPath()))); - camelContext.addRoutes(rb); - return Collections.emptyList(); + BeanStubReifier.registerStubBeanReifiers(); + KameletStubReifier.registerStubKameletReifiers(camelContext); + try (YamlRoutesBuilderLoader loader = new YamlRoutesBuilderLoader()) { + loader.setCamelContext(camelContext); + loader.start(); + var rb = loader.doLoadRouteBuilder(ResourceHelper.fromString(file.getName(), Files.readString(file.toPath()))); + camelContext.addRoutes(rb); + return Collections.emptyList(); + } } catch (Exception e) { ValidationMessage vm = ValidationMessage.builder().type("parser") .messageSupplier(() -> e.getClass().getName() + ": " + e.getMessage()).build(); diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubBeanRepository.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubBeanRepository.java deleted file mode 100644 index f0da5e33b941..000000000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubBeanRepository.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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.dsl.yaml.validator.stub; - -import java.util.Collections; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import org.apache.camel.AggregationStrategy; -import org.apache.camel.Processor; -import org.apache.camel.processor.DefaultClaimCheckRepository; -import org.apache.camel.processor.DisabledProcessor; -import org.apache.camel.processor.aggregate.AggregateController; -import org.apache.camel.processor.aggregate.DefaultAggregateController; -import org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy; -import org.apache.camel.processor.aggregate.MemoryAggregationRepository; -import org.apache.camel.processor.loadbalancer.LoadBalancer; -import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer; -import org.apache.camel.saga.CamelSagaService; -import org.apache.camel.saga.InMemorySagaService; -import org.apache.camel.spi.AggregationRepository; -import org.apache.camel.spi.BeanRepository; -import org.apache.camel.spi.ClaimCheckRepository; -import org.apache.camel.spi.IdempotentRepository; -import org.apache.camel.spi.StateRepository; -import org.apache.camel.support.processor.idempotent.MemoryIdempotentRepository; -import org.apache.camel.support.processor.state.MemoryStateRepository; - -public class StubBeanRepository implements BeanRepository { - - @Override - public Object lookupByName(String name) { - return null; - } - - @Override - public <T> T lookupByNameAndType(String name, Class<T> type) { - return stubType(type); - } - - @Override - public <T> Map<String, T> findByTypeWithName(Class<T> type) { - T answer = stubType(type); - if (answer != null) { - // generate dummy name - String name = UUID.randomUUID().toString(); - return Map.of(name, answer); - } - return Collections.EMPTY_MAP; - } - - @Override - public <T> Set<T> findByType(Class<T> type) { - T answer = stubType(type); - if (answer != null) { - return Set.of(answer); - } - return Collections.EMPTY_SET; - } - - private <T> T stubType(Class<T> type) { - // add repositories and other stuff we need to stub out, so they run noop/in-memory only - // and do not start live connections to databases or other services - if (IdempotentRepository.class.isAssignableFrom(type)) { - return (T) new MemoryIdempotentRepository(); - } - if (AggregationRepository.class.isAssignableFrom(type)) { - return (T) new MemoryAggregationRepository(); - } - if (ClaimCheckRepository.class.isAssignableFrom(type)) { - return (T) new DefaultClaimCheckRepository(); - } - if (StateRepository.class.isAssignableFrom(type)) { - return (T) new MemoryStateRepository(); - } - if (AggregationStrategy.class.isAssignableFrom(type)) { - return (T) new GroupedBodyAggregationStrategy(); - } - if (AggregateController.class.isAssignableFrom(type)) { - return (T) new DefaultAggregateController(); - } - if (CamelSagaService.class.isAssignableFrom(type)) { - return (T) new InMemorySagaService(); - } - if (LoadBalancer.class.isAssignableFrom(type)) { - return (T) new RoundRobinLoadBalancer(); - } - if (Processor.class.isAssignableFrom(type)) { - return (T) new DisabledProcessor(); - } - return null; - } -} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubDataFormat.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubDataFormat.java deleted file mode 100644 index b2669127c675..000000000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubDataFormat.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.dsl.yaml.validator.stub; - -import java.io.InputStream; -import java.io.OutputStream; - -import org.apache.camel.Exchange; -import org.apache.camel.spi.DataFormat; -import org.apache.camel.spi.PropertyConfigurer; -import org.apache.camel.spi.PropertyConfigurerAware; -import org.apache.camel.support.service.ServiceSupport; - -/** - * A data format that does nothing - */ -public class StubDataFormat extends ServiceSupport implements DataFormat, PropertyConfigurerAware { - - @Override - public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception { - // noop - } - - @Override - public Object unmarshal(Exchange exchange, InputStream stream) throws Exception { - return null; - } - - @Override - public PropertyConfigurer getPropertyConfigurer(Object instance) { - // dummy configurer tha does nothing - return (camelContext, target, name, value, ignoreCase) -> true; - } -} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubLanguage.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubLanguage.java deleted file mode 100644 index c7f36aaab382..000000000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubLanguage.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.dsl.yaml.validator.stub; - -import org.apache.camel.Expression; -import org.apache.camel.Predicate; -import org.apache.camel.builder.ExpressionBuilder; -import org.apache.camel.builder.PredicateBuilder; -import org.apache.camel.spi.Language; -import org.apache.camel.support.service.ServiceSupport; - -/** - * A language that does nothing - */ -public class StubLanguage extends ServiceSupport implements Language { - - @Override - public Predicate createPredicate(String expression) { - return PredicateBuilder.constant(true); - } - - @Override - public Expression createExpression(String expression) { - return ExpressionBuilder.constantExpression(expression); - } -} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubReifier.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubReifier.java deleted file mode 100644 index e8ebc1d50fbe..000000000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubReifier.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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.dsl.yaml.validator.stub; - -import org.apache.camel.Expression; -import org.apache.camel.Predicate; -import org.apache.camel.Processor; -import org.apache.camel.builder.ExpressionBuilder; -import org.apache.camel.builder.PredicateBuilder; -import org.apache.camel.model.BeanDefinition; -import org.apache.camel.model.CircuitBreakerDefinition; -import org.apache.camel.model.SagaDefinition; -import org.apache.camel.model.language.MethodCallExpression; -import org.apache.camel.processor.DisabledProcessor; -import org.apache.camel.reifier.ProcessorReifier; -import org.apache.camel.reifier.language.ExpressionReifier; - -public class StubReifier { - - private StubReifier() { - } - - public static void registerStubReifiers() { - ExpressionReifier.registerReifier(MethodCallExpression.class, (camelContext, expressionDefinition) -> { - if (expressionDefinition instanceof MethodCallExpression) { - return new ExpressionReifier<>(camelContext, expressionDefinition) { - @Override - public Expression createExpression() { - return ExpressionBuilder.constantExpression(null); - } - - @Override - public Predicate createPredicate() { - return PredicateBuilder.constant(true); - } - }; - } - return null; - }); - ProcessorReifier.registerReifier(BeanDefinition.class, - (route, processorDefinition) -> { - if (processorDefinition instanceof BeanDefinition bd) { - return new ProcessorReifier<>(route, bd) { - @Override - public Processor createProcessor() throws Exception { - return new DisabledProcessor(); - } - }; - } - return null; - }); - ProcessorReifier.registerReifier(CircuitBreakerDefinition.class, - (route, processorDefinition) -> { - if (processorDefinition instanceof CircuitBreakerDefinition cb) { - return new ProcessorReifier<>(route, cb) { - @Override - public Processor createProcessor() throws Exception { - return new DisabledProcessor(); - } - }; - } - return null; - }); - ProcessorReifier.registerReifier(SagaDefinition.class, - (route, processorDefinition) -> { - if (processorDefinition instanceof SagaDefinition sd) { - return new ProcessorReifier<>(route, sd) { - @Override - public Processor createProcessor() throws Exception { - return new DisabledProcessor(); - } - }; - } - return null; - }); - } - -} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubTransformer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubTransformer.java deleted file mode 100644 index c36447a1f5f2..000000000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/stub/StubTransformer.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.dsl.yaml.validator.stub; - -import org.apache.camel.Message; -import org.apache.camel.spi.DataType; -import org.apache.camel.spi.Transformer; - -/** - * A transformer that does nothing - */ -public class StubTransformer extends Transformer { - - @Override - public void transform(Message message, DataType from, DataType to) throws Exception { - // noop - } -} diff --git a/dsl/pom.xml b/dsl/pom.xml index 76a1a2283fb6..7eba12b97d5d 100644 --- a/dsl/pom.xml +++ b/dsl/pom.xml @@ -51,6 +51,7 @@ <module>camel-xml-jaxb-dsl</module> <module>camel-xml-jaxb-dsl-test</module> <module>camel-yaml-dsl</module> + <module>camel-kamelet-main-support</module> <module>camel-kamelet-main</module> <module>camel-jbang</module> </modules> diff --git a/parent/pom.xml b/parent/pom.xml index 1cb9bf295362..d9033cccdc25 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3055,6 +3055,11 @@ <artifactId>camel-kamelet-main</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-kamelet-main-support</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-xml-io-dsl</artifactId>
