Skip to content

Commit 20029d9

Browse files
author
jbossorg-bot
committed
Published latest aggregated blog posts
1 parent 33aba9f commit 20029d9

20 files changed

+108
-108
lines changed

src/content/posts-aggregator/1.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "RESTEasy and Red Hat's Middleware Strategy",
3-
"link": "https://resteasy.dev/2025/03/19/red-hat-ibm/",
2+
"title": "Vlog: WildFly AI - monitor and troubleshoot a WildFly server with the WildFly chatbot.",
3+
"link": "https://youtu.be/crSKeeBsXoE",
44
"author": [
55
{
6-
"name": null,
6+
"name": "Jean-François Denise",
77
"avatar": null
88
}
99
],
10-
"date": "2025-03-19T18:11:11.000Z",
11-
"feed_title": "RESTEasy",
12-
"content": ""
10+
"date": "2025-03-21T00:00:00.000Z",
11+
"feed_title": "WildFly",
12+
"content": "This video demonstrates how you can interact with a WildFly server using natural language."
1313
}

src/content/posts-aggregator/10.json

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
2-
"title": "Quarkus & Red Hat's evolving middleware strategy",
3-
"link": "https://quarkus.io/blog/quarkus-redhat-strategy/",
2+
"title": "Keycloak 26.1.4 released",
3+
"link": "https://www.keycloak.org/2025/03/keycloak-2614-released",
44
"author": [
55
{
6-
"name": "Max Rydahl Andersen",
6+
"name": null,
77
"avatar": null
88
}
99
],
10-
"date": "2025-03-13T00:00:00.000Z",
11-
"feed_title": "Quarkus",
12-
"content": "Over the past weeks, we’ve received questions about the that Red Hat’s Middleware engineering and product teams, which include Quarkus, are moving to IBM. We want to take this opportunity to acknowledge this change while reaffirming what has always been true: Quarkus is an open-source project driven by a global community of contributors, spanning companies, individuals, and open-source enthusiasts. From its inception, Quarkus has been shaped by real-world adoption across industries, with companies , leveraging Quarkus’s unmatched performance and developer joy in the Java ecosystem. We recently celebrated our , a testament to the strength of this diverse and thriving community. Speaking as Quarkus contributors employed by Red Hat and soon IBM, we love our project and intend to keep making it awesome. IBM and Red Hat have clearly communicated that the current and future contributions to Quarkus are a key component of the middleware strategy. IBM has already been an active contributor to Quarkus, and we look forward to increased contribution - alongside the many other individuals and companies who contribute, innovate, and drive Quarkus forward. Additionally, Quarkus is already on the path to becoming part of an open-source foundation, further ensuring its long-term independence and success as a truly community-driven project. The move to the foundation and the Red Hat/IBM move could look suspicious timing-wise, but the two are unrelated. We described our reasons in a , but if anything, this announcement reaffirms the importance of a foundation-hosted project for its stability. To our contributors and users: your involvement has always been what makes Quarkus thrive. Keep building, experimenting, and shaping the future of Java with us. -- The Quarkus Team"
10+
"date": "2025-03-14T00:00:00.000Z",
11+
"feed_title": "Keycloak Blog",
12+
"feed_avatar": "https://www.gravatar.com/avatar/87fe00619f08c241da8dfb23d907ffa2?s=50",
13+
"content": "To download the release go to . UPGRADING Before upgrading refer to for a complete list of changes. ALL RESOLVED ISSUES ENHANCEMENTS * Allow admin to disable automatic refresh of event views admin/ui * Upgrade to Infinispan 15.0.14 BUGS * Cannot fetch realm role that was renamed admin/api * When calling the token revoke endpoint multiple times with the same token, a database REVOKED-TOKEN constraint error is reported storage * Admin events: resource type filter does not work admin/ui * Unwanted placeholder texts in user profile fields admin/ui * KC_HTTPS_TRUST_STORE_TYPE not working dist/quarkus * The default setting of the client request object parameter is empty admin/ui"
1314
}

src/content/posts-aggregator/11.json

+4-4
Large diffs are not rendered by default.

src/content/posts-aggregator/12.json

+5-5
Large diffs are not rendered by default.

