This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 2e13b578 Whats new 4.7 blog. WIP. (#1200)
2e13b578 is described below

commit 2e13b57882d9942239ebe1914be8e78cfb28a82c
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Jul 16 10:29:31 2024 +0200

    Whats new 4.7 blog. WIP. (#1200)
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Update index.md
    
    Added details about the changes on the camel-test component and the 
upgraded containers
    
    * Added details about the type converter changes
    
    * Whats new 4.7 blog. WIP.
    
    * Add update on camel-djl component
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    * Whats new 4.7 blog. WIP.
    
    ---------
    
    Co-authored-by: Otavio Rodolfo Piske <orpi...@users.noreply.github.com>
    Co-authored-by: Tadayoshi Sato <sato.tadayo...@gmail.com>
---
 content/blog/2024/07/camel47-whatsnew/featured.png | Bin 0 -> 243818 bytes
 content/blog/2024/07/camel47-whatsnew/index.md     | 194 +++++++++++++++++++++
 2 files changed, 194 insertions(+)

diff --git a/content/blog/2024/07/camel47-whatsnew/featured.png 
b/content/blog/2024/07/camel47-whatsnew/featured.png
new file mode 100644
index 00000000..a9a95d3b
Binary files /dev/null and b/content/blog/2024/07/camel47-whatsnew/featured.png 
differ
diff --git a/content/blog/2024/07/camel47-whatsnew/index.md 
b/content/blog/2024/07/camel47-whatsnew/index.md
new file mode 100644
index 00000000..d55e1dcc
--- /dev/null
+++ b/content/blog/2024/07/camel47-whatsnew/index.md
@@ -0,0 +1,194 @@
+---
+title: "Apache Camel 4.7 What's New"
+date: 2024-07-15
+authors: [davsclaus,gzurowski,orpiske,tadayosi]
+categories: ["Releases"]
+preview: Details of what we have done in the Camel 4.7 release.
+---
+
+Apache Camel 4.7 has just been [released](/blog/2024/07/RELEASE-4.7.0/).
+
+This release introduces a set of new features and noticeable improvements that 
we will cover in this blog post.
+
+## Camel Core
+
+The _route template_ has some fixes and improvements, such as that a full 
local copy
+of the template is created when creating routes from the template; this 
prevents _unforeseen side effects_
+when the same template is used later to create new routes.
+
+Cleaned up the collection of type convertion statistics, reducing the need for 
runtime checks and simplifying 
+the code.
+
+## Camel Management
+
+Added _remote_ performance counters to `CamelContext` and `Routes` which 
counts only
+messages that are received from an endpoint that is _remote_. In other words 
internal endpoints
+such as timers, cron, seda etc. are not being counted. This makes it quicker 
and easier
+to know how many messages Camel has processed received from external systems.
+
+For example suppose you have a small Camel integration with 2 routes: (timer 
and kafka).
+The timer is triggering every second, and kafka is _remote_ and thus will only 
trigger when a message is received from Kafka.
+
+If you use `camel-jbang` you can easily see this information as follows:
+
+```bash
+$ camel get
+  PID   NAME    CAMEL  PLATFORM        PROFILE  READY  STATUS   RELOAD  AGE   
ROUTE  MSG/S  TOTAL  FAIL  INFLIGHT  LAST  DELTA  SINCE-LAST
+ 42240  cheese  4.7.0  JBang v0.116.0  dev       1/1   Running       0  1m8s   
 2/2   1.01   1/65   0/0       0/0     0     -1     1s/1s/-
+```
+
+Here the _TOTAL_, _FAIL_, _INFLIGHT_ columns have been updated to show two 
numbers separated by slash.
+The number `1/65` means that there has been only 1 remote message, and 65 in 
total, so that means the internal timer has triggered 64 times.
+
+## Camel JBang
+
+Many bug fixes and improvements to make the overall use of this great tool 
much better.
+
+The `camel get bean` command shows your custom _beans_ from YAML and XML DSLs 
which makes
+it easy to see their configuration vs runtime properties, to ensure they are 
configured correctly.
+
+For example given the bean in the YAML DSL:
+
+```yaml
+- beans:
+    - name: DemoDatabase
+      type: "#class:org.apache.commons.dbcp2.BasicDataSource"
+      properties:
+        driverClassName: org.postgresql.Driver
+        username: "{{env:DEMO_DATASOURCE_USERNAME:scott}}"
+        password: "{{env:DEMO_DATASOURCE_PASSWORD:tiger}}"
+        url: "{{env:DEMO_DATASOURCE_URL:postgresql://localhost:5432}}"
+```
+
+Then `camel get bean --dsl` will output the beans with columns showing the 
configuration vs runtime value as follows:
+
+```bash
+$ camel get bean --dsl
+BEAN: DemoDatabase (#class:org.apache.commons.dbcp2.BasicDataSource):
+---------------------------------------------------------------------
+ PROPERTY         TYPE              CONFIGURATION                              
              VALUE
+ password         java.lang.String  {{env:DEMO_DATASOURCE_PASSWORD:tiger}}     
              tiger
+ driverClassName  java.lang.String  org.postgresql.Driver                      
              org.postgresql.Driver
+ url              java.lang.String  
{{env:DEMO_DATASOURCE_URL:postgresql://localhost:5432}}  
postgresql://localhost:5432
+ username         java.lang.String  {{env:DEMO_DATASOURCE_USERNAME:scott}}     
              mySpecialUser
+```
+
+Here we can learn that the password and url are using their default configured 
values.
+However, the username is `mySpecialUser` which is not the default value, and 
hence must be from the environment variable.
+
+Added `camel get rest` command to easily see all your rest endpoint and 
operations hosted in your Camel integrations.
+
+The `camel generate` command has been moved into its own plugin, which must be 
installed first to be usable.
+
+## Camel Tracing
+
+Added more trace decorators for more components. This gives more components 
specific metadata
+in the trace spans.
+
+Camel now also includes more fine-grained service and protocol details in 
traces and in general for components that connects to remote systems.
+For example connecting to databases and messaging systems, often requires 
using database drivers, connection pools, and other means, which
+are configured _outside_ Apache Camel. And as such Camel may not be able to 
display the actual host:port that is used for the connection.
+
+We have made an effort to let Camel detect this and attempt to gather such 
details for a set of known connection pools, database drivers, cloud providers, 
etc.
+
+And our beloved Camel JBang is able to easily show this information. For 
example running the Camel 1.0 example (17 years old) using ActiveMQ JMS broker 
will now present it as follows:
+
+```bash
+$ camel get route
+  PID   NAME            ID      FROM                     REMOTE  STATUS   AGE  
COVER  MSG/S  TOTAL  FAIL  INFLIGHT  MEAN  MIN  MAX  LAST  DELTA  SINCE-LAST
+ 75937  MyRouteBuilder  route1  activemq://test.MyQueue    x     Started  20s  
  0/1   0.00      0     0         0          0    0                    -/-/-
+ 75937  MyRouteBuilder  route2  file://test                x     Started  20s  
  0/1   0.00      0     0         0          0    0                    -/-/-
+```
+
+In the output above, we can see there are 2 routes, and that the first route 
is using the ActiveMQ component. However, we can not see the location of the 
broker
+but only that it's using the queue named `test.MyQueue`.
+
+In this new Camel 4.7 release, you can now execute the following command:
+
+```bash
+$ camel get service
+  PID   NAME            COMPONENT  DIR  ROUTE   PROTOCOL  SERVICE              
             TOTAL  ENDPOINT
+ 75937  MyRouteBuilder  activemq   in   route1  jms       
failover://tcp://localhost:61616      0  activemq://test.MyQueue
+```
+
+And as you can see from the output above, the `camel get service` shows what 
hostname and port is in use. In this example we run a local broker using Docker
+and hence why its `localhost:61616`. You can also see the direction from Camel 
point of view, meaning that Camel is receiving messages from the broker.
+If Camel is also sending messages to the broker, then the command will show 
more lines with direction out.
+
+And the `camel trace` command has also been enhanced to show this information 
when available.
+
+## Camel Tests
+
+We have started a multi-release effort to cleanup the base class used for 
testing. In this release
+we introduced a new set of classes for configuring test behavior, marked 
several APIs as deprecated, 
+split some of the responsibilities of the `CamelTestSupport` class. This 
change aims to make the 
+testing code more aligned with JUnit 5 features and provide a simpler 
interface for the users.
+
+## Miscellaneous
+
+The `camel-as2` has been made more robust and better support for using 
compression.
+
+Added `substring`, `replace` and `fromRouteId` functions to the simple 
language.
+
+When using custom beans in YAML and XML DSL then constructor parameters now 
support
+to lookup others beans.
+
+We have fixes older reported bugs, and at this time of writing there are 8 
known in JIRA.
+
+We have also fixed and made our CI based test suite more stable and only have 
a few flaky tests
+from time to time, across 4 different OS platforms.
+
+Upgraded many third-party dependencies to the latest releases at the time of 
release.
+
+Upgraded several containers used to test Camel.
+
+The `camel-spring-boot` is upgraded to latest Spring Boot 3.3.1 release.
+
+The `camel-djl` now supports a more comprehensive set of machine learning 
applications as follows and is ready for a wider variety of machine learning 
use cases:
+- `cv/image_classification`
+- `cv/object_detection`
+- `cv/semantic_segmentation`
+- `cv/instance_segmentation`
+- `cv/pose_estimation`
+- `cv/action_recognition`
+- `cv/word_recognition`
+- `cv/image_generation`
+- `cv/image_enhancement`
+- `nlp/fill_mask`
+- `nlp/question_answer`
+- `nlp/text_classification`
+- `nlp/sentiment_analysis`
+- `nlp/token_classification`
+- `nlp/word_embedding`
+- `nlp/text_generation`
+- `nlp/machine_translation`
+- `nlp/multiple_choice`
+- `nlp/text_embedding`
+- `audio`
+- `timeseries/forecasting`
+
+## New Components
+
+We have added a few new components:  
+
+- `camel-activemq6` - JMS component that are preset for ActiveMQ 6.x
+- `camel-smooks` -  EDI, XML, CSV, etc. based data transformation using Smooks
+- `camel-openapi-validator` - OpenAPI validator for Camel Rest DSL (using 
Atlassian Validator Client)
+
+## Upgrading
+
+Make sure to read the [upgrade guide](/manual/camel-4x-upgrade-guide-4_7.html) 
if you are upgrading from a previous Camel version.
+
+If you are upgrading from, for example, 4.4 to 4.7, then make sure to follow 
the upgrade guides for each release in-between, i.e.
+4.4 -> 4.5, 4.5 -> 4.6, and so forth.
+
+## Release Notes
+
+You can find more information about this release in the list of JIRA tickets 
resolved in the release:
+
+- [Release notes 4.7](/releases/release-4.7.0/)
+
+## Roadmap
+
+The following 4.8 release (LTS) is planned for Sep 2024.
+

Reply via email to