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}" +
