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

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

commit 760341c79eb8a0ccc881ad3d53a5518622d12b18
Author: Torsten Mielke <[email protected]>
AuthorDate: Fri Jun 12 13:33:05 2026 +0200

    CAMEL-23481: replace retired Apache Derby with H2 in camel-example
    repository
    
    Apache Derby is a retired Apache project.
    This commit migrates the jdbc/ and aggregate-dist/ examples
    to use H2 Database for long-term maintainability.
    
    Changes:
    - Replace Derby dependencies (derby, derbytools) with H2 in pom.xml
    - Update Spring embedded database configuration from DERBY to H2
    - Rename create-derby.sql to create-h2.sql in jdbc/ example
    - Update identity column syntax from Derby's GENERATED ALWAYS AS IDENTITY
      to H2's simpler AUTO_INCREMENT syntax
    - All standard SQL (VARCHAR, TIMESTAMP, parameterized queries) works
      identically with no code changes required
    
    Unit tests for both demos pass.
    
    Made with help from AI tools.
---
 aggregate-dist/pom.xml                                       |  6 +++---
 .../src/main/java/org/apache/camel/example/Application.java  |  4 ++--
 jdbc/pom.xml                                                 | 12 ++++--------
 jdbc/src/main/resources/META-INF/spring/camel-context.xml    |  4 ++--
 jdbc/src/main/resources/{create-derby.sql => create-h2.sql}  |  4 ++--
 5 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/aggregate-dist/pom.xml b/aggregate-dist/pom.xml
index 8a5f56a6..750e3cd7 100644
--- a/aggregate-dist/pom.xml
+++ b/aggregate-dist/pom.xml
@@ -79,9 +79,9 @@
             <artifactId>camel-sql</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <version>${derby-version}</version>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>${h2-version}</version>
         </dependency>
 
         <!-- logging -->
diff --git 
a/aggregate-dist/src/main/java/org/apache/camel/example/Application.java 
b/aggregate-dist/src/main/java/org/apache/camel/example/Application.java
index d090bfef..47d8ad40 100644
--- a/aggregate-dist/src/main/java/org/apache/camel/example/Application.java
+++ b/aggregate-dist/src/main/java/org/apache/camel/example/Application.java
@@ -56,7 +56,7 @@ public final class Application {
     private static final int END = 100;
 
     private static final String CID_HEADER = "corrId";
-    private static final String DB_URL = 
"jdbc:derby:target/testdb;create=true";
+    private static final String DB_URL = "jdbc:h2:file:./target/testdb";
     private static final String DB_USER = "admin";
     private static final String DB_PASS = "admin";
 
@@ -153,7 +153,7 @@ public final class Application {
                             + "version bigint not null"
                             + ")");
         } catch (SQLException e) {
-            if (!e.getMessage().contains("already exists")) {
+            if (!e.getMessage().toLowerCase().contains("already exist")) {
                 LOG.error("Database initialization failure", e);
             }
         }
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index c127de4a..41ff4a44 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -35,6 +35,7 @@
     <properties>
         <category>Database</category>
         <title>JDBC</title>
+        <h2-version>2.2.224</h2-version>
     </properties>
 
     <dependencyManagement>
@@ -77,14 +78,9 @@
 
         <!-- jdbc -->
         <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derbytools</artifactId>
-            <version>${derby-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <version>${derby-version}</version>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>${h2-version}</version>
         </dependency>
 
         <!-- logging -->
diff --git a/jdbc/src/main/resources/META-INF/spring/camel-context.xml 
b/jdbc/src/main/resources/META-INF/spring/camel-context.xml
index 35a537b8..15c740cd 100644
--- a/jdbc/src/main/resources/META-INF/spring/camel-context.xml
+++ b/jdbc/src/main/resources/META-INF/spring/camel-context.xml
@@ -29,8 +29,8 @@
   <!--
   Embedded in-memory database setup.
   -->
-  <jdbc:embedded-database id="dataSource" type="DERBY">
-    <jdbc:script location="classpath:create-derby.sql"/>
+  <jdbc:embedded-database id="dataSource" type="H2">
+    <jdbc:script location="classpath:create-h2.sql"/>
   </jdbc:embedded-database>
 
   <!--
diff --git a/jdbc/src/main/resources/create-derby.sql 
b/jdbc/src/main/resources/create-h2.sql
similarity index 94%
rename from jdbc/src/main/resources/create-derby.sql
rename to jdbc/src/main/resources/create-h2.sql
index 4f00aefc..930bf497 100644
--- a/jdbc/src/main/resources/create-derby.sql
+++ b/jdbc/src/main/resources/create-h2.sql
@@ -34,8 +34,8 @@
 /*
 STATUS : 'NEW', 'DONE'
 */
-CREATE TABLE CAMEL_TEST ( 
-  ID BIGINT GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
+CREATE TABLE CAMEL_TEST (
+  ID BIGINT AUTO_INCREMENT,
   MSG VARCHAR(10240),
   STATUS CHAR(4) DEFAULT 'NEW',
   CREATE_TS TIMESTAMP DEFAULT CURRENT_TIMESTAMP

Reply via email to