src/content/posts-aggregator/13.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "Quarkus Newsletter #54 - March",
3-
"link": "https://quarkus.io/blog/quarkus-newsletter-54/",
2+
"title": "Quarkus 3.19.3 - Maintenance release",
3+
"link": "https://quarkus.io/blog/quarkus-3-19-3-released/",
44
"author": [
55
{
6-
"name": "James Cobb",
6+
"name": "Guillaume Smet",
77
"avatar": null
88
}
99
],
1010
"date": "2025-03-12T00:00:00.000Z",
1111
"feed_title": "Quarkus",
12-
"content": "Make sure you read Mario Fusco’s two-part blog about Agentic AI with Quarkus, where he discusses common workflows and agentic AI patterns and architectures, with practical examples using Quarkus and LangChain4j. Learn about the power of intelligent applications by combining the robustness of Java, the efficiency of Quarkus, and the advanced capabilities of RAG in a great article by Daniel Oh. Emil Lefkof gives a real-world example of how LangChain4j and AI can be leveraged to automatically extract structured metadata from PDF documents. Leveraging the combination of LangChain4j and Google Gemini AI proves to be a powerful approach for automating document analysis workflows. \"Performance & Productivity: Rethinking Java Dependencies for the Cloud Era\" by Markus Eisele discusses how Quarkus extensions are curated, lightweight, and optimized for microservices and serverless. You will also see the latest Quarkus Insights episodes, top tweets/discussions and upcoming Quarkus attended events. Check out ! Want to get newsletters in your inbox? using the on page form."
12+
"content": "We released Quarkus 3.19.3, the second (we skipped 3.19.0) maintenance release for our 3.19 release train. We also released two candidate releases: * Quarkus 3.20.0.CR1 LTS - it is going to be our next LTS, it is based on 3.19 * Quarkus 3.21.0.CR1 - a regular minor release with new features UPDATE To update to Quarkus 3.19, we recommend updating to the latest version of the Quarkus CLI and run: quarkus update Note that quarkus update can update your applications from any version of Quarkus (including 2.x) to Quarkus 3.19. For more information about the adjustments you need to make to your applications, please refer to the . FULL CHANGELOG You can get the full changelog of on GitHub. COME JOIN US We value your feedback a lot so please report bugs, ask for improvements… Let’s build something great together! If you are a Quarkus user or just curious, don’t be shy and join our welcoming community: * provide feedback on ; * craft some code and ; * discuss with us on and on the ; * ask your questions on ."
1313
}

