This is an automated email from the ASF dual-hosted git repository. jiriondrusek pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 365997ddce499a34ea50a7b540163fa8f25f8855 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Wed Mar 6 14:56:22 2024 +0000 Upgrade Camel to 4.5.0 --- .../catalog/quarkus/QuarkusRuntimeProvider.java | 21 +++++++++++++++ .../quarkus/QuarkusRuntimeProviderTest.java | 10 +++++++ docs/antora.yml | 2 +- .../examples/components/azure-storage-datalake.yml | 4 +-- docs/modules/ROOT/examples/components/jslt.yml | 2 +- .../ROOT/examples/components/rest-openapi.yml | 2 +- .../ROOT/examples/components/splunk-hec.yml | 2 +- .../ROOT/examples/components/spring-rabbitmq.yml | 2 +- docs/modules/ROOT/examples/components/stomp.yml | 2 +- docs/modules/ROOT/examples/components/telegram.yml | 2 +- .../modules/ROOT/examples/components/wordpress.yml | 4 +-- .../extensions/azure-storage-datalake.adoc | 2 +- .../pages/reference/extensions/rest-openapi.adoc | 4 +-- .../ROOT/pages/reference/extensions/telegram.adoc | 4 +-- .../ROOT/pages/reference/extensions/wordpress.adoc | 2 +- .../catalog/BuildTimeJsonSchemaResolver.java | 5 ++++ .../core/deployment/catalog/SchemaResource.java | 2 +- .../camel/quarkus/core/CamelContextRecorder.java | 4 --- .../camel/quarkus/core/FastCamelContext.java | 11 +++++--- extensions-jvm/azure-cosmosdb/deployment/pom.xml | 4 +++ extensions-jvm/azure-cosmosdb/runtime/pom.xml | 4 +++ .../language/deployment/dm/DryModeMain.java | 2 +- .../org/apache/camel/component/qute/qute.json | 0 .../camel/quarkus/component/avro/it/AvroRoute.java | 11 ++++---- .../apache/camel/quarkus/js/JavaScriptDslTest.java | 2 +- .../camel/quarkus/main/CoreMainXmlJaxbTest.java | 1 - integration-tests/ssh/pom.xml | 2 ++ .../camel/quarkus/component/ssh/it/SshIT.java | 2 ++ .../camel/quarkus/component/ssh/it/SshTest.java | 2 ++ .../component/velocity/it/VelocityTest.java | 6 ++--- pom.xml | 20 +++++++------- .../org/apache/camel/quarkus/maven/CqCatalog.java | 31 +++++++++++++++++++++- .../org/apache/camel/quarkus/maven/CqUtils.java | 2 ++ .../quarkus/maven/PrepareCatalogQuarkusMojo.java | 3 +++ .../quarkus/maven/UpdateExtensionDocPageMojo.java | 2 ++ 35 files changed, 133 insertions(+), 48 deletions(-) diff --git a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java index d8a72bfada..ab9f6fabdb 100644 --- a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java +++ b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java @@ -35,10 +35,12 @@ public class QuarkusRuntimeProvider implements RuntimeProvider { private static final String COMPONENT_DIR = "org/apache/camel/catalog/quarkus/components"; private static final String DATAFORMAT_DIR = "org/apache/camel/catalog/quarkus/dataformats"; private static final String LANGUAGE_DIR = "org/apache/camel/catalog/quarkus/languages"; + private static final String TRANSFORMER_DIR = "org/apache/camel/catalog/quarkus/transformers"; private static final String OTHER_DIR = "org/apache/camel/catalog/quarkus/others"; private static final String COMPONENTS_CATALOG = "org/apache/camel/catalog/quarkus/components.properties"; private static final String DATA_FORMATS_CATALOG = "org/apache/camel/catalog/quarkus/dataformats.properties"; private static final String LANGUAGE_CATALOG = "org/apache/camel/catalog/quarkus/languages.properties"; + private static final String TRANSFORMER_CATALOG = "org/apache/camel/catalog/quarkus/transformers.properties"; private static final String OTHER_CATALOG = "org/apache/camel/catalog/quarkus/others.properties"; private CamelCatalog camelCatalog; @@ -83,6 +85,11 @@ public class QuarkusRuntimeProvider implements RuntimeProvider { return LANGUAGE_DIR; } + @Override + public String getTransformerJSonSchemaDirectory() { + return TRANSFORMER_DIR; + } + @Override public String getOtherJSonSchemaDirectory() { return OTHER_DIR; @@ -130,6 +137,20 @@ public class QuarkusRuntimeProvider implements RuntimeProvider { return names; } + @Override + public List<String> findTransformerNames() { + List<String> names = new ArrayList<>(); + InputStream is = camelCatalog.getVersionManager().getResourceAsStream(TRANSFORMER_CATALOG); + if (is != null) { + try { + CatalogHelper.loadLines(is, names); + } catch (IOException e) { + // ignore + } + } + return names; + } + @Override public List<String> findOtherNames() { List<String> names = new ArrayList<>(); diff --git a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java index 20c0b3a9de..e3adf83bc6 100644 --- a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java +++ b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java @@ -183,6 +183,16 @@ public class QuarkusRuntimeProviderTest { assertFalse(names.contains("blueprint")); } + @Test + public void testFindTransformers() throws Exception { + List<String> names = catalog.findTransformerNames(); + + assertNotNull(names); + assertFalse(names.isEmpty()); + + assertTrue(names.contains("azure-storage-blob:application-cloudevents")); + } + @Test public void testComponentArtifactId() throws Exception { String json = catalog.componentJSonSchema("salesforce"); diff --git a/docs/antora.yml b/docs/antora.yml index f62a00e75b..68cfa8c374 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -28,7 +28,7 @@ asciidoc: requires: "'util=camel-website-util,quarkus=xref:js/quarkus.js'" # Project versions - camel-version: 4.4.0 # replace ${camel.version} + camel-version: 4.5.0-SNAPSHOT # replace ${camel.version} camel-docs-version: 4.4.x camel-quarkus-version: 3.9.0 # replace ${camel-quarkus.version} quarkus-version: 3.9.0.CR1 # replace ${quarkus.version} diff --git a/docs/modules/ROOT/examples/components/azure-storage-datalake.yml b/docs/modules/ROOT/examples/components/azure-storage-datalake.yml index a768d9902f..3f3b7e17f6 100644 --- a/docs/modules/ROOT/examples/components/azure-storage-datalake.yml +++ b/docs/modules/ROOT/examples/components/azure-storage-datalake.yml @@ -8,6 +8,6 @@ cqDeprecated: false cqJvmSince: 1.8.0 cqNativeSince: n/a cqCamelPartName: azure-storage-datalake -cqCamelPartTitle: Azure Storage Datalake Service -cqCamelPartDescription: Sends and receives files to/from Azure DataLake Storage. +cqCamelPartTitle: Azure Storage Data Lake Service +cqCamelPartDescription: Sends and receives files to/from Azure Data Lake Storage. cqExtensionPageTitle: Azure storage datalake service diff --git a/docs/modules/ROOT/examples/components/jslt.yml b/docs/modules/ROOT/examples/components/jslt.yml index 6ad75f8679..e634e8c31e 100644 --- a/docs/modules/ROOT/examples/components/jslt.yml +++ b/docs/modules/ROOT/examples/components/jslt.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.1.0 cqNativeSince: 1.4.0 cqCamelPartName: jslt cqCamelPartTitle: JSLT -cqCamelPartDescription: Query or transform JSON payloads using an JSLT. +cqCamelPartDescription: Query or transform JSON payloads using JSLT. cqExtensionPageTitle: JSLT diff --git a/docs/modules/ROOT/examples/components/rest-openapi.yml b/docs/modules/ROOT/examples/components/rest-openapi.yml index 55acac80df..5c4f1644e4 100644 --- a/docs/modules/ROOT/examples/components/rest-openapi.yml +++ b/docs/modules/ROOT/examples/components/rest-openapi.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.0.0 cqNativeSince: 1.0.0 cqCamelPartName: rest-openapi cqCamelPartTitle: REST OpenApi -cqCamelPartDescription: Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface. +cqCamelPartDescription: To call REST services using OpenAPI specification as contract. cqExtensionPageTitle: REST OpenApi diff --git a/docs/modules/ROOT/examples/components/splunk-hec.yml b/docs/modules/ROOT/examples/components/splunk-hec.yml index b0ef480575..ec1fcc5ff2 100644 --- a/docs/modules/ROOT/examples/components/splunk-hec.yml +++ b/docs/modules/ROOT/examples/components/splunk-hec.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.1.0 cqNativeSince: 3.8.0 cqCamelPartName: splunk-hec cqCamelPartTitle: Splunk HEC -cqCamelPartDescription: The splunk component allows to publish events in Splunk using the HTTP Event Collector. +cqCamelPartDescription: The splunk component allows publishing events in Splunk using the HTTP Event Collector. cqExtensionPageTitle: Splunk HEC diff --git a/docs/modules/ROOT/examples/components/spring-rabbitmq.yml b/docs/modules/ROOT/examples/components/spring-rabbitmq.yml index c8fff2a2ad..65186b3c8e 100644 --- a/docs/modules/ROOT/examples/components/spring-rabbitmq.yml +++ b/docs/modules/ROOT/examples/components/spring-rabbitmq.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.7.0 cqNativeSince: 1.7.0 cqCamelPartName: spring-rabbitmq cqCamelPartTitle: Spring RabbitMQ -cqCamelPartDescription: Send and receive messages from RabbitMQ using Spring RabbitMQ client. +cqCamelPartDescription: Send and receive messages from RabbitMQ using the Spring RabbitMQ client. cqExtensionPageTitle: Spring RabbitMQ diff --git a/docs/modules/ROOT/examples/components/stomp.yml b/docs/modules/ROOT/examples/components/stomp.yml index 9d08095055..d091383412 100644 --- a/docs/modules/ROOT/examples/components/stomp.yml +++ b/docs/modules/ROOT/examples/components/stomp.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.1.0 cqNativeSince: n/a cqCamelPartName: stomp cqCamelPartTitle: Stomp -cqCamelPartDescription: Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers. +cqCamelPartDescription: Send and receive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers. cqExtensionPageTitle: Stomp diff --git a/docs/modules/ROOT/examples/components/telegram.yml b/docs/modules/ROOT/examples/components/telegram.yml index 226f73a80a..3b245843f3 100644 --- a/docs/modules/ROOT/examples/components/telegram.yml +++ b/docs/modules/ROOT/examples/components/telegram.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.0.0 cqNativeSince: 1.0.0 cqCamelPartName: telegram cqCamelPartTitle: Telegram -cqCamelPartDescription: Send and receive messages acting as a Telegram Bot Telegram Bot API. +cqCamelPartDescription: Send and receive messages using the Telegram Bot API. cqExtensionPageTitle: Telegram diff --git a/docs/modules/ROOT/examples/components/wordpress.yml b/docs/modules/ROOT/examples/components/wordpress.yml index 18d205603c..a46f2b4e55 100644 --- a/docs/modules/ROOT/examples/components/wordpress.yml +++ b/docs/modules/ROOT/examples/components/wordpress.yml @@ -8,6 +8,6 @@ cqDeprecated: false cqJvmSince: 1.1.0 cqNativeSince: n/a cqCamelPartName: wordpress -cqCamelPartTitle: Wordpress -cqCamelPartDescription: Manage posts and users using Wordpress API. +cqCamelPartTitle: WordPress +cqCamelPartDescription: Manage posts and users using the WordPress API. cqExtensionPageTitle: Wordpress diff --git a/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc b/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc index 25f6dc3dec..7d612c28ea 100644 --- a/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc @@ -22,7 +22,7 @@ Camel Azure Datalake Gen2 Component [id="extensions-azure-storage-datalake-whats-inside"] == What's inside -* xref:{cq-camel-components}::azure-storage-datalake-component.adoc[Azure Storage Datalake Service component], URI syntax: `azure-storage-datalake:accountName/fileSystemName` +* xref:{cq-camel-components}::azure-storage-datalake-component.adoc[Azure Storage Data Lake Service component], URI syntax: `azure-storage-datalake:accountName/fileSystemName` Please refer to the above link for usage and configuration details. diff --git a/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc b/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc index 7c99cf29bc..050a8c9ebc 100644 --- a/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc @@ -8,7 +8,7 @@ :cq-native-supported: true :cq-status: Stable :cq-status-deprecation: Stable -:cq-description: Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface. +:cq-description: To call REST services using OpenAPI specification as contract. :cq-deprecated: false :cq-jvm-since: 1.0.0 :cq-native-since: 1.0.0 @@ -18,7 +18,7 @@ ifeval::[{doc-show-badges} == true] [.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## endif::[] -Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface. +To call REST services using OpenAPI specification as contract. [id="extensions-rest-openapi-whats-inside"] == What's inside diff --git a/docs/modules/ROOT/pages/reference/extensions/telegram.adoc b/docs/modules/ROOT/pages/reference/extensions/telegram.adoc index 036267c250..4a2c89f405 100644 --- a/docs/modules/ROOT/pages/reference/extensions/telegram.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/telegram.adoc @@ -8,7 +8,7 @@ :cq-native-supported: true :cq-status: Stable :cq-status-deprecation: Stable -:cq-description: Send and receive messages acting as a Telegram Bot Telegram Bot API. +:cq-description: Send and receive messages using the Telegram Bot API. :cq-deprecated: false :cq-jvm-since: 1.0.0 :cq-native-since: 1.0.0 @@ -18,7 +18,7 @@ ifeval::[{doc-show-badges} == true] [.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## endif::[] -Send and receive messages acting as a Telegram Bot Telegram Bot API. +Send and receive messages using the Telegram Bot API. [id="extensions-telegram-whats-inside"] == What's inside diff --git a/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc b/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc index bcaadbbff3..ae1f8d7eff 100644 --- a/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc @@ -22,7 +22,7 @@ Manage posts and users using Wordpress API. [id="extensions-wordpress-whats-inside"] == What's inside -* xref:{cq-camel-components}::wordpress-component.adoc[Wordpress component], URI syntax: `wordpress:operation` +* xref:{cq-camel-components}::wordpress-component.adoc[WordPress component], URI syntax: `wordpress:operation` Please refer to the above link for usage and configuration details. diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java index a1d69f5cd3..907941a605 100644 --- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java +++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java @@ -49,6 +49,11 @@ public class BuildTimeJsonSchemaResolver implements JSonSchemaResolver { return resolveJsonSchema("language", name); } + @Override + public String getTransformerJSonSchema(String name) { + throw new UnsupportedOperationException("Transformer JSON schema resolution is not supported"); + } + @Override public String getOtherJSonSchema(String name) { throw new UnsupportedOperationException("Other JSON schema resolution is not supported"); diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java index 05f6755b59..eaf7f89979 100644 --- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java +++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java @@ -58,7 +58,7 @@ public class SchemaResource { public String getLocation() { String packageName = className.prefix().toString(); - return packageName.replace('.', '/') + "/" + name + ".json"; + return "META-INF/" + packageName.replace('.', '/') + "/" + name + ".json"; } public String load() { diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java index 0ed013005c..1536533051 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java @@ -27,7 +27,6 @@ import org.apache.camel.CamelContext; import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RouteConfigurationsBuilder; import org.apache.camel.RoutesBuilder; -import org.apache.camel.TypeConverter; import org.apache.camel.builder.LambdaRouteBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; @@ -82,9 +81,6 @@ public class CamelContextRecorder { TypeConverterRegistry typeConverterRegistryValue = typeConverterRegistry.getValue(); typeConverterRegistryValue.setInjector(new FastTypeConverterInjector(context)); context.setTypeConverterRegistry(typeConverterRegistryValue); - if (typeConverterRegistryValue instanceof TypeConverter) { - context.setTypeConverter((TypeConverter) typeConverterRegistryValue); - } context.setLoadTypeConverters(false); extendedCamelContext.addContextPlugin(ModelJAXBContextFactory.class, contextFactory.getValue()); diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java index 654a02ee87..64ff4fe5e6 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java @@ -203,7 +203,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame if (instance != null) { clazz = instance.getClass(); } else { - clazz = getFactoryFinder(DefaultComponentResolver.RESOURCE_PATH).findClass(componentName).orElse(null); + clazz = getCamelContextExtension().getFactoryFinder(DefaultComponentResolver.RESOURCE_PATH).findClass(componentName) + .orElse(null); if (clazz == null) { instance = hasComponent(componentName); if (instance != null) { @@ -230,7 +231,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame if (instance != null) { clazz = instance.getClass(); } else { - clazz = getFactoryFinder(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH).findClass(dataFormatName).orElse(null); + clazz = getCamelContextExtension().getFactoryFinder(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH) + .findClass(dataFormatName).orElse(null); if (clazz == null) { return null; } @@ -247,7 +249,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame if (instance != null) { clazz = instance.getClass(); } else { - clazz = getFactoryFinder(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH).findClass(languageName).orElse(null); + clazz = getCamelContextExtension().getFactoryFinder(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH) + .findClass(languageName).orElse(null); if (clazz == null) { return null; } @@ -257,7 +260,7 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame } private String getJsonSchema(String packageName, String name) throws IOException { - String path = packageName.replace('.', '/') + "/" + name + ".json"; + String path = "META-INF/" + packageName.replace('.', '/') + "/" + name + ".json"; InputStream inputStream = getClassResolver().loadResourceAsStream(path); if (inputStream != null) { diff --git a/extensions-jvm/azure-cosmosdb/deployment/pom.xml b/extensions-jvm/azure-cosmosdb/deployment/pom.xml index eb99bd65dc..edca14f599 100644 --- a/extensions-jvm/azure-cosmosdb/deployment/pom.xml +++ b/extensions-jvm/azure-cosmosdb/deployment/pom.xml @@ -34,6 +34,10 @@ <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core-deployment</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-cloudevents-deployment</artifactId> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-support-azure-core-http-client-vertx-deployment</artifactId> diff --git a/extensions-jvm/azure-cosmosdb/runtime/pom.xml b/extensions-jvm/azure-cosmosdb/runtime/pom.xml index 30a3fb7b6f..2316b6b490 100644 --- a/extensions-jvm/azure-cosmosdb/runtime/pom.xml +++ b/extensions-jvm/azure-cosmosdb/runtime/pom.xml @@ -39,6 +39,10 @@ <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-cloudevents</artifactId> + </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-support-azure-core-http-client-vertx</artifactId> diff --git a/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java b/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java index 53bf5bab83..0aa0b61fef 100644 --- a/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java +++ b/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java @@ -51,7 +51,7 @@ public class DryModeMain extends MainSupport { @Override protected CamelContext createCamelContext() { DefaultCamelContext ctx = new DefaultCamelContext(false); - ctx.setName(getAppName()); + ctx.getCamelContextExtension().setName(getAppName()); ctx.setInjector(new DryModeInjector(ctx.getInjector())); ExtendedCamelContext extendedCamelContext = ctx.getCamelContextExtension(); diff --git a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json b/extensions/qute/component/src/generated/resources/META-INF/org/apache/camel/component/qute/qute.json similarity index 100% rename from extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json rename to extensions/qute/component/src/generated/resources/META-INF/org/apache/camel/component/qute/qute.json diff --git a/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java b/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java index 4fea75a697..b8c5793a32 100644 --- a/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java +++ b/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java @@ -20,6 +20,7 @@ import example.avro.Admin; import jakarta.enterprise.context.ApplicationScoped; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.dataformat.avro.AvroDataFormat; +import org.apache.camel.model.dataformat.AvroLibrary; import static org.apache.camel.quarkus.component.avro.it.AvroSchemaLoader.getSchema; @@ -29,15 +30,15 @@ public class AvroRoute extends RouteBuilder { @Override public void configure() { - from("direct:marshalUsingBuildTimeGeneratedClass").marshal().avro(Admin.class); - from("direct:unmarshalUsingBuildTimeGeneratedClass").unmarshal().avro(Admin.class); + from("direct:marshalUsingBuildTimeGeneratedClass").marshal().avro(AvroLibrary.ApacheAvro, Admin.class); + from("direct:unmarshalUsingBuildTimeGeneratedClass").unmarshal().avro(AvroLibrary.ApacheAvro, Admin.class); AvroDataFormat configureTimeAvroDataFormat = new AvroDataFormat(getSchema()); from("direct:marshalUsingConfigureTimeAvroDataFormat").marshal(configureTimeAvroDataFormat); from("direct:unmarshalUsingConfigureTimeAvroDataFormat").unmarshal(configureTimeAvroDataFormat); - from("direct:marshalUsingAvroDsl").marshal().avro(); - from("direct:unmarshalUsingInstanceClassNameAvroDsl").unmarshal().avro(Value.class.getName()); - from("direct:unmarshalUsingSchemaAvroDsl").unmarshal().avro(Value.SCHEMA$); + from("direct:marshalUsingAvroDsl").marshal().avro(AvroLibrary.ApacheAvro); + from("direct:unmarshalUsingInstanceClassNameAvroDsl").unmarshal().avro(AvroLibrary.ApacheAvro, Value.class.getName()); + from("direct:unmarshalUsingSchemaAvroDsl").unmarshal().avro(AvroLibrary.ApacheAvro, Value.SCHEMA$); } } diff --git a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java index 79734c42e5..9eef21e3ab 100644 --- a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java +++ b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java @@ -54,7 +54,7 @@ class JavaScriptDslTest { .then() .statusCode(200) .body(CoreMatchers.is( - "my-js-route,routes-with-component-configuration,routes-with-context-configuration,routes-with-endpoint-dsl,routes-with-modules,routes-with-processors-consumer,routes-with-processors-processor,routes-with-rest-configuration,routes-with-rest-configuration-goodbye,routes-with-rest-dsl,routes-with-rest-dsl-hello")); + "my-js-route,routes-with-component-configuration,routes-with-context-configuration,routes-with-endpoint-dsl,routes-with-modules,routes-with-processors-consumer,routes-with-processors-processor,routes-with-rest-configuration-goodbye,routes-with-rest-dsl-hello")); RestAssured.given() .get("/js-dsl/main/successful/routes") diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java index 2912d7499c..6838b5f3a4 100644 --- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java +++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java @@ -76,7 +76,6 @@ public class CoreMainXmlJaxbTest { private boolean logContainsDumpedRoutes(String log) { return log.contains("<route id=\"my-xml-route\">") && - log.contains("<route id=\"rest-route\">") && log.contains("<rest id=\"greet\" path=\"/greeting\">") && log.contains("<routeTemplate id=\"myTemplate\">"); } diff --git a/integration-tests/ssh/pom.xml b/integration-tests/ssh/pom.xml index 90bb55c3c3..524a81274c 100644 --- a/integration-tests/ssh/pom.xml +++ b/integration-tests/ssh/pom.xml @@ -71,6 +71,7 @@ <profiles> + <!-- TODO: https://github.com/apache/camel-quarkus/issues/5850 <profile> <id>native</id> <activation> @@ -98,6 +99,7 @@ </plugins> </build> </profile> + --> <profile> <id>virtualDependencies</id> <activation> diff --git a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java index 92af64875a..5ffdcc87ee 100644 --- a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java +++ b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java @@ -17,7 +17,9 @@ package org.apache.camel.quarkus.component.ssh.it; import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.junit.jupiter.api.Disabled; +@Disabled("https://github.com/apache/camel-quarkus/issues/5850") @QuarkusIntegrationTest class SshIT extends SshTest { diff --git a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java index 4681ee0a94..b1df19d4e7 100644 --- a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java +++ b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java @@ -20,10 +20,12 @@ import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; +@Disabled("https://github.com/apache/camel-quarkus/issues/5850") @QuarkusTest @QuarkusTestResource(SshTestResource.class) class SshTest { diff --git a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java index 1045de04c9..ba2ff7d8d8 100644 --- a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java +++ b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java @@ -52,7 +52,7 @@ class VelocityTest { RestAssured.given() .queryParam("name", "Sheldon") .queryParam("item", "Camel in Action") - .queryParam("template", "file:/" + template.getPath()) + .queryParam("template", "file://" + template.getPath()) .contentType(ContentType.TEXT) .body("PS: Next beer is on me") .post("/velocity/template") @@ -203,7 +203,7 @@ class VelocityTest { File template = createFile("velocity_test", "Hi ${body}"); RestAssured.given() - .queryParam("template", "file:/" + template.getPath()) + .queryParam("template", "file://" + template.getPath()) .queryParam("contentCache", useContentCache) .contentType(ContentType.TEXT) .body("Sheldon") @@ -216,7 +216,7 @@ class VelocityTest { Files.write(Paths.get(template.getPath()), "Bye ${body}".getBytes(StandardCharsets.UTF_8)); RestAssured.given() - .queryParam("template", "file:/" + template.getPath()) + .queryParam("template", "file://" + template.getPath()) .queryParam("contentCache", useContentCache) .contentType(ContentType.TEXT) .body("Sheldon") diff --git a/pom.xml b/pom.xml index c7663811cb..f828856841 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.camel</groupId> <artifactId>camel-dependencies</artifactId> - <version>4.4.0</version> + <version>4.5.0-SNAPSHOT</version> </parent> <groupId>org.apache.camel.quarkus</groupId> @@ -39,8 +39,8 @@ <properties> <!-- Primary dependencies - maintained manually --> - <camel.major.minor>4.4</camel.major.minor> <!-- run after each change: cd docs && mvnd validate --> - <camel.version>${camel.major.minor}.0</camel.version> + <camel.major.minor>4.5</camel.major.minor> <!-- run after each change: cd docs && mvnd validate --> + <camel.version>${camel.major.minor}.0-SNAPSHOT</camel.version> <camel.docs.components.version>${camel.major.minor}.x</camel.docs.components.version><!-- the version in Camel's docs/components/antora.yml --> <camel.docs.components.xref>${camel.docs.components.version}@components</camel.docs.components.xref><!-- the version in Camel's docs/components/antora.yml --> <camel.docs.branch>camel-${camel.major.minor}.x</camel.docs.branch><!-- The stable camel branch on which our Antora docs depends --> @@ -78,8 +78,8 @@ <assertj.version>3.25.3</assertj.version><!-- @sync io.quarkus:quarkus-build-parent:${quarkus.version} prop:assertj.version --> <aws-java-sdk.version>1.11.714</aws-java-sdk.version> <azure-sdk-bom.version>${azure-sdk-bom-version}</azure-sdk-bom.version> - <azure-core.version>1.45.1</azure-core.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-core --> - <azure-identity.version>1.11.1</azure-identity.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-identity --> + <azure-core.version>1.46.0</azure-core.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-core --> + <azure-identity.version>1.11.2</azure-identity.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-identity --> <azure-core-http-vertx.version>1.0.0-beta.3</azure-core-http-vertx.version> <!-- TODO: https://github.com/apache/camel-quarkus/issues/4181 --> <cassandra-driver-test.version>3.7.1</cassandra-driver-test.version><!-- Keep in sync with testcontainers instead of Debezium bom --> <bouncycastle.version>1.77</bouncycastle.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.bouncycastle:bcprov-jdk18on --> @@ -95,12 +95,12 @@ <freemarker.version>2.3.32</freemarker.version><!-- @sync io.quarkiverse.freemarker:quarkus-freemarker-parent:${quarkiverse-freemarker.version} prop:freemarker.version --> <geny.version>0.6.2</geny.version> <github-api.version>1.313</github-api.version><!-- Used in a Groovy script bellow --> - <google-auth-library.version>1.22.0</google-auth-library.version><!-- @sync com.google.cloud:google-cloud-pubsub:${google-cloud-pubsub.version} dep:com.google.auth:google-auth-library-oauth2-http --> + <google-auth-library.version>1.23.0</google-auth-library.version><!-- @sync com.google.cloud:google-cloud-pubsub:${google-cloud-pubsub.version} dep:com.google.auth:google-auth-library-oauth2-http --> <google-oauth-client.version>${google-oauth-client-version}</google-oauth-client.version> - <google-cloud-bom.version>0.212.0</google-cloud-bom.version><!-- @sync com.google.cloud:libraries-bom:${google-cloud-bom-version} dep:com.google.cloud:google-cloud-bom --> - <google-cloud-pubsub-bom.version>1.126.2</google-cloud-pubsub-bom.version><!-- @sync com.google.cloud:google-cloud-bom:${google-cloud-bom.version} dep:com.google.cloud:google-cloud-pubsub-bom --> - <google-cloud-pubsub.version>1.126.2</google-cloud-pubsub.version><!-- @sync com.google.cloud:google-cloud-pubsub-bom:${google-cloud-pubsub-bom.version} dep:com.google.cloud:google-cloud-pubsub --> - <graalvm.version>23.1.2</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.sdk:graal-sdk --> + <google-cloud-bom.version>0.214.0</google-cloud-bom.version><!-- @sync com.google.cloud:libraries-bom:${google-cloud-bom-version} dep:com.google.cloud:google-cloud-bom --> + <google-cloud-pubsub-bom.version>1.126.6</google-cloud-pubsub-bom.version><!-- @sync com.google.cloud:google-cloud-bom:${google-cloud-bom.version} dep:com.google.cloud:google-cloud-pubsub-bom --> + <google-cloud-pubsub.version>1.126.6</google-cloud-pubsub.version><!-- @sync com.google.cloud:google-cloud-pubsub-bom:${google-cloud-pubsub-bom.version} dep:com.google.cloud:google-cloud-pubsub --> + <graalvm.version>23.0.1</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.sdk:graal-sdk --> <graalvm-docs.version>jdk21</graalvm-docs.version><!-- @sync io.quarkus:quarkus-documentation:${quarkus.version} prop:graal-community.tag-for-documentation --> <groovy.version>4.0.18</groovy.version><!-- @sync io.quarkiverse.groovy:quarkus-groovy-parent:${quarkiverse-groovy.version} prop:groovy.version --> <grpc.version>1.62.2</grpc.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:io.grpc:grpc-core --> diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java index 18dc5392da..4091a17914 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java @@ -43,6 +43,7 @@ import org.apache.camel.tooling.model.DataFormatModel; import org.apache.camel.tooling.model.JsonMapper; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.OtherModel; +import org.apache.camel.tooling.model.TransformerModel; public class CqCatalog { @@ -181,7 +182,7 @@ public class CqCatalog { static void serialize(final Path catalogPath, ArtifactModel<?> model) { final Path out = catalogPath.resolve(model.getKind() + "s") - .resolve(model.getName() + ".json"); + .resolve(model.getName().replace(":", "-") + ".json"); try { Files.createDirectories(out.getParent()); } catch (IOException e) { @@ -198,6 +199,9 @@ public class CqCatalog { case dataformat: rawJson = JsonMapper.createParameterJsonSchema((DataFormatModel) model); break; + case transformer: + rawJson = JsonMapper.createParameterJsonSchema((TransformerModel) model); + break; case other: rawJson = JsonMapper.createJsonSchema((OtherModel) model); break; @@ -321,10 +325,12 @@ public class CqCatalog { private static final String COMPONENT_DIR = CQ_CATALOG_DIR + "/components"; private static final String DATAFORMAT_DIR = CQ_CATALOG_DIR + "/dataformats"; private static final String LANGUAGE_DIR = CQ_CATALOG_DIR + "/languages"; + private static final String TRANSFORMER_DIR = CQ_CATALOG_DIR + "/transformers"; private static final String OTHER_DIR = CQ_CATALOG_DIR + "/others"; private static final String COMPONENTS_CATALOG = CQ_CATALOG_DIR + "/components.properties"; private static final String DATA_FORMATS_CATALOG = CQ_CATALOG_DIR + "/dataformats.properties"; private static final String LANGUAGE_CATALOG = CQ_CATALOG_DIR + "/languages.properties"; + private static final String TRANSFORMER_CATALOG = CQ_CATALOG_DIR + "/transformers.properties"; private static final String OTHER_CATALOG = CQ_CATALOG_DIR + "/others.properties"; private CamelCatalog camelCatalog; @@ -373,6 +379,11 @@ public class CqCatalog { return LANGUAGE_DIR; } + @Override + public String getTransformerJSonSchemaDirectory() { + return TRANSFORMER_DIR; + } + @Override public String getOtherJSonSchemaDirectory() { return OTHER_DIR; @@ -390,6 +401,10 @@ public class CqCatalog { return LANGUAGE_CATALOG; } + protected String getTransformerCatalog() { + return TRANSFORMER_CATALOG; + } + protected String getOtherCatalog() { return OTHER_CATALOG; } @@ -436,6 +451,20 @@ public class CqCatalog { return names; } + @Override + public List<String> findTransformerNames() { + List<String> names = new ArrayList<>(); + InputStream is = getCamelCatalog().getVersionManager().getResourceAsStream(getTransformerCatalog()); + if (is != null) { + try { + CatalogHelper.loadLines(is, names); + } catch (IOException e) { + // ignore + } + } + return names; + } + @Override public List<String> findOtherNames() { List<String> names = new ArrayList<>(); diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java index da3c906b49..8512694874 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java @@ -179,6 +179,8 @@ public class CqUtils { return "data format"; case language: return "language"; + case transformer: + return "transformer"; case other: return "misc. component"; default: diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java index 056c10109f..4202644a5f 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java @@ -35,6 +35,7 @@ import org.apache.camel.tooling.model.DataFormatModel; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.OtherModel; import org.apache.camel.tooling.model.SupportLevel; +import org.apache.camel.tooling.model.TransformerModel; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Mojo; @@ -133,6 +134,8 @@ public class PrepareCatalogQuarkusMojo extends AbstractExtensionListMojo { model = new LanguageModel(); } else if (extKind == Kind.dataformat) { model = new DataFormatModel(); + } else if (extKind == Kind.transformer) { + model = new TransformerModel(); } else { model = new OtherModel(); } diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java index 36bd8aca48..36ba535db0 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java @@ -55,6 +55,7 @@ import org.apache.camel.quarkus.maven.processor.SectionIdPostProcessor; import org.apache.camel.tooling.model.ArtifactModel; import org.apache.camel.tooling.model.BaseModel; import org.apache.camel.tooling.model.ComponentModel; +import org.apache.camel.tooling.model.TransformerModel; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -111,6 +112,7 @@ public class UpdateExtensionDocPageMojo extends AbstractDocGeneratorMojo { templatesUriBase, encoding); final List<ArtifactModel<?>> models = catalog.filterModels(ext.getRuntimeArtifactIdBase()) + .filter(artifactModel -> !(artifactModel instanceof TransformerModel)) .filter(artifactModel -> !artifactModel.getArtifactId().equals("camel-management")) .filter(artifactModel -> !artifactModel.getArtifactId().equals("camel-yaml-io")) .sorted(BaseModel.compareTitle())