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

davsclaus pushed a commit to branch feature/CAMEL-23837-datasource-devconsole
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 1b9bb7a88920d3ab3e7b7412566cb52b75b32d14
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jun 27 20:44:33 2026 +0200

    chore: camel-jbang - make sql example built-in
    
    Co-Authored-By: Claude Opus 4.7 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 dsl/camel-jbang/camel-jbang-core/pom.xml           |  4 ++
 .../examples/camel-jbang-example-catalog.json      |  3 +-
 .../src/main/resources/examples/sql/README.md      | 71 ++++++++++++++++++++++
 .../resources/examples/sql/application.properties  |  4 ++
 .../src/main/resources/examples/sql/sql.camel.yaml | 41 +++++++++++++
 5 files changed, 121 insertions(+), 2 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/pom.xml 
b/dsl/camel-jbang/camel-jbang-core/pom.xml
index b6fc08ddf075..4f7849133372 100644
--- a/dsl/camel-jbang/camel-jbang-core/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-core/pom.xml
@@ -322,6 +322,10 @@
                                         <sync-example name="routes" 
file="application.properties"/>
                                         <sync-example name="routes" 
file="beans.yaml"/>
                                         <sync-example name="routes" 
file="routes.camel.yaml"/>
+                                        <!-- sql -->
+                                        <sync-example name="sql" 
file="README.md"/>
+                                        <sync-example name="sql" 
file="application.properties"/>
+                                        <sync-example name="sql" 
file="sql.camel.yaml"/>
                                         <!-- timer-log -->
                                         <sync-example name="timer-log" 
file="README.md"/>
                                         <sync-example name="timer-log" 
file="application.properties"/>
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
index e8c46e9d8e97..91941c4cdfa8 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
@@ -498,13 +498,12 @@
             "sql",
             "postgres"
         ],
-        "bundled": false,
+        "bundled": true,
         "requiresDocker": true,
         "hasCitrusTests": false,
         "files": [
             "README.md",
             "application.properties",
-            "compose.yaml",
             "sql.camel.yaml"
         ],
         "infraServices": [
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/README.md 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/README.md
new file mode 100644
index 000000000000..25d3afc86def
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/README.md
@@ -0,0 +1,71 @@
+## SQL
+
+This example shows how to use a SQL database with Camel.
+
+The example comes with a `docker compose` file for running a local Postgres 
database.
+There is also a `application.properties` configuration file that setup
+a JDBC `DataSource` for connecting to the database.
+
+### Install JBang
+
+First install JBang according to https://www.jbang.dev
+
+When JBang is installed then you should be able to run from a shell:
+
+```sh
+$ jbang --version
+```
+
+This will output the version of JBang.
+
+To run this example you can either install Camel on JBang via:
+
+```sh
+$ jbang app install camel@apache/camel
+```
+
+Which allows to run Camel CLI with `camel` as shown below.
+
+### How to run
+
+You can run PostgreSQL using
+
+```sh
+$ camel infra run postgres
+```
+
+Alternatively, you can run it with Docker Compose:
+
+```sh
+$ docker compose up
+```
+
+or manually with just Docker
+
+```sh
+$ docker run \
+--env POSTGRES_DB=test \
+--env POSTGRES_USER=postgres \
+--env POSTGRES_PASSWORD=postgres \
+--publish 5432:5432 \
+postgres
+```
+
+After Docker starts and pulls down the Postgres image, you can run this 
example using:
+
+```sh
+$ camel run *
+```
+
+This runs several routes. The first one sets up a new table called _users_, 
the second one fills
+it with data and the third one runs a query on that table and logs the results.
+
+### Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+[let us know](https://camel.apache.org/community/support/).
+
+We also love contributors, so
+[get involved](https://camel.apache.org/community/contributing/) :-)
+
+The Camel riders!
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/application.properties
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/application.properties
new file mode 100644
index 000000000000..2b4a090d93fa
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/application.properties
@@ -0,0 +1,4 @@
+spring.datasource.url=jdbc:postgresql://localhost:5432/test
+spring.datasource.username=test
+spring.datasource.password=test
+spring.datasource.driverClassName=org.postgresql.Driver
\ No newline at end of file
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/sql.camel.yaml
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/sql.camel.yaml
new file mode 100644
index 000000000000..e7a18a2ab2bf
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/sql.camel.yaml
@@ -0,0 +1,41 @@
+- route:
+    from:
+      uri: timer
+      parameters:
+        timerName: create
+        repeatCount: 1
+        delay: 500
+      steps:
+        - to:
+            uri: sql
+            parameters:
+              query: "CREATE TABLE IF NOT EXISTS users(id integer PRIMARY KEY, 
name\
+                \ varchar(20), byear integer);"
+- route:
+    from:
+      uri: timer
+      parameters:
+        timerName: insert
+        repeatCount: 1
+        delay: 1000
+      steps:
+        - to:
+            uri: sql
+            parameters:
+              query: "INSERT INTO users(id, name, byear) VALUES(1, 'Camel', 
2025)\
+                \ ON CONFLICT DO NOTHING;"
+- route:
+    from:
+      uri: timer
+      parameters:
+        timerName: select
+        repeatCount: 1
+        delay: 2000
+      steps:
+        - to:
+            uri: sql
+            parameters:
+              query: SELECT * FROM users
+        - log:
+            message: "${body}"
+

Reply via email to