src/content/posts-aggregator/14.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "Running SQLite in Pure Java with Quarkus",
3-
"link": "https://quarkus.io/blog/sqlite4j-pure-java-sqlite/",
2+
"title": "Quarkus Newsletter #54 - March",
3+
"link": "https://quarkus.io/blog/quarkus-newsletter-54/",
44
"author": [
55
{
6-
"name": "Andrea Peruffo",
6+
"name": "James Cobb",
77
"avatar": null
88
}
99
],
1010
"date": "2025-03-12T00:00:00.000Z",
1111
"feed_title": "Quarkus",
12-
"content": "What if you could run a C-based database in pure Java, with zero configuration, and even compile it to a native image effortlessly? With the new Quarkiverse extension , you can do exactly that. Traditionally, embedded databases in Java require reimplementing their C counterparts, often leading to differences in behavior, missing optimizations, and delayed bug fixes. However, provides a JDBC driver that leverages the original SQLite C implementation while running safely inside a sandbox. HANDS-ON EXAMPLE To see in action, you can start with any existing Quarkus application or one of the . If you prefer a ready-made example, check out , which integrates SQLite within a Quarkus application using Hibernate ORM. By simply changing the JDBC driver dependency, you can embed a fully functional SQLite database inside your application while retaining all the benefits of the native SQLite implementation. To get started, add the extension dependency to your pom.xml: <dependency> <groupId>io.quarkiverse.jdbc</groupId> <artifactId>quarkus-jdbc-sqlite4j</artifactId> </dependency> Then, configure your Quarkus application to use SQLite with standard JDBC settings: quarkus.datasource.db-kind=sqlite quarkus.datasource.jdbc.url=jdbc:sqlite:sample.db quarkus.datasource.jdbc.min-size=1 You can now use your datasource as you normally would with Hibernate and Panache. Note that we keep a minimum connection pool size > 0 to avoid redundant copies from disk to memory of the database. RUNNING IN A SECURE SANDBOX Under the hood, SQLite runs in a fully in-memory sandboxed environment, ensuring security and isolation. When a connection to a local file is opened, the following occurs: 1. The database file is copied from disk to an in-memory Virtual FileSystem. 2. A connection is established to the in-memory database. While this approach is highly secure, many users need to persist database changes. One recommended solution is to periodically back up the in-memory database to disk. This can be achieved through a scheduled job that: 1. Backs up the in-memory database to a new file. 2. Copies the backup to the host file system. 3. Atomically replaces the old database file with the new backup. This setup ensures a seamless experience while maintaining SQLite’s sandboxed security. You can adapt this approach to fit your specific needs. Here’s a sample implementation: @ApplicationScoped public class SQLiteBackup { @ConfigProperty(name = \"quarkus.datasource.jdbc.url\") String jdbcUrl; @Inject AgroalDataSource dataSource; // Execute a backup every 10 seconds @Scheduled(delay=10, delayUnit=TimeUnit.SECONDS, every=\"10s\") void scheduled() { backup(); } // Execute a backup during shutdown public void onShutdown(@Observes ShutdownEvent event) { backup(); } void backup() { String dbFile = jdbcUrl.substring(\"jdbc:sqlite:\".length()); var originalDbFilePath = Paths.get(dbFile); var backupDbFilePath = originalDbFilePath .toAbsolutePath() .getParent() .resolve(originalDbFilePath.getFileName() + \"_backup\"); try (var conn = dataSource.getConnection(); var stmt = conn.createStatement()) { // Execute the backup stmt.executeUpdate(\"backup to \" + backupDbFilePath); // Atomically replace the DB file with its backup Files.move(backupDbFilePath, originalDbFilePath, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING); } catch (IOException | SQLException e) { throw new RuntimeException(\"Failed to back up the database\", e); } } } TECHNICAL DEEP DIVE compiles the official SQLite C to WebAssembly (Wasm), which is then translated into Java bytecode using the . This enables SQLite to run in a pure Java environment while maintaining its full functionality. SECURITY AND ISOLATION One of the key benefits of this approach is security. Running SQLite inside a Wasm sandbox ensures memory safety and isolates it from the host system, making it an excellent choice for applications that require embedded databases while avoiding the risks of native code execution. CONCLUSION With the new extension, you get the best of both worlds: the power and reliability of SQLite combined with the safety and portability of Java. This extension seamlessly integrates SQLite into Quarkus applications while maintaining a lightweight and secure architecture. Best of all, everything compiles effortlessly with native-image. Ready to try it out? Give a spin in your projects and experience the benefits of running SQLite in pure Java with Quarkus! PRIOR ART * * "
12+
"content": "Make sure you read Mario Fusco’s two-part blog about Agentic AI with Quarkus, where he discusses common workflows and agentic AI patterns and architectures, with practical examples using Quarkus and LangChain4j. Learn about the power of intelligent applications by combining the robustness of Java, the efficiency of Quarkus, and the advanced capabilities of RAG in a great article by Daniel Oh. Emil Lefkof gives a real-world example of how LangChain4j and AI can be leveraged to automatically extract structured metadata from PDF documents. Leveraging the combination of LangChain4j and Google Gemini AI proves to be a powerful approach for automating document analysis workflows. \"Performance & Productivity: Rethinking Java Dependencies for the Cloud Era\" by Markus Eisele discusses how Quarkus extensions are curated, lightweight, and optimized for microservices and serverless. You will also see the latest Quarkus Insights episodes, top tweets/discussions and upcoming Quarkus attended events. Check out ! Want to get newsletters in your inbox? using the on page form."
1313
}

