This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch new46 in repository https://gitbox.apache.org/repos/asf/camel-website.git
commit 6d5b6eb4fd8f50fc67474a54c65c788a362ef9ec Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon May 6 10:42:39 2024 +0200 Whats new 4.6 blog WIP --- content/blog/2024/05/camel46-whatsnew/index.md | 60 +++++++++++++++++++++----- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/content/blog/2024/05/camel46-whatsnew/index.md b/content/blog/2024/05/camel46-whatsnew/index.md index f55bf5ad..aeea5314 100644 --- a/content/blog/2024/05/camel46-whatsnew/index.md +++ b/content/blog/2024/05/camel46-whatsnew/index.md @@ -10,22 +10,40 @@ Apache Camel 4.6 has just been [released](/blog/2024/05/RELEASE-4.6.0/). This release introduces a set of new features and noticeable improvements that we will cover in this blog post. -## Camel Core +## Camel JBang -TODO: +We fixed some issues using Camel JBang with Windows, but we would still like more feedback from Windows users. -## Camel Main +Camel JBang is __primary__ intended to be Camel standalone only. However, we added +support for running with Spring Boot or Quarkus directly. -TODO: +You use the `--runtime` option to specify which platform to use, as shown below: -## Camel JBang + $ camel run foo.camel.yaml --runtime=spring-boot -We fixed some issues using Camel JBang with Windows, but we would still like more feedback from Windows users. +And for Quarkus: + + $ camel run foo.camel.yaml --runtime=quarkus + +There are several limitations, one would be that Spring Boot and Quarkus cannot automatically detect new components and download JARs. +(you can stop and run again to update dependencies). + +You can now also configure logging levels per package name in `application.properties` as shown below: + + logging.level.org.apache.kafka = DEBUG + logging.level.com.foo.something = TRACE + +You can also do this using Quarkus _style_: -TODO: Run with runtime -TODO: logging level in application.properties -TODO: datasource spring-boot style + quarkus.log.category."org.apache.kafka".level = DEBUG + quarkus.log.category."com.foo.something".level = TRACE +And we also made it possible to define JDBC `DataSource` using Spring Boot _style_ directly in `application.properties` as follows: + + spring.datasource.url= jdbc:sqlserver://db.example.net:1433;databaseName=test_db + spring.datasource.username=user + spring.datasource.password=password + spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver ## DSL @@ -36,7 +54,28 @@ Added `setVariables` EIP to make it possible to set multiple variables from a si ## Rest DSL with contract first -TODO: +The Rest DSL has been improved with a _contract first_ approach using vanilla OpenAPI specification. + +The _contract first_ approach requires you to have an existing OpenAPI v3 specification file. +This contract is a standard OpenAPI contract, and you can use any existing API design tool to build such contracts. + +This makes it super easy to define Rest DSL in Camel from an existing OpenAPI specification file, all you do +is to declare this small piece of Rest DSL code: + +For example in Java DSL: + + public void configure() throws Exception { + rest().openApi("petstore-v3.json"); + } + +The `petstore-v3.json` is the OpenAPI specification file, and Camel will automatically parse and map each API endpoint +to a Camel route with the `direct:operationId` convention. + +During development of these API endpoints in Camel you can tell Camel to ignore missing routes, so you can build, run, and test +this one API at a time. + +Here is an example for Camel Spring Boot: https://github.com/apache/camel-spring-boot-examples/tree/main/openapi-contract-first +And here is an example for YAML DSL with JBang: https://github.com/apache/camel-kamelets-examples/tree/main/jbang/open-api-contract-first ## Miscellaneous @@ -56,7 +95,6 @@ The `@PropertyInject` can inject as an array/list type where the string value is Camel Spring Boot has been upgraded to Spring Boot 3.2.5. - ## New Components This release only brings two new components: