CAMEL-13150: Add command "exchangeProperty" for dateExpression in ExpressionBuilder (#2741)

diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
index bab24bc..7d157ac 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
@@ -1949,7 +1949,7 @@
                     if (date == null) {
                         throw new IllegalArgumentException("Cannot find java.util.Date object at command: " + command);
                     }
-                } else if (command.startsWith("property.")) {
+                } else if (command.startsWith("property.") || command.startsWith("exchangeProperty.")) {
                     String key = command.substring(command.lastIndexOf('.') + 1);
                     date = exchange.getProperty(key, Date.class);
                     if (date == null) {
diff --git a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
index 71ccc22..3ba5fb6 100644
--- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
+++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
@@ -528,6 +528,10 @@
         assertExpression("date:property.birthday:yyyyMMdd", "19760622");
         assertExpression("date:property.birthday+24h:yyyyMMdd", "19760623");
 
+        assertExpression("date:exchangeProperty.birthday", propertyCalendar.getTime());
+        assertExpression("date:exchangeProperty.birthday:yyyyMMdd", "19760622");
+        assertExpression("date:exchangeProperty.birthday+24h:yyyyMMdd", "19760623");
+
         try {
             assertExpression("date:yyyyMMdd", "19740420");
             fail("Should thrown an exception");