src/content/posts-aggregator/15.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"title": "RESTEasy 6.2.12.Final and 7.0.0.Beta1 Releases",
3-
"link": "https://resteasy.dev/2025/03/10/releases/",
2+
"title": "Running SQLite in Pure Java with Quarkus",
3+
"link": "https://quarkus.io/blog/sqlite4j-pure-java-sqlite/",
44
"author": [
55
{
6-
"name": null,
6+
"name": "Andrea Peruffo",
77
"avatar": null
88
}
99
],
10-
"date": "2025-03-10T18:11:11.000Z",
11-
"feed_title": "RESTEasy",
12-
"content": ""
10+
"date": "2025-03-12T00:00:00.000Z",
11+
"feed_title": "Quarkus",
12+
"content": "What if you could run a C-based database in pure Java, with zero configuration, and even compile it to a native image effortlessly? With the new Quarkiverse extension , you can do exactly that. Traditionally, embedded databases in Java require reimplementing their C counterparts, often leading to differences in behavior, missing optimizations, and delayed bug fixes. However, provides a JDBC driver that leverages the original SQLite C implementation while running safely inside a sandbox. HANDS-ON EXAMPLE To see in action, you can start with any existing Quarkus application or one of the . If you prefer a ready-made example, check out , which integrates SQLite within a Quarkus application using Hibernate ORM. By simply changing the JDBC driver dependency, you can embed a fully functional SQLite database inside your application while retaining all the benefits of the native SQLite implementation. To get started, add the extension dependency to your pom.xml: <dependency> <groupId>io.quarkiverse.jdbc</groupId> <artifactId>quarkus-jdbc-sqlite4j</artifactId> </dependency> Then, configure your Quarkus application to use SQLite with standard JDBC settings: quarkus.datasource.db-kind=sqlite quarkus.datasource.jdbc.url=jdbc:sqlite:sample.db quarkus.datasource.jdbc.min-size=1 You can now use your datasource as you normally would with Hibernate and Panache. Note that we keep a minimum connection pool size > 0 to avoid redundant copies from disk to memory of the database. RUNNING IN A SECURE SANDBOX Under the hood, SQLite runs in a fully in-memory sandboxed environment, ensuring security and isolation. When a connection to a local file is opened, the following occurs: 1. The database file is copied from disk to an in-memory Virtual FileSystem. 2. A connection is established to the in-memory database. While this approach is highly secure, many users need to persist database changes. One recommended solution is to periodically back up the in-memory database to disk. This can be achieved through a scheduled job that: 1. Backs up the in-memory database to a new file. 2. Copies the backup to the host file system. 3. Atomically replaces the old database file with the new backup. This setup ensures a seamless experience while maintaining SQLite’s sandboxed security. You can adapt this approach to fit your specific needs. Here’s a sample implementation: @ApplicationScoped public class SQLiteBackup { @ConfigProperty(name = \"quarkus.datasource.jdbc.url\") String jdbcUrl; @Inject AgroalDataSource dataSource; // Execute a backup every 10 seconds @Scheduled(delay=10, delayUnit=TimeUnit.SECONDS, every=\"10s\") void scheduled() { backup(); } // Execute a backup during shutdown public void onShutdown(@Observes ShutdownEvent event) { backup(); } void backup() { String dbFile = jdbcUrl.substring(\"jdbc:sqlite:\".length()); var originalDbFilePath = Paths.get(dbFile); var backupDbFilePath = originalDbFilePath .toAbsolutePath() .getParent() .resolve(originalDbFilePath.getFileName() + \"_backup\"); try (var conn = dataSource.getConnection(); var stmt = conn.createStatement()) { // Execute the backup stmt.executeUpdate(\"backup to \" + backupDbFilePath); // Atomically replace the DB file with its backup Files.move(backupDbFilePath, originalDbFilePath, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING); } catch (IOException | SQLException e) { throw new RuntimeException(\"Failed to back up the database\", e); } } } TECHNICAL DEEP DIVE compiles the official SQLite C to WebAssembly (Wasm), which is then translated into Java bytecode using the . This enables SQLite to run in a pure Java environment while maintaining its full functionality. SECURITY AND ISOLATION One of the key benefits of this approach is security. Running SQLite inside a Wasm sandbox ensures memory safety and isolates it from the host system, making it an excellent choice for applications that require embedded databases while avoiding the risks of native code execution. CONCLUSION With the new extension, you get the best of both worlds: the power and reliability of SQLite combined with the safety and portability of Java. This extension seamlessly integrates SQLite into Quarkus applications while maintaining a lightweight and secure architecture. Best of all, everything compiles effortlessly with native-image. Ready to try it out? Give a spin in your projects and experience the benefits of running SQLite in pure Java with Quarkus! PRIOR ART * * "
1313
}

0 commit comments

Comments
 (0)