From 2e700b760d7414a1f476660b9d00842cd6fd7b27 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 26 Feb 2025 18:19:56 +0000
Subject: [PATCH] Deploy to GitHub pages
---
atom.xml | 7334 +++++++++++++++++
blogs.html | 266 +
css/jbossorg.css | 332 +
data/people/alex-porcelli.json | 1 +
data/people/example-author.json | 1 +
data/people/paul-robinson.json | 1 +
img/favicon.ico | Bin 0 -> 1150 bytes
img/people/alex-porcelli.png | Bin 0 -> 6829 bytes
img/people/default_usericon.png | Bin 0 -> 1151 bytes
img/people/don-naro.png | Bin 0 -> 1151 bytes
img/people/francesco-marchioni.png | Bin 0 -> 14416 bytes
img/people/jason-porter.png | Bin 0 -> 1151 bytes
img/people/kevin-conner.png | Bin 0 -> 1151 bytes
img/people/mark-little.png | Bin 0 -> 1151 bytes
img/people/paul-robinson.png | Bin 0 -> 2922 bytes
img/people/pedro-silva.png | Bin 0 -> 7925 bytes
img/people/romain-pelisse.png | Bin 0 -> 1600 bytes
img/people/stefan-sitani.png | Bin 0 -> 19484 bytes
img/posts/rh-summit-banner.png | Bin 0 -> 38371 bytes
img/redhat_reversed.svg | 1 +
img/sponsored_by_redhat_reversed.svg | 1 +
index.html | 135 +
js/cpx-footer.js | 44 +
js/cpx-search/cpx-query.js | 308 +
js/cpx-search/cpx-result.js | 267 +
js/cpx-search/cpx-results.js | 214 +
js/cpx-search/cpx-search-box.js | 96 +
js/jbossorg.js | 0
js/pfe-avatar/LICENSE.txt | 19 +
js/pfe-avatar/README.md | 65 +
js/pfe-avatar/dist/pfe-avatar.js | 490 ++
js/pfe-avatar/dist/pfe-avatar.js.map | 1 +
js/pfe-avatar/dist/pfe-avatar.min.js | 27 +
js/pfe-avatar/dist/pfe-avatar.min.js.map | 1 +
js/pfe-avatar/dist/pfe-avatar.umd.js | 622 ++
js/pfe-avatar/dist/pfe-avatar.umd.js.map | 1 +
js/pfe-avatar/dist/pfe-avatar.umd.min.js | 2 +
js/pfe-avatar/dist/pfe-avatar.umd.min.js.map | 1 +
js/pfe-avatar/package.json | 80 +
js/pfe-band/LICENSE.txt | 19 +
js/pfe-band/README.md | 104 +
js/pfe-band/dist/pfe-band.js | 233 +
js/pfe-band/dist/pfe-band.js.map | 1 +
js/pfe-band/dist/pfe-band.json | 156 +
js/pfe-band/dist/pfe-band.min.js | 26 +
js/pfe-band/dist/pfe-band.min.js.map | 1 +
js/pfe-band/dist/pfe-band.umd.js | 329 +
js/pfe-band/dist/pfe-band.umd.js.map | 1 +
js/pfe-band/dist/pfe-band.umd.min.js | 2 +
js/pfe-band/dist/pfe-band.umd.min.js.map | 1 +
js/pfe-band/package.json | 86 +
js/pfe-card/LICENSE.txt | 19 +
js/pfe-card/README.md | 87 +
js/pfe-card/dist/pfe-card--lightdom.css | 8 +
js/pfe-card/dist/pfe-card--lightdom.min.css | 2 +
.../dist/pfe-card--lightdom.min.css.map | 1 +
js/pfe-card/dist/pfe-card.js | 222 +
js/pfe-card/dist/pfe-card.js.map | 1 +
js/pfe-card/dist/pfe-card.json | 97 +
js/pfe-card/dist/pfe-card.min.js | 26 +
js/pfe-card/dist/pfe-card.min.js.map | 1 +
js/pfe-card/dist/pfe-card.umd.js | 320 +
js/pfe-card/dist/pfe-card.umd.js.map | 1 +
js/pfe-card/dist/pfe-card.umd.min.js | 2 +
js/pfe-card/dist/pfe-card.umd.min.js.map | 1 +
js/pfe-card/package.json | 89 +
js/pfe-cta/LICENSE.txt | 19 +
js/pfe-cta/README.md | 160 +
js/pfe-cta/dist/pfe-cta--lightdom.css | 46 +
js/pfe-cta/dist/pfe-cta--lightdom.min.css | 2 +
js/pfe-cta/dist/pfe-cta--lightdom.min.css.map | 1 +
js/pfe-cta/dist/pfe-cta.js | 241 +
js/pfe-cta/dist/pfe-cta.js.map | 1 +
js/pfe-cta/dist/pfe-cta.json | 83 +
js/pfe-cta/dist/pfe-cta.min.js | 26 +
js/pfe-cta/dist/pfe-cta.min.js.map | 1 +
js/pfe-cta/dist/pfe-cta.umd.js | 354 +
js/pfe-cta/dist/pfe-cta.umd.js.map | 1 +
js/pfe-cta/dist/pfe-cta.umd.min.js | 2 +
js/pfe-cta/dist/pfe-cta.umd.min.js.map | 1 +
js/pfe-cta/package.json | 82 +
js/pfe-datetime/LICENSE.txt | 19 +
js/pfe-datetime/README.md | 132 +
js/pfe-datetime/dist/pfe-datetime.js | 231 +
js/pfe-datetime/dist/pfe-datetime.js.map | 1 +
js/pfe-datetime/dist/pfe-datetime.json | 89 +
js/pfe-datetime/dist/pfe-datetime.min.js | 26 +
js/pfe-datetime/dist/pfe-datetime.min.js.map | 1 +
js/pfe-datetime/dist/pfe-datetime.umd.js | 302 +
js/pfe-datetime/dist/pfe-datetime.umd.js.map | 1 +
js/pfe-datetime/dist/pfe-datetime.umd.min.js | 2 +
.../dist/pfe-datetime.umd.min.js.map | 1 +
js/pfe-datetime/package.json | 78 +
js/pfe-icon/LICENSE.txt | 19 +
js/pfe-icon/README.md | 84 +
js/pfe-icon/dist/pfe-icon.js | 277 +
js/pfe-icon/dist/pfe-icon.js.map | 1 +
js/pfe-icon/dist/pfe-icon.json | 55 +
js/pfe-icon/dist/pfe-icon.min.js | 27 +
js/pfe-icon/dist/pfe-icon.min.js.map | 1 +
js/pfe-icon/dist/pfe-icon.umd.js | 419 +
js/pfe-icon/dist/pfe-icon.umd.js.map | 1 +
js/pfe-icon/dist/pfe-icon.umd.min.js | 2 +
js/pfe-icon/dist/pfe-icon.umd.min.js.map | 1 +
js/pfe-icon/package.json | 78 +
js/pfe-styles/LICENSE.txt | 19 +
js/pfe-styles/README.md | 152 +
js/pfe-styles/dist/pfe-base.css | 164 +
js/pfe-styles/dist/pfe-base.css.map | 1 +
js/pfe-styles/dist/pfe-base.min.css | 2 +
js/pfe-styles/dist/pfe-base.min.css.map | 1 +
js/pfe-styles/dist/pfe-context.css | 40 +
js/pfe-styles/dist/pfe-context.css.map | 1 +
js/pfe-styles/dist/pfe-context.min.css | 2 +
js/pfe-styles/dist/pfe-context.min.css.map | 1 +
js/pfe-styles/dist/pfe-layouts.css | 2132 +++++
js/pfe-styles/dist/pfe-layouts.css.map | 1 +
js/pfe-styles/dist/pfe-layouts.min.css | 2 +
js/pfe-styles/dist/pfe-layouts.min.css.map | 1 +
js/pfe-styles/package.json | 83 +
js/pfelement/LICENSE.txt | 19 +
js/pfelement/README.md | 187 +
js/pfelement/dist/pfelement--noscript.css | 6 +
js/pfelement/dist/pfelement--noscript.min.css | 2 +
.../dist/pfelement--noscript.min.css.map | 1 +
js/pfelement/dist/pfelement.css | 52 +
js/pfelement/dist/pfelement.css.map | 1 +
js/pfelement/dist/pfelement.js | 479 ++
js/pfelement/dist/pfelement.js.map | 1 +
js/pfelement/dist/pfelement.min.css | 2 +
js/pfelement/dist/pfelement.min.css.map | 1 +
js/pfelement/dist/pfelement.min.js | 26 +
js/pfelement/dist/pfelement.min.js.map | 1 +
js/pfelement/dist/pfelement.umd.js | 635 ++
js/pfelement/dist/pfelement.umd.js.map | 1 +
js/pfelement/dist/pfelement.umd.min.js | 2 +
js/pfelement/dist/pfelement.umd.min.js.map | 1 +
js/pfelement/package.json | 92 +
posts/weekly-2020-05-01.html | 180 +
posts/weekly-2020-05-14.html | 89 +
posts/weekly-2020-05-29.html | 123 +
posts/weekly-2020-06-11.html | 131 +
posts/weekly-2020-06-26.html | 114 +
posts/weekly-2020-07-09.html | 111 +
posts/weekly-2020-07-30.html | 130 +
posts/weekly-2020-08-13.html | 109 +
posts/weekly-2020-08-27.html | 110 +
posts/weekly-2020-09-16.html | 81 +
posts/weekly-2020-09-30.html | 91 +
posts/weekly-2020-10-12.html | 129 +
posts/weekly-2020-10-23.html | 131 +
posts/weekly-2020-11-06.html | 125 +
posts/weekly-2020-11-20.html | 104 +
posts/weekly-2020-12-03.html | 132 +
posts/weekly-2020-12-17.html | 91 +
posts/weekly-2020-12-25.html | 113 +
posts/weekly-2021-01-14.html | 120 +
posts/weekly-2021-01-28.html | 138 +
posts/weekly-2021-02-11.html | 132 +
posts/weekly-2021-02-25.html | 125 +
posts/weekly-2021-03-11.html | 137 +
posts/weekly-2021-03-25.html | 148 +
posts/weekly-2021-04-08.html | 134 +
posts/weekly-2021-04-26.html | 152 +
posts/weekly-2021-05-31.html | 170 +
posts/weekly-2021-06-18.html | 154 +
posts/weekly-2021-07-01.html | 123 +
posts/weekly-2021-07-14.html | 124 +
posts/weekly-2021-08-11.html | 119 +
posts/weekly-2021-08-27.html | 133 +
posts/weekly-2021-09-10.html | 126 +
posts/weekly-2021-09-23.html | 152 +
posts/weekly-2021-10-08.html | 140 +
posts/weekly-2021-10-21.html | 142 +
posts/weekly-2021-11-04.html | 159 +
posts/weekly-2021-11-18.html | 157 +
posts/weekly-2021-12-02.html | 151 +
posts/weekly-2021-12-20.html | 163 +
posts/weekly-2022-01-13.html | 143 +
posts/weekly-2022-01-27.html | 161 +
posts/weekly-2022-02-10.html | 174 +
posts/weekly-2022-02-25.html | 153 +
posts/weekly-2022-03-11.html | 148 +
posts/weekly-2022-03-25.html | 136 +
posts/weekly-2022-04-07.html | 168 +
posts/weekly-2022-04-22.html | 171 +
posts/weekly-2022-05-07.html | 150 +
posts/weekly-2022-06-02.html | 162 +
posts/weekly-2022-06-16.html | 124 +
posts/weekly-2022-06-30.html | 162 +
posts/weekly-2022-07-14.html | 129 +
posts/weekly-2022-07-28.html | 156 +
posts/weekly-2022-08-11.html | 171 +
posts/weekly-2022-08-25.html | 141 +
posts/weekly-2022-09-08.html | 147 +
posts/weekly-2022-09-22.html | 136 +
posts/weekly-2022-10-07.html | 160 +
posts/weekly-2022-10-20.html | 117 +
posts/weekly-2022-11-04.html | 128 +
posts/weekly-2022-11-18.html | 122 +
posts/weekly-2022-12-01.html | 128 +
posts/weekly-2022-12-15.html | 147 +
posts/weekly-2022-12-29.html | 73 +
posts/weekly-2023-01-26.html | 159 +
posts/weekly-2023-02-08.html | 163 +
posts/weekly-2023-02-24.html | 138 +
posts/weekly-2023-03-09.html | 120 +
posts/weekly-2023-03-23.html | 120 +
posts/weekly-2023-04-06.html | 140 +
posts/weekly-2023-04-20.html | 129 +
posts/weekly-2023-05-18.html | 126 +
posts/weekly-2023-06-01.html | 116 +
posts/weekly-2023-07-03.html | 77 +
trademarks.html | 570 ++
tweets.html | 67 +
215 files changed, 29850 insertions(+)
create mode 100644 atom.xml
create mode 100644 blogs.html
create mode 100644 css/jbossorg.css
create mode 100644 data/people/alex-porcelli.json
create mode 100644 data/people/example-author.json
create mode 100644 data/people/paul-robinson.json
create mode 100644 img/favicon.ico
create mode 100644 img/people/alex-porcelli.png
create mode 100644 img/people/default_usericon.png
create mode 100644 img/people/don-naro.png
create mode 100644 img/people/francesco-marchioni.png
create mode 100644 img/people/jason-porter.png
create mode 100644 img/people/kevin-conner.png
create mode 100644 img/people/mark-little.png
create mode 100644 img/people/paul-robinson.png
create mode 100644 img/people/pedro-silva.png
create mode 100644 img/people/romain-pelisse.png
create mode 100644 img/people/stefan-sitani.png
create mode 100644 img/posts/rh-summit-banner.png
create mode 100644 img/redhat_reversed.svg
create mode 100644 img/sponsored_by_redhat_reversed.svg
create mode 100644 index.html
create mode 100644 js/cpx-footer.js
create mode 100644 js/cpx-search/cpx-query.js
create mode 100644 js/cpx-search/cpx-result.js
create mode 100644 js/cpx-search/cpx-results.js
create mode 100644 js/cpx-search/cpx-search-box.js
create mode 100644 js/jbossorg.js
create mode 100644 js/pfe-avatar/LICENSE.txt
create mode 100644 js/pfe-avatar/README.md
create mode 100644 js/pfe-avatar/dist/pfe-avatar.js
create mode 100644 js/pfe-avatar/dist/pfe-avatar.js.map
create mode 100644 js/pfe-avatar/dist/pfe-avatar.min.js
create mode 100644 js/pfe-avatar/dist/pfe-avatar.min.js.map
create mode 100644 js/pfe-avatar/dist/pfe-avatar.umd.js
create mode 100644 js/pfe-avatar/dist/pfe-avatar.umd.js.map
create mode 100644 js/pfe-avatar/dist/pfe-avatar.umd.min.js
create mode 100644 js/pfe-avatar/dist/pfe-avatar.umd.min.js.map
create mode 100644 js/pfe-avatar/package.json
create mode 100644 js/pfe-band/LICENSE.txt
create mode 100644 js/pfe-band/README.md
create mode 100644 js/pfe-band/dist/pfe-band.js
create mode 100644 js/pfe-band/dist/pfe-band.js.map
create mode 100644 js/pfe-band/dist/pfe-band.json
create mode 100644 js/pfe-band/dist/pfe-band.min.js
create mode 100644 js/pfe-band/dist/pfe-band.min.js.map
create mode 100644 js/pfe-band/dist/pfe-band.umd.js
create mode 100644 js/pfe-band/dist/pfe-band.umd.js.map
create mode 100644 js/pfe-band/dist/pfe-band.umd.min.js
create mode 100644 js/pfe-band/dist/pfe-band.umd.min.js.map
create mode 100644 js/pfe-band/package.json
create mode 100644 js/pfe-card/LICENSE.txt
create mode 100644 js/pfe-card/README.md
create mode 100644 js/pfe-card/dist/pfe-card--lightdom.css
create mode 100644 js/pfe-card/dist/pfe-card--lightdom.min.css
create mode 100644 js/pfe-card/dist/pfe-card--lightdom.min.css.map
create mode 100644 js/pfe-card/dist/pfe-card.js
create mode 100644 js/pfe-card/dist/pfe-card.js.map
create mode 100644 js/pfe-card/dist/pfe-card.json
create mode 100644 js/pfe-card/dist/pfe-card.min.js
create mode 100644 js/pfe-card/dist/pfe-card.min.js.map
create mode 100644 js/pfe-card/dist/pfe-card.umd.js
create mode 100644 js/pfe-card/dist/pfe-card.umd.js.map
create mode 100644 js/pfe-card/dist/pfe-card.umd.min.js
create mode 100644 js/pfe-card/dist/pfe-card.umd.min.js.map
create mode 100644 js/pfe-card/package.json
create mode 100644 js/pfe-cta/LICENSE.txt
create mode 100644 js/pfe-cta/README.md
create mode 100644 js/pfe-cta/dist/pfe-cta--lightdom.css
create mode 100644 js/pfe-cta/dist/pfe-cta--lightdom.min.css
create mode 100644 js/pfe-cta/dist/pfe-cta--lightdom.min.css.map
create mode 100644 js/pfe-cta/dist/pfe-cta.js
create mode 100644 js/pfe-cta/dist/pfe-cta.js.map
create mode 100644 js/pfe-cta/dist/pfe-cta.json
create mode 100644 js/pfe-cta/dist/pfe-cta.min.js
create mode 100644 js/pfe-cta/dist/pfe-cta.min.js.map
create mode 100644 js/pfe-cta/dist/pfe-cta.umd.js
create mode 100644 js/pfe-cta/dist/pfe-cta.umd.js.map
create mode 100644 js/pfe-cta/dist/pfe-cta.umd.min.js
create mode 100644 js/pfe-cta/dist/pfe-cta.umd.min.js.map
create mode 100644 js/pfe-cta/package.json
create mode 100644 js/pfe-datetime/LICENSE.txt
create mode 100644 js/pfe-datetime/README.md
create mode 100644 js/pfe-datetime/dist/pfe-datetime.js
create mode 100644 js/pfe-datetime/dist/pfe-datetime.js.map
create mode 100644 js/pfe-datetime/dist/pfe-datetime.json
create mode 100644 js/pfe-datetime/dist/pfe-datetime.min.js
create mode 100644 js/pfe-datetime/dist/pfe-datetime.min.js.map
create mode 100644 js/pfe-datetime/dist/pfe-datetime.umd.js
create mode 100644 js/pfe-datetime/dist/pfe-datetime.umd.js.map
create mode 100644 js/pfe-datetime/dist/pfe-datetime.umd.min.js
create mode 100644 js/pfe-datetime/dist/pfe-datetime.umd.min.js.map
create mode 100644 js/pfe-datetime/package.json
create mode 100644 js/pfe-icon/LICENSE.txt
create mode 100644 js/pfe-icon/README.md
create mode 100644 js/pfe-icon/dist/pfe-icon.js
create mode 100644 js/pfe-icon/dist/pfe-icon.js.map
create mode 100644 js/pfe-icon/dist/pfe-icon.json
create mode 100644 js/pfe-icon/dist/pfe-icon.min.js
create mode 100644 js/pfe-icon/dist/pfe-icon.min.js.map
create mode 100644 js/pfe-icon/dist/pfe-icon.umd.js
create mode 100644 js/pfe-icon/dist/pfe-icon.umd.js.map
create mode 100644 js/pfe-icon/dist/pfe-icon.umd.min.js
create mode 100644 js/pfe-icon/dist/pfe-icon.umd.min.js.map
create mode 100644 js/pfe-icon/package.json
create mode 100644 js/pfe-styles/LICENSE.txt
create mode 100644 js/pfe-styles/README.md
create mode 100644 js/pfe-styles/dist/pfe-base.css
create mode 100644 js/pfe-styles/dist/pfe-base.css.map
create mode 100644 js/pfe-styles/dist/pfe-base.min.css
create mode 100644 js/pfe-styles/dist/pfe-base.min.css.map
create mode 100644 js/pfe-styles/dist/pfe-context.css
create mode 100644 js/pfe-styles/dist/pfe-context.css.map
create mode 100644 js/pfe-styles/dist/pfe-context.min.css
create mode 100644 js/pfe-styles/dist/pfe-context.min.css.map
create mode 100644 js/pfe-styles/dist/pfe-layouts.css
create mode 100644 js/pfe-styles/dist/pfe-layouts.css.map
create mode 100644 js/pfe-styles/dist/pfe-layouts.min.css
create mode 100644 js/pfe-styles/dist/pfe-layouts.min.css.map
create mode 100644 js/pfe-styles/package.json
create mode 100644 js/pfelement/LICENSE.txt
create mode 100644 js/pfelement/README.md
create mode 100644 js/pfelement/dist/pfelement--noscript.css
create mode 100644 js/pfelement/dist/pfelement--noscript.min.css
create mode 100644 js/pfelement/dist/pfelement--noscript.min.css.map
create mode 100644 js/pfelement/dist/pfelement.css
create mode 100644 js/pfelement/dist/pfelement.css.map
create mode 100644 js/pfelement/dist/pfelement.js
create mode 100644 js/pfelement/dist/pfelement.js.map
create mode 100644 js/pfelement/dist/pfelement.min.css
create mode 100644 js/pfelement/dist/pfelement.min.css.map
create mode 100644 js/pfelement/dist/pfelement.min.js
create mode 100644 js/pfelement/dist/pfelement.min.js.map
create mode 100644 js/pfelement/dist/pfelement.umd.js
create mode 100644 js/pfelement/dist/pfelement.umd.js.map
create mode 100644 js/pfelement/dist/pfelement.umd.min.js
create mode 100644 js/pfelement/dist/pfelement.umd.min.js.map
create mode 100644 js/pfelement/package.json
create mode 100644 posts/weekly-2020-05-01.html
create mode 100644 posts/weekly-2020-05-14.html
create mode 100644 posts/weekly-2020-05-29.html
create mode 100644 posts/weekly-2020-06-11.html
create mode 100644 posts/weekly-2020-06-26.html
create mode 100644 posts/weekly-2020-07-09.html
create mode 100644 posts/weekly-2020-07-30.html
create mode 100644 posts/weekly-2020-08-13.html
create mode 100644 posts/weekly-2020-08-27.html
create mode 100644 posts/weekly-2020-09-16.html
create mode 100644 posts/weekly-2020-09-30.html
create mode 100644 posts/weekly-2020-10-12.html
create mode 100644 posts/weekly-2020-10-23.html
create mode 100644 posts/weekly-2020-11-06.html
create mode 100644 posts/weekly-2020-11-20.html
create mode 100644 posts/weekly-2020-12-03.html
create mode 100644 posts/weekly-2020-12-17.html
create mode 100644 posts/weekly-2020-12-25.html
create mode 100644 posts/weekly-2021-01-14.html
create mode 100644 posts/weekly-2021-01-28.html
create mode 100644 posts/weekly-2021-02-11.html
create mode 100644 posts/weekly-2021-02-25.html
create mode 100644 posts/weekly-2021-03-11.html
create mode 100644 posts/weekly-2021-03-25.html
create mode 100644 posts/weekly-2021-04-08.html
create mode 100644 posts/weekly-2021-04-26.html
create mode 100644 posts/weekly-2021-05-31.html
create mode 100644 posts/weekly-2021-06-18.html
create mode 100644 posts/weekly-2021-07-01.html
create mode 100644 posts/weekly-2021-07-14.html
create mode 100644 posts/weekly-2021-08-11.html
create mode 100644 posts/weekly-2021-08-27.html
create mode 100644 posts/weekly-2021-09-10.html
create mode 100644 posts/weekly-2021-09-23.html
create mode 100644 posts/weekly-2021-10-08.html
create mode 100644 posts/weekly-2021-10-21.html
create mode 100644 posts/weekly-2021-11-04.html
create mode 100644 posts/weekly-2021-11-18.html
create mode 100644 posts/weekly-2021-12-02.html
create mode 100644 posts/weekly-2021-12-20.html
create mode 100644 posts/weekly-2022-01-13.html
create mode 100644 posts/weekly-2022-01-27.html
create mode 100644 posts/weekly-2022-02-10.html
create mode 100644 posts/weekly-2022-02-25.html
create mode 100644 posts/weekly-2022-03-11.html
create mode 100644 posts/weekly-2022-03-25.html
create mode 100644 posts/weekly-2022-04-07.html
create mode 100644 posts/weekly-2022-04-22.html
create mode 100644 posts/weekly-2022-05-07.html
create mode 100644 posts/weekly-2022-06-02.html
create mode 100644 posts/weekly-2022-06-16.html
create mode 100644 posts/weekly-2022-06-30.html
create mode 100644 posts/weekly-2022-07-14.html
create mode 100644 posts/weekly-2022-07-28.html
create mode 100644 posts/weekly-2022-08-11.html
create mode 100644 posts/weekly-2022-08-25.html
create mode 100644 posts/weekly-2022-09-08.html
create mode 100644 posts/weekly-2022-09-22.html
create mode 100644 posts/weekly-2022-10-07.html
create mode 100644 posts/weekly-2022-10-20.html
create mode 100644 posts/weekly-2022-11-04.html
create mode 100644 posts/weekly-2022-11-18.html
create mode 100644 posts/weekly-2022-12-01.html
create mode 100644 posts/weekly-2022-12-15.html
create mode 100644 posts/weekly-2022-12-29.html
create mode 100644 posts/weekly-2023-01-26.html
create mode 100644 posts/weekly-2023-02-08.html
create mode 100644 posts/weekly-2023-02-24.html
create mode 100644 posts/weekly-2023-03-09.html
create mode 100644 posts/weekly-2023-03-23.html
create mode 100644 posts/weekly-2023-04-06.html
create mode 100644 posts/weekly-2023-04-20.html
create mode 100644 posts/weekly-2023-05-18.html
create mode 100644 posts/weekly-2023-06-01.html
create mode 100644 posts/weekly-2023-07-03.html
create mode 100644 trademarks.html
create mode 100644 tweets.html
diff --git a/atom.xml b/atom.xml
new file mode 100644
index 00000000..0dc29fb1
--- /dev/null
+++ b/atom.xml
@@ -0,0 +1,7334 @@
+
+
+ https://www.jboss.org/blogs.html
+ JBoss Blogs
+ 2025-02-26T00:00:00.000Z
+ https://github.com/jpmonette/feed
+
+ aggregation of various JBoss blogs
+ https://www.jboss.org/img/favicon.ico
+
+
+ https://quarkus.io/blog/quarkus-3-19-1-released/
+
+ 2025-02-26T00:00:00.000Z
+
+
+ Guillaume Smet
+
+
+
+
+ https://www.keycloak.org/2025/02/recordings-available-fosdem
+
+ 2025-02-25T00:00:00.000Z
+
+
+ Alexander Schwartz
+
+
+
+
+ https://quarkus.io/blog/agentic-ai-with-quarkus-p2/
+
+ 2025-02-20T00:00:00.000Z
+ (Booking) b) .mapToInt(b -> b.partySize) .sum(); return sum + partySize <= capacity; } @Transactional @Tool("Books a table for a given name, date (passed as day of the month, month and year), party size and preference (indoor/outdoor). If the restaurant is full, an exception is thrown. If preference is not specified, `UNSET` is used.") public String book(String name, int day, int month, int year, int partySize, Booking.Preference preference) { var date = LocalDate.of(year, month, day); if (hasCapacity(date, partySize)) { Booking booking = new Booking(); booking.date = date; booking.name = name; booking.partySize = partySize; if (preference == null) { preference = Booking.Preference.UNSET; } booking.preference = preference; booking.persist(); String result = String.format("%s successfully booked a %s table for %d persons on %s", name, preference, partySize, date); Log.info(result); return result; } return "The restaurant is full for that day"; } } To assist the customer in deciding whether to eat outside, the agent can also reuse, as a second tool, the implemented in one of the former examples, passing to it the geographic coordinates of the restaurant. restaurant.location.latitude=45 restaurant.location.longitude=5 The final architectural design of the chatbot is the following: Figure 5. The restaurant chatbot agent Once the customer provides all necessary details, the chatbot confirms the booking and presents a reservation summary. The final booking is then stored in the database. It is possible to give this a try by accessing the URL: A typical example of user interaction could be something like this: Figure 6. An example of interaction with the restaurant chatbot agent CONCLUSIONS AND NEXT STEPS This blog post series illustrates how you can use agentic patterns to implement AI-infused applications with Quarkus and its LangChain4j extension. We have covered workflow patterns in a previous post and agents in this post. Both sets of patterns are based on the same underlying principles but differ in how the control flow is managed. The workflow patterns are more suitable for tasks that can be easily defined programmatically, while agents are more flexible and can handle a broader range of tasks. Nevertheless, the examples discussed in this series can be improved and further generalized with other techniques that will be introduced in future works, such as: * Memory management across LLM calls * State management for long-running processes * Improved observability * Dynamic tools and tool discovery * The relation with the MCP protocol and how agentic architecture can be implemented with MCP clients and servers * How can the RAG pattern be revisited in light of the agentic architecture, both with workflow patterns and agents?]]>
+
+ Mario Fusco
+
+
+
+
+ https://www.keycloak.org/2025/02/keycloak-js-2620-released
+
+ 2025-02-20T00:00:00.000Z
+
+
+
+
+
+
+
+ https://resteasy.dev/2025/02/19/resteasy-to-foundation/
+
+ 2025-02-19T18:11:11.000Z
+
+
+
+
+
+
+ https://www.keycloak.org/2025/02/updated-extension-page
+
+ 2025-02-19T00:00:00.000Z
+
+
+ Alexander Schwartz
+
+
+
+
+ https://quarkus.io/blog/quarkus-3-18-4-released/
+
+ 2025-02-19T00:00:00.000Z
+
+
+ Guillaume Smet
+
+
+
+
+ https://quarkus.io/blog/agentic-ai-with-quarkus/
+
+ 2025-02-18T00:00:00.000Z
+ plan(String mood) { var movieSelection = Uni.createFrom().item(() -> movieExpert.findMovie(mood)).runSubscriptionOn(scheduler); var mealSelection = Uni.createFrom().item(() -> foodExpert.findMeal(mood)).runSubscriptionOn(scheduler); return Uni.combine().all() .unis(movieSelection, mealSelection) // This invokes the two LLMs in parallel .with((movies, meals) -> { // Both calls have completed, let's combine the results List moviesAndMeals = new ArrayList<>(); for (int i = 0; i < 3; i++) { moviesAndMeals.add(new EveningPlan(movies.get(i), meals.get(i))); } return moviesAndMeals; }) .await().atMost(Duration.ofSeconds(60)); } The is an AI service asked to provide three titles of movies matching the given mood. @RegisterAiService public interface MovieExpert { @UserMessage(""" You are a great evening planner. Propose a list of 3 movies matching the given mood. The mood is {mood}. Provide a list with the 3 items and nothing else. """) List findMovie(String mood); } The , with a very similar implementation is asked to provide three meals. When these LLM calls are complete, the results (3 lists of 3 items each) are aggregated to create a list of 3 fantastic evening plans with a suggested movie and meal each. Figure 3. The parallelization pattern For instance asking that endpoint to provide evening plans for a romantic mood: curl http://localhost:8080/evening/mood/romantic The outcome is something like: [ EveningPlan[movie=1. The Notebook, meal=1. Candlelit Chicken Piccata], EveningPlan[movie=2. La La Land, meal=2. Rose Petal Risotto], EveningPlan[movie=3. Crazy, Stupid, Love., meal=3. Sunset Seared Scallops] ] In this case, the tracing of the flow of invocations performed to fulfill this request shows, as expected, that the two LLM invocations are performed in parallel. Figure 4. Tracing parallel LLMs invocation ROUTING Another common situation is the need to direct tasks requiring specific handling to specialized models, tools, or processes based on determined criteria. In these cases, the routing workflow allows the dynamic allocation of tasks to the most suitable AI service. shows how this pattern can be applied in a simple scenario where a user asks a question that has to be redirected to a , or expert to be answered most accurately, where any of these experts are an AI service implemented for instance as follows: @RegisterAiService public interface MedicalExpert { @UserMessage(""" You are a medical expert. Analyze the following user request under a medical point of view and provide the best possible answer. The user request is {request}. """) String chat(String request); } The categorization of the user’s request is performed by @RegisterAiService public interface CategoryRouter { @UserMessage(""" Analyze the following user request and categorize it as 'legal', 'medical' or 'technical'. Reply with only one of those words and nothing else. The user request is {request}. """) RequestCategory classify(String request); } that returns one of the possible categories of the user’s request, encoded in this enumeration: public enum RequestCategory { LEGAL, MEDICAL, TECHNICAL, UNKNOWN } Thus, the can send the question to the right expert. public UnaryOperator findExpert(String request) { var category = RequestType.decode(categoryRouter.classify(request)); return switch (category) { case LEGAL -> legalExpert::chat; case MEDICAL -> medicalExpert::chat; case TECHNICAL -> technicalExpert::chat; default -> ignore -> "I cannot find an appropriate category for this request."; }; } Figure 5. Routing pattern In this way, when the user calls the , exposing this service writing something like: "I broke my leg what should I do": curl http://localhost:8080/expert/request/I%20broke%20my%20leg%20what%20should%20I%20do The first LLM categorizes this request as a medical one, and the router forwards it to the medical expert LLM, thus generating a result like . CONCLUSION This article demonstrated how you can implement workflow patterns with Quarkus Langchain4J. Quarkus Langchain4J provides a powerful and flexible way to implement these patterns, allowing you to orchestrate multiple AI services in a way that is both efficient and easy to understand. The next article will cover the agent patterns. So, stay tuned!]]>
+
+ Mario Fusco
+
+
+
+
+ https://quarkus.io/blog/using-langchain4j-to-analyze-pdf-documents/
+
+ 2025-02-17T00:00:00.000Z
+ Next we need to install the LangChain4j dependencies: io.quarkiverse.langchain4jquarkus-langchain4j-ai-gemini0.25.0 CONFIGURE GEMINI LLM Next we need to wire up the Gemini LLM to the application (using your Google AI Gemini API key). quarkus.langchain4j.ai.gemini.chat-model.model-id=gemini-2.0-flash quarkus.langchain4j.log-requests=true quarkus.langchain4j.log-responses=true Logging the request and response is optional but can be helpful for debugging. REGISTER THE AI SERVICE We must register the AI service to use the LeaseAnalyzer interface. import dev.langchain4j.data.pdf.PdfFile; import dev.langchain4j.service.UserMessage; import io.quarkiverse.langchain4j.PdfUrl; import io.quarkiverse.langchain4j.RegisterAiService; @RegisterAiService(chatMemoryProviderSupplier = RegisterAiService.NoChatMemoryProviderSupplier.class) public interface LeaseAnalyzer { @UserMessage("Analyze the given document") LeaseReport analyze(@PdfUrl PdfFile pdfFile); } DEFINE YOUR DATA STRUCTURE Now we need to model the data structure for the lease information that we want the LLM to extract from any lease document. You can customize these fields based on the information you need from the PDF documents but in our use case below we are extracting the following information: public record LeaseReport( LocalDate agreementDate, LocalDate termStartDate, LocalDate termEndDate, LocalDate developmentTermEndDate, String landlordName, String tenantName, String taxParcelId, BigDecimal acres, Boolean exclusiveRights) { } CREATE THE REST ENDPOINT Lastly, we need to create a LeaseAnalyzerResource class that will use the LLM to extract the lease information from the PDF document. @Inject LeaseAnalyzer analyzer; @PUT @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.TEXT_PLAIN) public String upload(@RestForm("file") FileUpload fileUploadRequest) { final String fileName = fileUploadRequest.fileName(); log.infof("Uploading file: %s", fileName); try { // Convert input stream to byte array for processing byte[] fileBytes = Files.readAllBytes(fileUploadRequest.filePath()); // Encode PDF content to base64 for transmission String documentEncoded = Base64.getEncoder().encodeToString(fileBytes); log.info("Google Gemini analyzing...."); long startTime = System.nanoTime(); LeaseReport result = analyzer.analyze(PdfFile.builder().base64Data(documentEncoded).build()); long endTime = System.nanoTime(); log.infof("Google Gemini analyzed in %.2f seconds: %s", (endTime - startTime) / 1_000_000_000.0, result); return result; } catch (IOException e) { throw new RuntimeException(e); } } There is a simple HTML/JavaScript frontend that allows you to upload a PDF document and view the results. In the example below 3 different lease documents were uploaded and analyzed. Figure 1. Lease Analyzer Results You can find the complete example code on . CONCLUSION This article demonstrated how LangChain4j and AI can be leveraged to automatically extract structured metadata from PDF documents. By implementing this solution, our client will significantly reduce manual document processing time, potentially saving thousands of work hours annually. The combination of LangChain4j and Google Gemini AI proves to be a powerful approach for automating document analysis workflows.]]>
+
+ Emil Lefkof
+
+
+
+
+ https://resteasy.dev/2025/02/14/resteasy-grpc-collections/
+
+ 2025-02-14T00:00:00.000Z
+
+
+
+
+
+
+ https://vertx.io/blog/eclipse-vert-x-5-candidate-5-released
+
+ 2025-02-13T00:00:00.000Z
+
+ Julien Viet
+
+
+
+
+ https://www.youtube.com/watch?v=wg1hAdOoe2w
+
+ 2025-02-13T00:00:00.000Z
+
+
+ smaesti
+
+
+
+
+ https://wildfly.org//news/2025/02/12/wildfly-domain-usage/
+
+ 2025-02-12T00:00:00.000Z
+ A key focus in WildFly 25 has been completing our migration away from the > legacy security layer that dates back to JBoss AS and onto the based > introduced in WildFly 11. SE 17 does not provide packages that legacy security > heavily relies upon, so the time has come to complete the transition off of > legacy security. Nevertheless, the resources I could find are mostly outdated or don’t contain the step-by-step walkthrough about the minimal configuration to be done for using the domain mode of WildFly. I have written a book before, explaining the domain mode usage of WildFly[]. There is also a relative document about the domain mode setup[]. All these materials are outdated on the domain configuration topic, so I’d like to update the knowledge on this topic in this blog post, showing how to configure the domain mode for the most recent version of WildFly server, which is version 35 when I’m writing this blog post. I won’t cover all the detail usages of the domain mode in this blog post, but it will be a good start to follow the instructions in this blog posts for the further studies. Here is my local environment setup to use the domain mode of the WildFly server: As the deployment diagram shows above, I used two machines to run the WildFly server in domain mode. In the above setup, the WildFly server running on Machine A acts as a domain controller, and the WildFly server on Machine B will be connected to Machine A accepting the management from the domain server. The host name of the WildFly server running on Machine A will be configured to primary(this will be defined in the name property in the host.xml), and the host name of the WildFly server running on Machine B will be configured to secondary. Both WildFly servers, running on two different machines, will be configured to run a managed server (defined in the server section of the host.xml) within the same server group, named other-server-group. The Primary Host Controller will define a server-three managed server, while the Secondary Host Controller will define a server-two managed server, both belonging to the other-server-group server group. In this way, the Domain Controller can manage the server group and deploy user applications to the managed servers within it, even though the managed servers are running on different hosts. The first step is to download the current version of WildFly. I will use version 35.0.0.Final version in this blog post which is the newest final version when I’m writing this blog post. Here is the release page: * ❯ wget https://github.com/wildfly/wildfly/releases/download/35.0.0.Final/wildfly-35.0.0.Final.zip After the WildFly server zip file is downloaded and extracted into both machines, I can do the configuration work. The extracted WildFly server directory has some of the configuration files out-of-box. Here are the domain configurations provided: ❯ ls wildfly-35.0.0.Final/domain/configuration/ application-roles.properties host-secondary.xml application-users.properties host.xml default-server-logging.properties logging.properties domain.xml mgmt-groups.properties host-primary.xml mgmt-users.properties From the above command output, we can see in the wildfly-35.0.0.Final/domain/configuration/ directory, it contains host-primary.xml and host-secondary.xml files. I will use host-secondary.xml with some modifications in Machine B. However, I’ll use the host.xml instead of host-primary.xml in Machine A, because host-primary.xml has removed all the servers configuration, but we need these servers configuration in our setup. However, I still need to configure a Managed Server in Machine A for demonstration purposes. First, let’s check the host.xml on Machine A to fit the requirement. In host.xml, the host name is set to primary by default: This is what I expect, so I don’t need to change it. Instead of directly editing the configuration file, we can use the jboss-cli.sh to connect to the server to edit the configuration file in a more controllable way. To do this, we can first run the jboss-cli.sh: ❯ pwd /Users/weli/works/wildfly-35.0.0.Final/bin weli@192 ~/works/wildfly-35.0.0.Final/bin ❯ ./jboss-cli.sh You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands. [disconnected /] After entering the CLI, run the following command to connect to the host controller: [disconnected /] embed-host-controller [domain@embedded /] The above command will run the domain server in offline-mode(To learn about the detailed usages of the above command, you can read this blog post[]). And we can now configure the server in the CLI, and all the changes will be persisted into the host controller configuration file(by default it’s host.xml). Now we can use the CLI to read the host name: [domain@embedded /] /:read-attribute(name=local-host-name) { "outcome" => "success", "result" => "primary" } It’s preferred to use CLI command instead of directly operating on the host controller configuration file. In the rest of this blog post, I’ll introduce both the content of the host controller file, and the way to use the CLI command to modify it. Now we can see the host.xml file has two servers settings by default: I’ll use only server-three in this blog post, so I comment out the server-one and the server-two definitions and only leave the server-three definition here. Here are the commands to disable the server-one and server-two from auto-starting: [domain@embedded /] /host=primary/server-config=server-one:write-attribute(name=auto-start, value=false) { "outcome" => "success", "result" => undefined, "server-groups" => undefined } [domain@embedded /] /host=primary/server-config=server-two:write-attribute(name=auto-start, value=false) { "outcome" => "success", "result" => undefined, "server-groups" => undefined } [domain@embedded /] Alternatively, you can use these commands to remove the server-one and server-two directly: /host=primary/server-config=server-one:remove /host=primary/server-config=server-two:remove In addition, there are several interface properties defined in the host.xml file that we need to override during runtime. Here is the interfaces section in the host.xml: I checked my IP address of Machine A, and it’s 192.168.0.115, so I started the WildFly Server on Machine A by running the following commands in the bin directory of WildFly: $ pwd /wildfly-35.0.0.Final/bin $ ./domain.sh --host-config=host.xml -Djboss.bind.address.management=192.168.0.115 -Djboss.bind.address=192.168.0.115 -Djboss.domain.primary.address=192.168.0.115 Please note that the host.xml is the default value for the --host-config argument. So in this specific case we don’t have to add it. And I can see the server is started and here is the server log output of the above command: ========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /wildfly-35.0.0.Final JAVA: .sdkman/candidates/java/current/bin/java JAVA_OPTS: -Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djdk.serialFilter="maxbytes=10485760;maxdepth=128;maxarray=100000;maxrefs=300000" --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Djava.security.manager=allow ========================================================================= 17:06:49,064 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final 17:06:49,405 INFO [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final 17:06:49,428 INFO [org.jboss.as.process.Host Controller.status] (main) WFLYPC0018: Starting process 'Host Controller' 17:06:49,896 INFO [org.jboss.as.process.Host Controller.system.stdout] (stdout for Host Controller) [Host Controller] 17:06:49,875 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final [Host Controller] 17:06:50,385 INFO [org.jboss.msc] (main) JBoss MSC version 1.5.5.Final [Host Controller] 17:06:50,393 INFO [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final [Host Controller] 17:06:50,441 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: WildFly 35.0.0.Final (WildFly Core 27.0.0.Final) starting [Host Controller] 17:06:50,806 INFO [org.wildfly.security] (Controller Boot Thread) ELY00001: WildFly Elytron version 2.6.0.Final [Host Controller] 17:06:51,088 INFO [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0003: Creating http management service using network interface (management) port (9990) securePort (-1) [Host Controller] 17:06:51,099 INFO [org.xnio] (MSC service thread 1-3) XNIO version 3.8.16.Final [Host Controller] 17:06:51,103 INFO [org.xnio.nio] (MSC service thread 1-3) XNIO NIO Implementation Version 3.8.16.Final [Host Controller] 17:06:51,139 INFO [org.jboss.remoting] (MSC service thread 1-7) JBoss Remoting version 5.0.30.Final [Host Controller] 17:06:52,510 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0062: Http management interface listening on http://192.168.0.115:9990/management and https://192.168.0.115:-1/management [Host Controller] 17:06:52,510 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0053: Admin console listening on http://192.168.0.115:9990 and https://192.168.0.115:-1 [Host Controller] 17:06:52,546 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly 35.0.0.Final (WildFly Core 27.0.0.Final) (Host Controller) started in 3066ms - Started 70 of 71 services (14 services are lazy, passive or on-demand) - Host Controller configuration files in use: domain.xml, host.xml - Minimum feature stability level: community From the above server log output, I can see the server-bound address is 192.168.0.115 instead of the default 127.0.0.1. Then I opened another terminal window and ran the following command in the bin directory of the WildFly server: $ ./add-user.sh -u admin -p 123 Added user 'admin' to file '/wildfly-35.0.0.Final/standalone/configuration/mgmt-users.properties' Added user 'admin' to file '/wildfly-35.0.0.Final/domain/configuration/mgmt-users.properties' From the above command output, we can see the admin user is added and its password is 123. This added user will be used on the Secondary Host Controller to connect to the Primary Host controller. Please note that the above command didn’t generate a secret value related to the generated admin user as described you may find in the other online materials, which is already deprecated since WildFly 25. So the following secret configuration on the Secondary Host Controller is already deprecated: As the Primary Host Controller is started on Machine A, now we can check the WildFly server configuration on Machine B. As planned, the Host Controller is named secondary, and it will be connected to the Primary Host Controller on Machine A, which acts as the domain controller. Now we can check the configuration on the Secondary Host Controller. The Secondary Host Controller on Machine B will use the host-secondary.xml file as its configuration file. Please note that to edit the host-secondary.xml file in CLI, you should use this command to connect to the embedded server and use the correct host controller file: [disconnected /] embed-host-controller --host-config=host-secondary.xml [domain@embedded /] We need to make some modifications to this file. First I need to add the name property to the host section: Here is the method to use the CLI command to modify the host controller name: $ ./wildfly-35.0.0.Final/bin/jboss-cli.sh You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands. [disconnected /] embed-host-controller --host-config=host-secondary.xml [domain@embedded /] /host=unknown-host.unknown-domain:write-attribute(name=name,value=secondary) { "outcome" => "success", "result" => undefined, "server-groups" => undefined, "response-headers" => {"process-state" => "reload-required"} } [domain@embedded /] /host=unknown-host.unknown-domain:reload(admin-only=true) {"outcome" => "success"} Please note that if you use tab complete, it should autocomplete your default host name. Giving the host a name can help to analyze the server log output later. So I need to define this authentication-context in the elytron subsystem. This configuration is different from the legacy authentication. Here are the details: ... ... Here is the equivalent CLI command to do the configuration: [domain@embedded /] /host=secondary/subsystem=elytron/authentication-configuration=myConfig:add(sasl-mechanism-selector=DIGEST-MD5, authentication-name=admin, realm=ManagementRealm, credential-reference={clear-text="123"}) {"outcome" => "success"} [domain@embedded /] /host=secondary/subsystem=elytron/authentication-context=myCtx:add(match-rules=[{match-host="${jboss.domain.primary.address}", authentication-configuration=myConfig}]) {"outcome" => "success"} The above configuration shows how to configure the elytron subsystem to provide user admin and its password 123 for usage. The authentication-configuration section is added, and the authentication context myCtx is using this configuration. Please note this is only one way to provide username and password via the Elytron subsystem, and you can avoid using clear-text to provide the password. I won’t dig into more details on how to use Elytron in this blog post, but you can always refer to its document to learn its usage[]. Then I need to add modify configuration of the domain-controller: As the configuration is shown above, I defined the authentication-context to be used as myCtx. Here is the equivalent CLI command to do the configuration: /host=secondary:write-attribute(name=domain-controller.remote.authentication-context, value=myCtx) { "outcome" => "success", "result" => undefined, "server-groups" => undefined, "response-headers" => {"process-state" => "reload-required"} } After configuring the authentication part in the host-secondary.xml file on Machine B, the last thing is that I disabled the server-one and left only server-two in the configuration: Again it’s better to use the CLI command to do the configuration: /host=secondary/server-config=server-one:remove Until now all the configurations are done, and then I can start the WildFly server on Machine B with the following command: ❯ ./domain.sh --host-config=host-secondary.xml -Djboss.bind.address.management=192.168.0.113 -Djboss.bind.address=192.168.0.113 -Djboss.domain.primary.address=192.168.0.115 In the above command, I assign the value host-secondary.xml to the host-config property, and I assign values of jboss.bind.address.management and jboss.bind.address as 192.168.0.113, which is the IP address of Machine B itself. I assigned the value of jboss.domain.primary.address as 192.168.0.115, which is the IP address of Machine A. On Machine A, there is a WildFly server running as a domain controller as described above. Now we can see the server log output of the above command from Machine B: ========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /wildfly-35.0.0.Final JAVA: .sdkman/candidates/java/current/bin/java JAVA_OPTS: -Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djdk.serialFilter="maxbytes=10485760;maxdepth=128;maxarray=100000;maxrefs=300000" --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Djava.security.manager=allow ========================================================================= 17:17:30,558 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final 17:17:30,668 INFO [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final 17:17:30,677 INFO [org.jboss.as.process.Host Controller.status] (main) WFLYPC0018: Starting process 'Host Controller' 17:17:30,855 INFO [org.jboss.as.process.Host Controller.system.stdout] (stdout for Host Controller) [Host Controller] 17:17:30,847 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final [Host Controller] 17:17:31,008 INFO [org.jboss.msc] (main) JBoss MSC version 1.5.5.Final [Host Controller] 17:17:31,010 INFO [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final [Host Controller] 17:17:31,026 INFO [org.jboss.as] (MSC service thread 1-1) WFLYSRV0049: WildFly 35.0.0.Final (WildFly Core 27.0.0.Final) starting [Host Controller] 17:17:31,158 INFO [org.wildfly.security] (Controller Boot Thread) ELY00001: WildFly Elytron version 2.6.0.Final [Host Controller] 17:17:31,270 INFO [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0003: Creating http management service using network interface (management) port (9990) securePort (-1) [Host Controller] 17:17:31,275 INFO [org.xnio] (MSC service thread 1-7) XNIO version 3.8.16.Final [Host Controller] 17:17:31,278 INFO [org.xnio.nio] (MSC service thread 1-7) XNIO NIO Implementation Version 3.8.16.Final [Host Controller] 17:17:31,289 INFO [org.jboss.remoting] (MSC service thread 1-7) JBoss Remoting version 5.0.30.Final [Host Controller] 17:17:32,666 INFO [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0148: Connected to the domain controller at remote+http://192.168.0.115:9990 [Host Controller] 17:17:32,692 INFO [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0023: Starting server server-two 17:17:32,800 INFO [org.jboss.as.process.Server:server-two.status] (ProcessController-threads - 3) WFLYPC0018: Starting process 'Server:server-two' [Host Controller] 17:17:33,442 INFO [org.jboss.as.host.controller] (management task-1) WFLYHC0021: Server [Server:server-two] connected using connection [Channel ID 20a1192c (inbound) of Remoting connection 79a44d09 to 192.168.0.113/192.168.0.113:61942 of endpoint "secondary:MANAGEMENT" <6894739b>] [Host Controller] 17:17:33,452 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0062: Http management interface listening on http://192.168.0.113:9990/management and https://192.168.0.113:-1/management [Host Controller] 17:17:33,452 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0054: Admin console is not enabled [Host Controller] 17:17:33,453 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly 35.0.0.Final (WildFly Core 27.0.0.Final) (Host Controller) started in 2754ms - Started 70 of 71 services (14 services are lazy, passive or on-demand) - Host Controller configuration file in use: host-secondary.xml - Minimum feature stability level: community [Host Controller] 17:17:33,453 INFO [org.jboss.as.host.controller] (server-registration-threads - 1) WFLYHC0020: Registering server server-two From the above server log output on Machine B, we can see the WildFly server is started and server-two is started. In addition, it’s connected to the Domain Controller on Machine A. Here is the server log output from the WildFly server on Machine A: [Host Controller] 17:17:32,549 INFO [org.jboss.as.domain.controller] (Host Controller Service Threads - 23) WFLYHC0019: Registered remote secondary host "secondary", JBoss WildFly 35.0.0.Final (WildFly 27.0.0.Final) From the above Primary Host Controller log output, I can see the secondary host is connected, so it starts to accept the management of Primary Host Controller, which acts as the domain controller. Now I can open the web browser on Machine A to access the WildFly server admin console: Please note that I can’t use the IP address 127.0.0.1 here, because the WildFly server is listening to the public IP address of Machine A, which we have assigned to the jboss.bind.address.management property during the server startup process. Here is the screenshot of the admin page of the WildFly server: We need to enter admin as the username and 123 as the password, which is the user we added as the management user above. And then we can enter the admin page of the server: As we have entered the WildFly admin page, we can try to deploy an example application. There is a helloworld project in the WildFly Quickstart project: * The above project is a simple application that just contains a servlet that will respond with the text
Hello World!
to the request. So I cloned the WildFly Quickstart project into my local environment and then built the helloworld project to generate the helloworld.war: $ pwd /wildfly-quickstart/helloworld $ mvn install ... [INFO] BUILD SUCCESS ... ❯ ls target/*.war target/helloworld.war As the project is built, I can deploy the above WAR file into the WildFly server group. So I go back to the WildFly admin page, and then I can click the Deployments on the top menu and click the Upload Deployment: From the above screenshot, you can see that I tried to deploy the sample project into the other-server-group. I use this server group because I have configured servers on both Primary Host Controller and Secondary Host Controller hosts into this server group. Here is the deployment diagram for the server group: As the diagram shown above, I will use the domain controller’s admin page to deploy helloworld.war into the other-server-group, so the project will be deployed to server-two and server-three, because they both belong to other-server-group. Coming back to the WildFly admin page, I drag and drop the helloworld.war into the deployment page: Then I clicked Next and left the deployment configuration fields as default: Then I clicked Finished and reached the Deployment successful page: Now the helloworld.war is deployed to all the managed servers in the other-server-group. Now I click the Deployments on the top menu of the admin page, and then click the other-server-group, we can see that the helloworld.war is deployed into the server group: As the helloworld project is deployed, we can check the statuses of the two Host Controllers. I clicked the Runtime on top of the menu of the admin page, and then clicked the primary host tab, then I saw that server-three has not started yet: This is because the auto-start property is configured to false in the host.xml of the primary host: So I need to click the Start button of the server-three: After a while the server-three is started: Because we didn’t configure the auto-start to false on the Secondary Host Controller, so it’s already started: From the above screenshots, we can see that the URL of server-two is , and the URL of server-three is . Their ports are different because the port-offset property settings are different. For server-three, the port-offset is configured like this: Because the port-offset is set to 250 for server-three, and the default HTTP port setting is 8080, so 8080+250=8330. For server-two, the configuration is like this: As the port-offset setting is 150, the calculated HTTP port is 8080+150=8330, which is expected. Now we can use the curl command to do the requests to both the Machine A and the Machine B to see if the helloworld project is deployed on two both of the machines: ❯ curl http://192.168.0.115:8330/helloworld/HelloWorld helloworld
From the above command output, we can see that the helloworld project is deployed two both hosts. Though they are running on two different machines, because these two hosts are in the same other-server-group and they are managed by the domain controller, so the project is deployed to both hosts. I hope this blog post can be helpful to update your knowledge base to see how to use the domain mode in the most current WildFly release. For convenience, I have put the host.xml of the Primary Host Controller and the host-secondary.xml of the Secondary Host Controller online for reference[]. REFERENCES -------------------------------------------------------------------------------- . . . . . .]]>
+
+ 阿男
+
+
+
+
+ https://quarkus.io/blog/quarkus-3-18-3-released/
+
+ 2025-02-12T00:00:00.000Z
+
+
+ Guillaume Smet
+
+
+
+
+ https://www.keycloak.org/2025/02/keycloak-2612-released
+
+ 2025-02-11T00:00:00.000Z
+
+
+
+
+
+
+
+ https://quarkus.io/blog/quarkus-newsletter-53/
+
+ 2025-02-11T00:00:00.000Z
+
+
+ James Cobb
+
+
+
+
+ https://vertx.io/blog/eclipse-vert-x-4-5-13
+
+ 2025-02-10T00:00:00.000Z
+
+ Julien Viet
+
+
+
+
+ https://wildfly.org//news/2025/02/10/Glowing-with-AI/
+
+ 2025-02-10T00:00:00.000Z
+ org.wildfly.pluginswildfly-maven-plugin${version.wildfly.maven.plugin}org.wildfly:wildfly-galleon-pack:${version.wildfly.server}* org.wildfly:wildfly-ai-feature-pack:${version.wildfly.ai.feature.pack}ee-core-profile-serverjaxrsollama-chat-modelgroq-chat-modelopenai-chat-modeldefault-embedding-content-retrieverROOT.wartruepackage But using WildFly Glow we can make that way simpler: org.wildfly.pluginswildfly-maven-plugin${version.wildfly.maven.plugin}${version.wildfly.server}incubatingROOT.wartruepackage AS you can see we are using the discoverProvisioningInfo element to define which version of WildFly server we want to start from. AS you can see we have added an incubating space which enables the discovery of the WildFly AI Feature Pack. Now when we run Apache Maven we can see the following traces : As you can see, Glow discovered the use of the following LLMs: * ollama-chat-model * openai-chat-model * groq-chat-model How did Glow found those ? HOW GLOW WORKS UNDER THE HOOD FOR THE WILDFLY AI FEATURE PACK ? Here is where the magic is happening : @ServerEndpoint(value = "/chatbot", configurator = CustomConfigurator.class) public class ChatBotWebSocketEndpoint { private static final Logger logger = Logger.getLogger(ChatBotWebSocketEndpoint.class.getName()); @Inject @Named(value = "ollama") ChatLanguageModel ollama; @Inject @Named(value = "openai") ChatLanguageModel openai; @Inject @Named(value = "groq") ChatLanguageModel groq; //@Inject Instance instance; private PromptHandler promptHandler; private Bot bot; private List clients = new ArrayList<>(); private final List transports = new ArrayList<>(); private Session session; private final ExecutorService executor = Executors.newFixedThreadPool(1); private final BlockingQueue workQueue = new ArrayBlockingQueue<>(1); // It starts a Thread that notifies all sessions each second @PostConstruct public void init() { ... } ... } As you can see, we inject dev.langchain4j.model.chat.ChatLanguageModel in the org.wildfly.ai.chatbot. ChatBotWebSocketEndpoint using a @Named annotation. This is the rule that Glow uses to detect what the application is using. You can see the Glow rule . So this explain why Glow is detecting that the WildFly MCP application is using Groq,OpenAI and Ollama. Of course, similar rules exist for the embedding models and embedding store. IN CONCLUSION As you could see, developping a Generative AI application using WildFly Glow and the WildFly AI Feature Pack is, as Duke Nukem used to say, a piece of cake.]]>
+
+ Emmanuel Hugonnet
+
+
+
+
+ https://wildfly.org//news/2025/02/06/WildFly3501-Released/
+
+ 2025-02-06T00:00:00.000Z
+
+
+ Darran Lofthouse
+
+
+
+
+ https://www.keycloak.org/2025/02/keycloak-2611-released
+
+ 2025-02-05T00:00:00.000Z
+
+
+
+
+
+
+
+ https://www.jboss.org/posts/weekly-2023-07-03.html
+
+ 2023-07-03T00:00:00.000Z
+
+
This Week in JBoss - July 03, 2023
+
Hello to our dear JBoss community.
+We, the editorial team, have noticed a downward trend in our readership and have made the decision to no longer carry on.
+There are many great blogs out there and the JBoss community of projects is producing a lot of great content for you to learn from.
+However, with the steady decline in our editorial views, we no longer feel the effort we put into distilling the blogs and tutorials is having the sort of impact that we would hope.
+Writing up the editorials is more work than you might expect and takes a good chunk of time that we could devote to doing our actual jobs or hacking on code.
+
It has been a great ride and we wish you all the best.
+We thought about doing a sort of highlight reel to round up some of our favourite blog posts and moments doing the editorial, but realized probably no one is going to read it.
+So let’s stop shouting into the void and carry on building cool stuff.
First and foremost! Dear readers, we want our opinion about the content of the editorial. We know filling up poll can be annoying, so you made as simple as possible… Please answer our one question onlypoll on our editorial! Thanks!
+
Two of the biggest stars of the JBoss ecosystem are for sure Quarkus and, of course, Wildfly, the application server that used to be called, well, JBoss! The last weeks have seen a lot of interesting content and news around those two projects, so we are going to focus this editorial on them. Buckle up, there is a ton of passionating stuff coming your way!
+
+
Quarkus
+
+
The last two weeks have seen again quite a few interesting news, and content released, for the "Supersonic Subatomic Java" framework Quarkus! On top on the 3.1.0.Final release and the 3.0.4.Final release a new guide to migrate to those versions have been published: Migration to Quarkus 3.0 is a breeze! No reason to stay behind now, jump on board of Quarkus 3!
+
I’m also happy to mention that my guide on Automate Quarkus deployment with Ansible has been added to the website. Hope it helps Quarkus user who wants to automate their deployment!
+
+
+
+
Be The Boss of Wildfly
+
+
In the unlikely case, you have never heard of this website, Master The Boss, that has been around since forever, you have a chance to discover today. It has been publishing content on JBoss for over a decade and the articles published in the last week are pretty example of the site’s richness.
A last note on Ansible, that may interest people of the community. There is a very cool new project called Event Driven Ansible using, behind the curtains, another cool project of the JBoss community: Drools!
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 3.0.3.Final released - The Quarkus Team released Quarkus 3.0.3.Final, as part of the second maintenance release of our 3.0 release train. This release contains bugfixes and documentation improvements.
+
+
+
Kogito 1.37 released - The new Kogito release features enhancements in the flow actions, workflow definitions logging and service discovery.
+
+
+
Camel RELEASE 4.0.0-M3 available - The Camel community announces the availability of Camel 4.0.0-M3, the third milestone towards a new 4.0.0 major release which comes with 155 new features and improvements.
Kafka transactions play a vital role in guaranteeing the reliability and integrity of data, making them a pivotal component of the Kafka platform. Nevertheless, these benefits are accompanied by a trade-off in terms of decreased throughput and added latency, necessitating potential adjustments. Neglecting to monitor transactions that remain unresolved can adversely affect the availability of the service. This article sheds some light on this topic.
+
+
+
+
How to use the new OpenShift quick starts to deploy JBoss EAP
This article showcases the latest JBoss EAP quick start, specifically created to assist developers who are already familiar with conventional JBoss EAP deployments. Its purpose is to provide a comprehensive walkthrough on constructing and deploying application images on OpenShift. The quick start offers valuable guidance on utilizing Helm to generate the necessary build configs, deployment configs, and external routes for building and deploying JBoss EAP applications on OpenShift.
+
+
+
+
Integrate Excel with Drools on OpenShift with Knative and Quarkus
In this blog post, Matteo shares the results of a technical exploration of bringing together different technologies and platforms. At the end of the day, he combined things like regular spreadsheet applications (like Excel), serverless platforms (Knative on OpenShift), and our rule engine Drools to see how they could work together.
In this tutorial, I’m introducing the Podman desktop UI which simplifies the usage and management of container images. As an example, we will learn how to pull, start, and monitor a WildFly Container image with just a few clicks!
+
+
+
+
What’s new in Red Hat’s migration toolkit for applications 6.1
Red Hat Migration Toolkit is an essential tool to simplify the upgrade or migration of a large set of enterprise applications. This article gives you an update with the latest news and includes a great demo video.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
WildFly 28 includes support for YAML configuration which offers a more flexible approach in some use cases. In this tutorial we will discuss which are the best scenarios where YAML configuration is a perfect fit and how to configure WildFly to use YAML files.
Server Connector for IntelliJ, also known as IntelliJ-rsp, is a tool for acquiring, locating, installing, starting, stopping, and deloying artifacts to Application Servers like WildFly and EAP. In this article, the author gives us an introduction into IntelliJ-rsp.
The RESTEasy tracing feature has been integrated into WildFly since its version 28. In this article, Wei focuses on the usage of this feature in WildFly.
Anyone running REST Assured tests has probably run into errors such as failing assertions or incorrect responses.
+If that is the case for you, then this article from Francesco will no doubt be valuable as he explains some solid techniques for debugging that quickly identify root causes and save you time getting things fixed.
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Infinispan 14.0.7 - Although it’s just a minor release update, there is an important update in it: the support for Spring 6 and Spring Boot 3 is finally available! Check the blog post for more news about this release.
+
+
+
Quarkus 3.0.0.Alpha6 released - This new minor release continues the path to the upcoming Quarkus version. Besides, it contains an enhancements to export OpenTelemetry data via JDBC.
+
+
+
Camel RELEASE 4.0.0-M2 available - The Camel community announces the availability of Camel 4.0.0-M2, the second milestone towards a new 4.0.0 major release which comes with 75 new features and improvements.
This article discusses the ease of getting started with Ansible Middleware Collections and installing the Red Hat Ansible Automation Platform. It describes a tutorial that demonstrates how to configure a WildFly instance using Ansible in six steps, starting with preparing a local machine with the necessary tooling and deploying an instance of WildFly using the WildFly collection provided by the Ansible Middleware.
The wildfly-maven-plugin now includes a dev goal that functions similarly to the run goal, but with the added feature of monitoring source files for changes. In the event of any changes, the plugin automatically rebuilds and redeploys the WAR. This page documents the latest addition which is available in the version 4.1.0.Beta3 of the wildfly-maven-plugin.
+
Besides, you can check this step-by-step guide on how to enable live reload of WildFly applications using the dev goal.
Camel K is a lightweight integration framework built from Apache Camel K that runs natively in the cloud on OpenShift. If you want to get started with it in less than 5 minutes, than this is the article for you!
Strimzi 0.34.0 has been released with multiple new features and improvements such as Stable Pod names in Connect. This video will give you an heads up about the new release in just 3 minutes!
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Two more article before we end this installment. First, one on Overhauling memory tuning in OpenJDK containers, certainly a topic interesting to anyone deploying Java app inside containers. The second one is from yours truly, it’s about using Ansible to set up and configure your own SSO with Keycloak. I hope you’ll enjoy it! And that note…
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Welocme back everyone!
+I don’t know about where you happen to be, but where I’m living, we had the second largest snow storm in recorded weather history.
+I’ve been digging out my driveway and front door for a couple of days.
+Needless to say, it has been a bit cold here.
+
Also, my thoughts go out to those affected by the war between Russia and Ukraine, on this one year anniversary.
+Please stay as safe as you can.
+
+
Releases
+
+
+
+
+
Kogito 1.33.0 - This release includes some version bumps, further integrations, and of course, some bug fixes.
Express Hibernate Queries as Type-Safe Java Streams - Julia discusses the library JPAStreamer. It allows you to write persistence queries in a more stream-like manner and also making the queries performant.
It’s great to be back and bringing you the 2nd edition of the JBoss Editorial of 2023.
+We have a lot of exciting news and updates from JBoss world, so enjoy.
Writing a Serverless Workflow that matches with the specification’s rules and schema can require some documentation reading, which demands a few hours. In this article Saravana show how to implement a validation mechanism on Serverless Workflow Editor, that checks JSON and YAML files against Serverless Workflow specifications schema and also provides some custom validations in addition to it.
+
+
+
+
New Feature: Dashbuilder Editor With Intellisense Capabilities
In this great blog post Ajay introduces the new dashboard feature that now have auto-complete capabilities. This provides the user experience by providing suggestions and helps to reduce the errors made while authoring the dashbuilder specification.
+
+
+
+
Synchronize Your Kie Sandbox Workspace With Bitbucket Or Github
The new version of Red Hat JBoss EAP 8-Beta introduced changes to the provisioning and configuration of JBoss EAP application images on Red Hat OpenShift. In this great article, Philip shows the easiest way to put the EAP 8-Beta on the cloud using Openshift.
In this tutorial, Marchioni show the first steps on the Keycloak world. You will know how to start and configure the Keycloak based on Wildfly and also, the Keycloak based on Quarkus.
This article shows how to enable logs compression in WildFly by setting the appropriate suffix in your Periodic Rotating File Handler. In the second part of this tutorial we will learn how to compress logs using Log4j instead.
This article gives a brief overview of the data streaming platform DataCater, discusses how we moved from Scala Play! and Kafka Streams to Quarkus, and presents why we think that Quarkus is an exceptional framework for developing cloud-native Java applications.
If you want to learn more about AI on Openshit, you need to know the AI ON Opensfhit with demos, patterns, and other Machine Learn, MLOps, and AI stuff. You also may want to more about MLOps and Open Data Hub project. Open Data Hub (ODH) is an open source project that provides open source AI tools for running large and distributed AI workloads on the OpenShift Container Platform. So, go ahead and read the new Open Data Hub documentation.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Hi everyone!
+It’s great to be back and bringing you another edition of the JBoss Editorial.
+As always there’s a lot of exciting news and updates from JBoss communities, so let’s dive in.
Romain treats us to a brief demonstration that uses Ansible to effortlessly set up a WildFly cluster.
+Romain uses a short, simple playbook that fully automates his deployment and really shows how Ansible collections can greatly simplify configuration and reduce the time it takes to create large clusters with hundreds of nodes.
I have to say I’m a huge fan of JBang.
+What’s not to love about an easy-to-use tool that makes scripting with Java a breeze?
+When I noticed the title of Francesco’s post, I clicked it immediately and dug right in.
+It did not disappoint and showed a neat JBang CLI script that uses picocli libraries to find the Maven versions of an artifact in your local repository.
Bilgin’s post is a great resource for anyone exploring the Apache Kafka ecosystem and provides a lot of time-saving data around various projects, tools, and services related to Kafka.
William delivers a snappy article that shows you how to publish Dashbuilder dashboards and easily make them available to users in almost no time at all.
Galder’s informative post takes us through an examination of the recent change to the garbage collection policy for Quarkus native applications.
+The change aligns with GraalVM’s default "adaptive" GC policy to provide a better out of the box experience.
+Galder shows us in spectacular detail how this change brings about more consistent and predictable runtime performance.
Surely by now you’ve heard of Event-Driven Ansible but maybe you only have a rough idea of how the technology works?
+Well, great news!
+
The team have started office hours to demo and explain how Event-Driven Ansible allows you to subscribe to an event-listening source and then quickly and easily automate tasks that respond to those events. Follow the link above to find the latest webinar and learn from the community.
Welcome to our last installment of JBoss Editorial for 2022! As we are about to let this year behind us, it’s time to look back and review our biggest achievement of the past twelve months, but also look ahead to 2023 and what is as in store for the JBoss community!
+
In the previous years, it was Mark Little who wrote this last editorial, often sharing his thoughts on the JBoss community accomplishments and the exciting challenges of the next year. Needless to say, I have impossible shoes to fill in for here! So, I’m not even trying to :), especially as I certainly don’t have the same overview that Mark has on our industry. Also, I will not list all of the milestones the JBoss community achieve. There were simply too many of them to do so, from Quarkus reaching its 200th release and its third major version, Wildfly implementing the latest version of the Jakarta EE specification or Keycloak named by GitHub one of the top projects in 2022. The only one I could really discuss is the success of my own personal project, integrating as much as possible the JBoss community famous projects into Ansible (Wildfly, Infinispan, Keycloak, and AMQ), both upstream (with the collection available on Ansible Galaxy) and downstream (on Ansible Automation Hub for Red Hat customers). One of those extensions is now even part, as a technical preview feature, of the latest release of Red Hat JWS! But, once more, this is only one of the numerous achievements of this year.
+
This short inventory of mine is probably as incomplete as it is biased, but it does make my case: yet again, the JBoss community has been thriving, releasing new version often, and producing quality content (blogs, videos or presentation). I, for one, can’t wait to see what will come out of it next year, and if you are too, well, I have good news. You are already in the right place ;)! The JBoss Editorial will continue and will keep you inform, as much as we can, of everything happening!
+
That’s all folks! Please join us again in two weeks for another installment of our JBoss editorial!
Welcome to our new installment of JBoss Editorial! It is almost Christmas, so you can read the best news regarding JBoss world before open the Christmas gift under the tree.
+
+
Releases, releases, releases…
+
+
It was a great two week with many releases! Enjoy the new features and improvements on our products
It is great video from Ashpan about Elytron Realms. He provides an introduction to using integrity verification in filesystem realms, a new feature added in WildFly 27.
+
+
+
+
New WildFly S2I and Runtime Multi-arch Images
+
+
On this article Denise provides details regarding the new S2I and runtime multi-arch images.
JBeret is a Java and Jakarta EE Batch Processing that implements the Jakarta Batch API specification, and on this article Wei Nan Li describes how to integrate the JBeret with Quarkus.
+
+
+
+
Integrate Red Hat Process Automation Manager with Springboot
OpenTelemetry is a set of APIs and libraries that provide a vendor-neutral and open standard for observability in cloud-native applications. On this another article, Marchioni will teach you how to use the OpenTelemetry API in a sample REST Service which uses WildFly Bootable jar technology as runtime.
Welcome to our new installment of JBoss Editorial! As the end of the year is near, we are packing as much goodness in this issue as possible, for you to have some passionating reading material to enjoy next to your Christmas tree.
+
+
Quarkus, still going strong
+
+
On top of the recent releases, of the past few weeks, the Quarkus community took the time to publish an article to present the Quarkus for AWS Lambda Snapstart. If you have any interest in Quarkus or cloud development, this is certainly a must read!
The last two weeks have seen the release of some introductions and presentations articles that are worth mentioning. The first one, my favorite because it talks about an unsung hero of the Wildfly ecosystem, is about : Introducing The Java Batch Processing API And JBeret Implementation. If you have no idea what this is about, please go check it out, this is bound to make your life easier!
+
After this is definitely this humble article entitled A Maven starter for Jakarta EE projects. Indeed, Maven has been at the heart of Java (and thus JBoss) technology for a long while now (around two decades), so such an introduction, for newcomers and experienced developers alike, is certainly nice to see.
It’s not strictly speaking JBoss community, but I’m too proud of this baby of mine to keep quiet about it. Since over a year, I’ve been part of an initiative to provide better integration between the automation tool Ansible and many of the middleware solutions being developed by the JBoss Community. We are quite to already have Ansible collections (extension for Ansible) that ease the setup of Wildfly, Infinispan, Keycloak, and AMQ Broker.
Releasing is crucial for Open Source project and releasing often is certainly the mark of healthy one, so it comes with no surprises that the last two weeks have already seen their fair share of releases:
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities. In this release under the spotlight you will see several articles about the new WildFly 27 release.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 2.14.1.Final - Quarkus 2.14.1.Final maintenance release is now available with some bugfixes and documentation improvements on top of our 2.14.0.Final release.
+
+
+
Camel Quarkus 2.14.0 Released - This new release aligns with Camel 3.19.0 and Quarkus 2.14.0.Final. It brings new extensions CloudEvents, Knative and DSL modeline. Many thanks to all contributors and issue reporters!
+
+
+
WildFly Bootable JAR 8.1 Released - The 8.1.0.Final version of the WildFly Bootable JAR Maven plugin has been released with many additions to simplify the development of Jakarta EE 10
+
+
+
Debezium 2.1.0.Alpha1 - Although still an Alpha release, we recommend Debezium users to check this early preview release which includes quite a number of bug fixes but also some noteworthy improvements
This article from Jeff shows how the new WildFly Docker images enable highly requested features such as ARM architecture, multiple JDK versions, on top of base images that are frequently updated to fix OS and JDK vulnerabilities
One more article about the distributed TimerService implementation that improves the scalability and efficiency of Jakarta EJB timers in a cluster by leveraging Infinispan for both timer availability/persistence and distribution of timer scheduling.
Another great article from Ashpan about Elytron Realms. In this one, he discusses how you can add integrity checking to your FileSystem Realm by using a public-private key pair.
I have recently added a two-article series about the gRPC framework which allows connecting services across data centers using high-performance Remote Procedure Calls (RPC). In this article, you will learn the building blocks of this framework and how to code a Java application using gRPC. In the follow up article, gRPC made easy with Quarkus you can learn how Quarkus simplifies the creation and test of gRPC applications using quarkus-grpc extension.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 2.13.3 - There is a new maintenance release with a new round of bug fixes and documentation improvements. This is a recommended upgrade since it fixes the CVE-2022-42003 Denial of Service (DoS) vulnerability in Jackson. (Check here the full change log
+
+
+
Camel 3.18.0 - Apache Camel 3.18.3 it’s available. This is a new LTS release with 52 new features, improvements and fixes. This release supports Java 11 and 17 and upgrades its BOMs to Spring boot 2.7.5. The artifacts are published and ready for you to download from the Central Maven repository. For more details please take a look at the release notes
+
+
+
Debezium 1.9.7.Final Released - The Debezium is glad to announce the release of Debezium 1.9.7.Final. This release focuses on bug fixes and stability; and is the recommended update for all users from earlier versions. There are no breaking changes in this release. To learn more, check the release notes
The Drools team is happy to announce that our rule engine reached the new major release 8. In this article, Mario discusses how the engine has been heavily reworked to make it more modular, isolating the non-core features in separated modules that users can optionally bring into their projects only when specifically required.
Find out how you can configure Distributed EJB Timers within an Infinispan cache. This feature aims to make your cluster scale horizontally for applications using extensively EJB Timers. Available since WildFly 27.
+
+
+
+
How Ansible automates JBoss Web Server updates and upgrades
It’s time to automate the deployment of JBoss Web Server in your IT! This article from Romain shows how to use Ansible and the JWS collection to fully automate the deployment, patch and upgrades of your JWS installations.
Debugging camel Routes can also be done within Sublime text editor. Just a few days after showing how to add debug support in Emacs, Navyashree teaches us how to attach Camel application to Sublime text editor for debugging.
+
+
+
+
How Kamelets simplify Camel integrations on Kubernetes
Camel K is a lightweight integration framework based on Apache Camel that runs natively on Kubernetes to create serverless and microservice architectures. Learn about the advantages and types of Kamelets configuration files which simplify connections to external systems.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Welcome back everyone!
+We’re here with another JBoss Editorial, highlighting some of the great work done in the community and within Red Hat as it relates to middleware.
+Like always, we have some news from the blogosphere and releases.
+No new videos out this week.
+Let’s get started!
+
+
Releases
+
+
+
+
+
Kogito 1.29.0.Final - Mostly a bug fix release, but there are some breaking changes, please review before upgrading
+
+
+
Drools 8 - A brand new major release for Drools! This is great news for everyone. New features abound, and migrations as well. Be sure to check it out and read about everything that is new.
+
+
+
Quarkus 2.13.2.Final - Bug fixes and documentation improvements abound in this release. If you’re on 2.13, be sure to upgrade!
Byteman 4.0.20 - This release works all the way up to JDK 20, and also includes a couple of bug fixes!
+
+
+
+
+
+
+
Blogs
+
+
+
+
+
How to run Artemis Messaging in a Bootable Jar - If you’re running a Wildfly application as a bootable jar, you’ll want to take note of this. Running your application as a bootable jar is a great way to get started moving towards containers, or even building a container around the bootable jar.
+
+
+
Quarkus Newsletter 25 - If you’re looking to catch up with what is happening in Quarkus, look no further. James Cobb gives us a great rundown of things happening in the Quarkus community.
+
+
+
Hacktoberfest - There’s still time to get involved in Hacktoberfest! Be sure to check it out and join others in building better Open Source Software.
+
+
+
+
Thanks everyone for visiting, we hope to see you back next time!
Hi everyone!
+It’s great to be back and bringing you another edition of the JBoss Editorial.
+As always there’s a lot of exciting news and updates from JBoss communities, so let’s dive in.
UFOs, beer, a RESP endpoint, FIPs support for remote caches, a wizard that makes creating complex cache configuration a breeze, what’s not to love?
+From Tristan’s release announcement it certainly sounds like there are a lot of great new features and capabilities to help establish the Infinispan project as the default choice for open-source, in-memory caching.
+Congrats again to the Infinispan team on all the amazing work!
Francesco provides a crisp introduction to the Model-View-Controller (MVC) framework for building HTTP applications and delves into where the MVC API sits within the Jakarta ecosystem.
+In his post, Francesco provides code samples for an MVC app that show how to perform standard operations.
+
It’s a solid resource for anyone interested in the MVC pattern.
+Francesco even provides his ee-mvc-demo source to play around with.
In another blog post, Francesco takes us on a tour of Jakarta Persistence 3.1.
+Using the Jakarta EE 10 runtime and the WildFly 27 Preview release, Francesco shows us how to use java.util.UUID to automatically generate a Primary Key and other cool JPQL functions.
+Francesco shows us how to extract the numeric parts from a given date and do some other interesting Math, Date, and Time functions.
+
Once again, Francesco provides his source for us to try out.
+You can find it in the uuid-demo repository.
Toshiya runs down memory issues frequently encountered in Drools troubleshooting.
+Dividing them into three categories - long-term memory leaks, OOM errors when building rules, and OOM errors executing KieSession - Toshiya expertly explains how to solve each memory issue.
Eder highlights a recent comparative analysis, by Keith Swenson, of TrisoTech DMN Modeler, Camunda, Red Hat Drools Workbench, and KIE Sandbox.
+I think it’s worth reading Eder’s post for yourself.
+Should you need convincing, I offer this snippet from Keith’s feedback on KIE tools:
+
"… if you want practical experience with DMN models and running the models, go right to KIE Sandbox. It works."
Hi everyone and welcome to the latest installment of JBoss editorial! Today’s stars of the show: Quarkus and KIE (Kogito/Drools)
+
+
Quarkus
+
+
Quarkus is quite busy this month! Just yesterday, the project released Quarkus 2.12.3.Final, the third round of bugfixes and performance enhance of for the 2.12, which we mentioned in our previous editorial. But that’s not all, Quarkus tooling also got some love with the release of Quarkus Tools for IntelliJ 1.13.0 released!.
+
Beyond the publication of new software and bugfixes, James Cobb also took the time to publish the 24th installment of the Quarkus Newsletter, a must-read for anyone who wants to follow or play with Quarkus! And to this point, an interesting new player has joined the project’s community: Quarkus adoption by APHP (Assistance Publique des Hôpitaux de Paris)!
+
Of course, if you are already familiar with Quarkus, you may want something more technical to quench your thirst and Clément Escoffier has just the article for you: How to implement a job queue with Redis.
+
+
+
+
KIE
+
+
KIE community has been quite active too in the last days and produced quite an amount of interesting articles about their technology. First, we’ll suggest you’ll dive into this one about Creating your first cloud-agnostic serverless application with Java. It’s a good place to start!
+
Another one, called New visualizer for the Serverless Workflow Editor provides a nice overview of this new tool and we’ll certainly learn more about it and use it. If you are more interested into technical details and implementation, you are in luck, there is a rather detailed overview of the Efesto refactoring.
Welcome back, glad to have you back with us this week!
+Progress continues to happen at JBoss, and Red Hat.
+We have some releases, blogs, and a couple of videos as well.
+
+
Releases
+
+
+
+
+
Quarkus 2.12.0 - GraalVM/Mandrel 22.2, Kotlin 1.7, Smallrye Config SecretKeys, and SQL Server JDBC Driver update
Hi everyone!
+It’s great to be back and bringing you another edition of the JBoss Editorial.
+As always there’s a lot of exciting news and updates from JBoss communities so let’s dive in.
Since the launch of Japanese ja.quarkus.io, we got contributors translating the website into (simplified) Chinese at cn.quarkus.io and recently we added Spanish at es.quarkus.io too. These sites are now accessible via the drop-down "globe" menu in the top-right corner.
In this post Kabir shows how to write a simple application which sends and receives messages to/from a Kafka instance using RHOSAK. RHOSAK - Red Hat OpenShift Streams for Apache Kafka, is a cloud service hosted by Red Hat which makes setting up, managing, and scaling Apache Kafka instances very easy
In this article, Francesco shows the basics of the AtlasMap data mapping solution. He also covers the basic set up of the Web UI and how to use it to create a minimal mapping file. Finally, he discusses two simple ways to use AtlasMap in your Java projects.
The just-in-time (JIT) compiler in OpenJDK improves Java performance through a number of optimizations, particularly in loops. Until recently, many optimizations worked only when the loop index was an int variable. In this article, Roland shows how the HotSpot virtual machine was upgraded to add the same optimizations for long variables.
In this announcement, Matteo introduces an (experimental) DMN FEEL handbook, a helpful companion for your DMN modeling activities! You can access the FEEL handbook at DMN FEEL handbook
+
+
+
+
YouTube videos
+
+
From unmissable demos to brilliant chat about the latest Java trends, the JBoss community has some great video content for you:
Hi everyone!
+It’s great to be back and bringing you another edition of the JBoss Editorial.
+As always there’s a lot of exciting news and updates from JBoss communities so let’s dive in.
Jeff explains how to use the wildlfy-maven-plugin and the new WildFly runtime image to build container images.
+The WildFly Maven plugin, currently in beta with Final planned for WildFly 27, offers a new, and very compelling, architecture to control the full runtime from the application pom.xml.
+Developers control the full customization of WildFly using feature packs, packaging scripts, and other artifacts.
+This approach ensures that the runtime fits the user’s application.
+Creating a container image is simply a matter of putting it in a runtime image that contains OpenJDK.
+
The WildFly team are starting an open conversation to bring additional synergies between the Docker and S2I images for WildFly that could benefit the whole community.
+The team are aiming to bring new capabilities, additional architectures (in particular linux/arm64), and newer versions of the JDK to all WildFly images.
+Be sure to check out Jeff’s post and find out how you can get involved!
Francesco takes a look at the Jakarta Bean Validation specification which allows you to express constraints on your model and create custom ones in an extensible way.
+His detailed post shows you how to write a constraint once and use it in any application layer.
+Given that Bean validation is layer agnostic, meaning that you can use the same constraint from the presentation to the business model layer.
In this article, Jeff explains how Kogito rules services can reason over application domain model facts that are represented using plain old Java objects, or POJOs, that use standard Java inheritance.
+DRL rules files can use POJOs as well as client applications that call the Kogito rules services.
+
Jeff explores two approaches for sharing Java subclasses between a Kogito rules service and a client application.
+The first approach isolates objects from each subclass into a JSON array while the second approach uses Jackson inheritance annotations to embed objects from each subclass for REST API calls that serialize and deserialize POJOs to and from JSOn.
Hello, everyone. Welcome to the latest edition of This Week in JBoss. We are in the middle of summer, but our favorite projects keep coming up with cool new releases, dev tips, and demos. Take a look at the JBoss community content highlights from the past 2 weeks.
+
+
Releases, releases, releases!
+
+
Here are the releases from the JBoss Community for this edition:
Managing SSL certificates for your cloud native apps can sometimes get a little tricky. Cert-manager, a popular tool for cloud-native certificate management helps makes this task a lot easier. But before they can start using it, developers need to deal with creating custom resources that cert-manager requires. Enter Dekorate, the tool that significantly decreases the complexity of managing custom resource for Kubernetes and OpenShift. This walkthrough demonstrates how Dekorate automatically creates cert-manager custom resources from annotations in your code. You can then install these resources in a project on your cluster and use them to secure the REST endpoints of your application with TLS. The article provides rich code examples for every step, and also an example application project based on Spring Boot that you can use to follow along with the walkthrough.
+
+
+
New HTTP clients, a Java generator, and more in Fabric8 6.0.0
The Fabric8 Kubernetes client has been making cloud-native development with Java easier for years. After more than five months of intensive work, the release of Fabric8 6.0.0 brings a host of innovative features and capabilities to the core components and utilities in the Fabric8 suite. Steven Hawkins and Andrea Peruffo show off some the coolest features and important bugfixes that the new release has to offer. Check out their article to see the highlights
+
+
+
How to use Java Mission Control to monitor Java apps
Those of you with an interest in monitoring the performance of your Java apps will find Francesco’s post especially informative. The article focuses on Java Flight Recorder (JFR), a JVM monitoring tool that also powers the recently released Cryostat project. In addition to offering insights into the JFR user experience compared to competing tools like JConosle and VisualVM (which he covered in earlier articles), Francesco also provides a quickstart guide for spinning up JFR with Java Mission Control to monitor a Wildfly server.
+
+
+
SaaS security in Kubernetes environments: A layered approach
In his most recent article, Alex Kubacki analyzes recommended practices for securing software-as-a-service applications. Opening with the argument that if you want to truly secure your applications, you must secure every layer of your application stack (all the way from the hardware to the container network interface), Alex moves on to break down the security concerns specific to each layer. He gives particular attention to the cluster and networking layers, where he highlights the benefits of recently released projects, including Advanced Cluster Security for Kubernetes and the more recent networking security innovations in OpenShift.
+
+
+
+
+
Videos
+
+
Since we are in middle of vacation season, there isn’t as much new content coming out as the rest of the year. Still, there is definitely enough to choose from.
+Please enjoy this week’s video picks:
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 2.10.2 - There is a new maintenance release with a new round of bugfixes and documentation improvements. Besides, there is a bump version for some packages (JReleaser/Keycloak). This should be a safe upgrade upgrade for anyone already using 2.10. Check here the full change log
+
+
+
Kogito 1.24.0 - We are glad to announce that the Kogito 1.24.0 release is now available!.
+
+
+
Camel 3.18.0 - Apache Camel 3.18.0 it’s available. A new LTS release with 117 new features, improvements and fixes. Supports Java 11 and 17. New releases available also for the other Apache Camel Streams (Camel/K, Kamelets, Camel Kafka Connector, Camel Quarkus )
+
+
+
WildFly 27 Alpha 2 - A new Alpha release of WildFly 27 (Alpha 2) is available if you want a preview of Jakarta EE 10 features which will be fully available with WildFly 27
+
+
+
+
+
+
+
Deploy JBoss EAP on Microsoft Azure Red Hat OpenShift
There’s a strong demand for cloud-based JBoss EAP options from our customers. This article outlines the benefits of deploying Red Hat JBoss Enterprise Application Platform (EAP) on Red Hat OpenShift and Microsoft Azure.
How to monitor a Camel K Integration?. Fortunately, Camel-K has all it takes to let you manage this operation as smooth as possible. This article walks through it.
Finally, from WildFly’s youtube channel check this video by Jeff Meslin to learn how to encrypt an Elytron Filesystem Realm and how to convert old filesystem realms to newly encrypted filesystem realms.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Hello and welcome to JBoss Editorial June 30th edition! We are nearing the end of the second week of summer, and most of us are already looking forward to our vacation plans.
+And while for some the next 2 months will be a time to relax, slow down, and take things a little easy, progress and innovation never really stop!
+So for those of you interested in the latest and the greatest that your favorite project have to offer, here are this week’s highlights from around the JBoss community.
+
+
Releases, releases, releases!
+
+
Here are the releases from the JBoss Community for this edition:
Bob Reselman delves into the "brownfield" approach to redeveloping your web application into a SaaS platform.
+Starting off with a well-laid out example business scenario, Bob walks you through the key steps of the process from analyzing your business logic patterns, separating configuration from code, picking an appropriate service architecture, to leveraging the benefits offered by containerization and Kubernetes to ensure that you’ll always be able to scale your services to match the growth of your business.
+
+
+
Multi-cloud storage strategies for SaaS applications
In the fourth entry to the ongoing SaaS architecture checklist blog series Michael Hrivnak compares software-defined storage (SDS) technologies that help developers create optimized data storage solutions for use in multi-tenant cloud environments.
+The first part of Michael’s article deals with the broader technical consideration of how SDS can help developers minimize platform-specific development work, followed by an overview of Red Hat’s current cloud storage technology offerings. In the latter section, Michael provides some insight into combining these offerings to create solutions that provide customers with self-scaling, self-managed, low-latency data storage capabilities.
+
+
+
Cross-site scripting: Explanation and prevention with Go
Cross-site scripting (XSS) attacks have recently become a topic of interest among application security experts in the cloud native developer community. In his tutorial, Sandipan breaks down the mechanism of executing an XSS attack using malicious JavaScript elements and follows up by outlining 3 strategies for coding in Go that you can use to protect your applications against different types of XSS attacks (Sandipan mentions Stored, Reflected and DOM-based XSS attacks).
+The tutorial is richly supplemented by code examples and plenty of additional information context.
+Even though this article is a little outside our usual focus area, it is definitely worth a read, especially for those of you interested in buffing up your application security knowledge.
In a follow-up to his earlier article about GraphQL on WildFly, Francesco is back with another tutorial, this time about GraphQL and Quarkus.
+The article opens with a brief discussion of the advantages that GraphQL’s schema based data access model has over REST APIs. Francesco then moves on to showing how you can use code.quarkus.io to create a Quarkus application that supports GraphQL using the MicroProfile-compliant SmallRye GraphQL extensions. The test of the tutorial is a step-by-step guide to writing the service class of the application and a GraphQL API class that handles the Query and Mutation operations supported by GraphQL. At this point, Francesco offers a bit of comparison between the different ways that data access operations work in GraphQL as opposed to REST.
+The tutorial ends with sections detailing how you can test your applications using either the GraphQL UI provided by the extension, or the SmallRye MicroProfile GraphQL client API.
+In a manner typical of most of Francesco’s tutorials, this one also contains a link to a repository with the code for this example project.
+And those of you interested in learning more about GraphQL in Quarkus, check out Quarkus Insights episode #93. You can find the link to it in the Videos section of this week’s editorial.
+
+
+
+
+
Videos
+
+
This week there was plenty of fresh content to choose from, so please enjoy some of my top video picks:
Welcome back!
+Here’s some great content at the start of summer, and just like always, some releases!
+
We hope you have had a great week and are looking forward to summer.
+
+
Releases, releases, releases!
+
+
+
+
+
Keycloak 18.0.1 - The first bug fix release on the 18 branch is out. There are some minor enhancements and one new feature. Check the link for all the issues resolved in this release.
+
+
+
Kogito 1.22.1 - Another minor release, though it does have one small breaking change. Be sure to look at that and adjust your pom files accordingly.
+
+
+
+
+
+
+
Articles & Blogs
+
+
+
+
+
Infinispan 14 indexing and query news - With development of Infinispan 14 ongoing, Fabio Massimo Ercoli wanted to highlight some changes to indexing and searching. tl;dr: Hibernate annotations will be replaced with new Infinispan annotations. There are some other implications, so be sure to take a look.
+
+
+
Quick JBang Scripting With IntelliJ Idea - Are you using IntelliJ Idea as your Java IDE? Take a look at the JBang integration plugin and what it allows you to do. You’ll be surprised at how much it can help.
+
+
+
How to validate Jakarta REST parameters - Using Bean Validation with JAX-RS is powerful. You can use built-in validations to ease development and extend to create your own custom validations for entities. No more having to write trivial if statements to check if the provided data is valid.
+
+
+
Creating Tabs Using Dashbuilder - Nikhil Dewoolkar walks you through how to create tabs in Dashbuilder, a great alternative to some other dashboard projects.
Welcome to the June 2nd edition of the JBoss weekly editorial. Enjoy our pick of the latest news and interesting reads from around the JBoss community.
+
+
Releases, releases, releases!
+
+
Here are the releases from the JBoss Community for this edition:
We are glad to announce new certifications for Keycloak related to the OpenID Connect and FAPI! In the previous post, we announced certification of Keycloak 15.0.2 with the FAPI and Brazil Open Banking. This is a follow-up of this post with the announcement of the additional certifications.
This tutorial will teach you how to run WildFly applications on Openshift using WildFly S2I images. At first, we learn how to build and deploy applications using Helm Charts. Then we learn how to use the S2I legacy approach which relies on ImageStreams and Templates.
+
+
+
WildFly custom caches configuration for Stateful Beans
This article has been updated to let you how to configure Stateful EJB Caches for your applications running on the latest version of WildFly application server.
ReactJS is a popular and widely used Javascript library for building rich user interfaces. This article shows how to consume Rest Services from a Quarkus application in a simple React frontend.
macOS imposes strict limitations on the places from which you can download commands. Many of the Linux-related tools you want to use come from sites other than the App Store, so you have to change your preferences in macOS to use the commands. In this article, Varsha shows how to install a command that is not from the App Store, using the popular Helm client as an example.
The creation and delivery of intelligent and stream-based applications requires having a robust streaming platform that can support ingesting and transforming large amounts of data at a fast pace. Red Hat OpenShift Streams for Apache Kafka can support enterprise organizations in solving digital experiences challenges.
+
+
+
Videos
+
This week there was plenty of fresh content to choose from, so please enjoy some of my top video picks:
Welcome to the May 7th edition of the JBoss weekly editorial.
+The last few weeks have been rich in both new releases from your favorite projects, and also new and interesting content brought to you by your favorite authors and contributors. And with the Red Hat Summit happening this week, we all have even more goodies to look forward to.
+Today, we’re looking at highlights from all over the community. From Cryostat to Kafka to Knative and Quarkus, we have plenty to choose from, so sit back and enjoy this week’s selection.
+
+
Releases, releases, releases!
+
+
Here are the releases from the JBoss Community for this edition:
Cryostat is a container-native implementation of JDK Flight Recorder (JFR) for monitoring the JVM performance in workloads that run on an OpenShift cluster.
+Andrew Azores walks you through installing the Cryostat Operator and setting up a Cryostat instance to monitor a Quarkus application running in JVM mode. He also adds a few educational points about Cryostat’s JMX target discovery strategies and the limitations of using Cryostat to monitor Quarkus applications running in native mode.
+
+
+
Use Red Hat’s SSO to manage Kafka broker authorization
Ken Lee and Niti Upadhyay’s post is a detailed deep dive into combining the Kafka ACL management capabilities provided by Red Hat SSO and the user and group permission management model of OpenLDAP to control publishing and consumption access of LDAP users to specific Kafka topics. The article opens with an architecture overview of the example project, and follows with up with a detailed end-to-end walkthrough of how to to get the required service up and running on OpenShift. The walkthrough steps contain extensive code examples and section providing background information. The article is accompanied by a demo video presented by Ken Lee.
+
+
+
The Red Hat Cloud way: Event-driven, serverless, distributed cloud services to support modern apps
This short tie-in article for a Red Hat Summit 2022 talk by Natale Vinto and Sebastien Blanc sets stage for the speakers' presentation on the future of cloud-native development with Red Hat’s Cloud Services and Application Services portfolios. Natale and Sebastien will take you on a journey of developing a microservice-based application with Red Hat OpenShift Streams for Apache Kafka and Developer Sandbox for OpenShift that supports serverless, event-driven, on-demand workloads and can adapt to a wide range of purposes. including IoT, edge computing, and big data analytics. If you missed this talk at this years Summit, be sure to catch the recording.
+
+
+
Comparing Distributed Transaction Patterns for Microservices
Drawing on his vast experience wit working on customer projects as a Solution Architect, Bilgin invites you along on a deep-dive into the technical challenges of using distributed transactions to write data to multiple systems of record in microservice-based applications. He lays out four proven design approaches to making your app write predictably into multiple data storage resources and evaluates the benefits and drawback of each one, in terms of complexity, robustness, and scalability. Bilgin includes multiple examples and references to these patters as they are used in real-world enterprise applications today.
+
+
+
Videos
+
This week there was plenty of fresh content to choose from, so pleas enjoy some of my top video picks:
Welcome back!
+Amazing how quickly two weeks can fly by isn’t it?
+We have some great things for you this week including releases, tidbits from the blogoshpere, and information about Red Hat Summit 2022!
+
+
Release roundup
+
+
Let’s jump right into what has been released over the past couple of weeks:
+
+
+
+
Kogito 1.20.0 - Updates including tooling, images, operator, and the CLI.
+
+
+
Keycloak 18.0.0 - A new admin console preview, new Operator preview, client secret rotation, session limits per user, etc. Lots of great new features and additions!
+
+
+
RESTEasy 6.1.0.Beta1 - First release to implement Jakarta RESTful Web Services 3.1, updates to RESTEasy CDI allowing injection of certain types, and an SeBootstrap API implementation.
+
+
+
Wildfly 26.1.Final - Honestly, too many things to list here, take a look at the blog post including new features, how to run on Java 17, and links to additional information.
+
+
+
Quarkus 2.8.1.Final - First maintenance release of the 2.8 branch, it contains only bug fixes
+
+
+
+
+
+
+
KIE Related Posts
+
+
The KIE team (jBPM, Drools, Optaplanner, Kogito) has had some interesting posts the last couple of weeks:
Quarkus always has interesting things going on, and these past weeks are no exception:
+
+
+
+
Solving problems with Quarkus extensions (1/n) - Guillaume talks about breaking down complex problems and how to solve them using Quarkus extensions. This should be the first in a number of articles showcasing the power of Quarkus extensions.
+
+
+
How to manage Transactions in Quarkus - Quarkus supports both declarative and programmatic transaction management. Francesco Marchioni showcases both approaches here.
+
+
+
Add security to a Quarkus application using Red Hat’s SSO - Olivier Rivat explains how to leverage Red Hat’s SSO product to add security in your Quarkus application using OpenID Connect (OICD) and how to test it in the browser and via the CLI.
+
+
+
+
+
+
+
Wildfly Buzzings
+
+
Wildfly continues strong with a number of posts:
+
+
+
+
WildFly S2I new architecture is final! - If you’re deploying Wildfly in the cloud, take a look at new and easier ways to create your container images, and how to shrink them!
Red Hat Summit 2022 is happening May 10th and 11th.
+It will be a hybrid event.
+Take a look at the Red Hat Summit page for more information.
+There will be great information, talks, events, and tech for everyone who attends either virtually or in person.
+We’re looking forward to seeing you there!
Hi everyone!
+It’s great to be back and bringing you another edition of the JBoss Editorial.
+As always there’s a lot of exciting news and updates from JBoss communities so let’s dive in.
Vittorio Rigamonti has made a beta release of his .Net core client that allows access to remote caches on Infinispan clusters.
+The client provides .Net core applications with the performance benefits of in-memory data storage.
+Combined with the Protobuf data encoding Vittorio’s client also gives .Net core applications data interoperability with Java applications that can access the same Infinispan caches.
+Using Protobuf with the .Net core client lets you perform remote queries as an added bonus!
+
Go check out Vittorio’s post and use his sample application to get started coding.
+While you’re at it, you might find Vittorio’s other blog post on performing remote queries useful.
+
+
+
+
Inside out event streaming with microservice architectures
This excellent read from Bilgin starts with recent ideas about the design of relational databases and their place in the event-driven world of microservice architectures.
+Bilgin makes his point that, rather than replacing relational databases with event streams, the inside out design principle is better applied to the service level.
+Using traditional databases with an event-driven approach allows you to combine the best of both technologies but requires a deliberate focus on APIs.
+From there Bilgin explains the flow of events through outbound and inbound APIs and how a "connecting tissue" such as Debezium can help you effectively bring relational databases into event-driven microservices.
Bruno showcases Camel Quarkus in an extensive post that will leave anyone working on service integration how they could live without it.
+
Using the OpenAPI specification as an example Bruno explains how to use Camel Quarkus to connect to an HTTP service and transform data in a few effortless steps.
+There’s a lot to discover in his post and Bruno even walks you through a second iteration of his application in which he reduces the path to integration even further.
+
I think by the end Bruno proves his point, that Camel Quarkus really is a Swiss knife for service integration.
+He offers a compelling look at how reducing integration overhead lowers maintenance costs and accelerates development cycles for rapid functionality growth.
Francesco shows us how to quickly debug and profile SQL statements with Java applications using the MySQL JDBC driver.
+Using the WildFly CLI Francesco adds a JDBC connection to MySQL database in a container in a few simple steps.
+After creating the datasource he demonstrates the hibernate.show_sql option in the application’s persistence.xml.
+Once that’s done you can find all sorts of useful information about SQL statements in your logs.
+You’re all set to debug and tune!
+
+
+
+
YouTube videos
+
+
From unmissable demos to brilliant chat about the latest Java trends, the JBoss community has some great video content for you:
Here is another edition of the JBoss Editorial with exciting news and updates from your JBoss communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 2.7.5 - There is a new maintenance release with a new round of bugfixes and documentation improvements. This should be a safe upgrade upgrade for anyone already using 2.7. More details on the Migration Guide 2.7
+
+
+
Kogito 1.19.0 - We are glad to announce that the Kogito 1.19.0 release is now available!.
+
+
+
Infinispan 14.0.0.Dev01 - Infinispan 14 GA is almost ready! Expect some cool features such as Redis (RESP) endpoints, new MP Metrics with Micrometer, clustering and endpoint metrics in Prometheus, FIPS compatible Infinispan Installation, Cross-site replication memory and batching improvements and Dynamic Role-Based Access Control
+
+
+
+
+
+
+
Write Kubernetes in Java with the Java Operator SDK (Part 2)
In this post, Christophe teach us how to use the Java Operator SDK and its Quarkus extension to build a sample application as you take a deeper dive into writing Kubernetes Operators in Java.
In this article from Romain, you will learn how to use Ansible to cover all repetitive work to provision Infinispan. It covers everything from downloading software, preparing the environment (user, group, firewall), deploying the binary files and the configuration, setting up the service in systemd, etc.
+That’s a great way to get started with Infinispan and Ansible.
+
+
+
+
Clustering support for JBoss EAP on Azure App Service (Tech Preview)
If you want to try out a preview of JBoss EAP clustering on Azure App Service then this article is for you! The combination of JBoss EAP, a leading Jakarta EE platform, with Microsoft Azure, a leading cloud platform, gives JBoss EAP users a powerful path to the cloud.
This newsletter covers what’s new with Java 17 and containers, discusses LogicDrop and Vaadin’s path to using Quarkus, and get a look at Continuous testing with Quarkus.
In this article from mastertheboss.com you will learn which are the available guidelines to migrate Quarkus applications and tools that can help you to simplify your update strategy
+
+
+
+
Youtube video: Build & Deploy WildFly Quickstarts on OpenShift
Finally, from WildFly’s youtube channel check this video by Jeff Meslin to learn how to build and deploy a quickstart
+for WildFly on OpenShift
+
Jeff shows how to deploy the microprofile-config quickstart for WildFly on the Developer Sandbox for Red Hat OpenShift. This uses the Helm Chart for WildFly to configuring building and deploying WildFly applications.
+
That’s all folks! Please join us again in two weeks for another round of our JBoss editorial!
Welcome to another edition of the JBoss Editorial that brings you news and updates from your favorite communities.
+
+
Release roundup
+
+
Here are the most recent releases for this edition:
+
+
+
+
Quarkus 2.7.4 maintenance release with a new round of bugfixes and documentation improvements. This should be a safe upgrade upgrade for anyone already using 2.7.
+
+
+
Quarkus Tools for IntelliJ 1.10.0 release that adds support for Quarkus run/debug configurations and provides several fixes (including security related!).
+
+
+
Kogito 1.18.0 release includes a number of new bug fixes and new features, especially for Serverless Workflows.
+
+
+
Camel 3.14.2 LTS new patch release with 27 improvements and fixes.
+
+
+
Hibernate ORM 6.0.0.CR2 is expected to be the last release candidate before the 6.0 final release.
+
+
+
Hibernate Validator 6.2.2.Final, 7.0.3.Final and 8.0.0.Alpha1. Maintenance releases for Hibernate Validator 6.2 and 7.0 branches - both versions bring back support for validating java.sql.Date. The 8.0.0.Alpha1 targets specifically the upcoming Jakarta EE 10.
In this post, Gunnar presents the CDI-Test JUnit 5 extension, which provides a clever mechanism for unit, component, and integration Jakarta EE application tests at scale.
+
Gunnar provides a sample repository with a fully functional application and its test so you can use it to follow along with the article.
One more great example of what’s planned for the project published in the open! This time Pasquale provides a comprehensive roadmap for the Camel K project for 2022.
+
Although these plans aren’t commitments, they provide an excellent understanding of where the project is heading.
The popularity of Helm charts among developers is great. In this article, Francesco provides a step-by-step guide on how to deploy a WildFly application on OpenShift using bootable-jar and source to image.
+
New to Helm Charts? No worries, Francesco also covers a basic Helm setup.
+
+
+
+
Editing Serverless Workflow Definitions with VSCode
Here we have Paulo introducing the new VSCode extension for Serverless Workflow provided by Red Hat, which allows users to have a side-by-side real-time preview of their workflows while editing JSON and YAML files inside VSCode.
+
Serverless Workflow is a CNCF based specification for workflows that Kogito already supports; check this out!
One more post about the Kogito technology! This time we have Matteo presenting a content-based router using DMN, Quarkus, Kogito, Camel, Atlas Map, Managed Kafka, and OpenShift Sandbox! Ohh my!
+
The post is very detailed, covering content with code examples and, more interesting, a link for a youtube video where Matteo explains the concepts and shows a live demo!
+
That’s all for today! Please join us again in two weeks for another round of our JBoss editorial!
Welcome back!
+What better way to finish off the week (or start the week depending on when you read this) than by seeing what’s new in the software you care about?
+As always, we have some great things happening within the community, read on below.
+
+
Releases
+
+
+
+
+
Quarkus 2.7.2.Final - second maintenance release for the 2.7 branch. This release features a number of bug fixes and updates to Kogito and Optaplanner. View the full changelog.
+
+
+
Kogito 1.17.0 - This release packs in new features, bug fixes and, one small breaking change. Read about the release.
+
+
+
Eclipse Vertx 4.2.5 - The Vertx team has been hard at work bringing the number of bugs down in the 4.2 branch. They have also added the ability to intercept HttpProxy calls, and the Oracle client now has proper pooling. Find out more.
JSON DATASETS IN DASHBUILDER demonstrates how to use JSON datasets within DashBuilder and briefly touching on future directions for the tech.
+
+
+
+
Those working on Quarkus have a few new things to show and say this week as well:
+
+
+
+
Quarkus Superheroes to the Rescue! walks through the full Quarkus Superheroes application including deployment, docker, dev mode, and the architecture.
In the last months of 2021, the “.NEW environment” (bpmn.new, dmn.new) received a massive update, and now it’s named KIE Sandbox! Dealing with complex models and collaborating with others has just become much easier. In this blog post, let’s go for a walkthrough of the top new features of KIE Sandbox.
It is really simple to monitor the brokers deployed on OpenShift and show the metrics in grafana or configuring alerts based on the metrics. We are using the artemis version included in AMQ 7.9 deployed with the operator.
Exporting your WildFly/JBoss EAP configuration to a CLI script is something you are going to need one day or another. No worries, the project Profile Cloner comes to the rescue!
+
+
+
Intelligent data as a service (iDaaS) - Example data insights
Part 5 - Data insights through the iDaaS insights architecture provides a different look at the architecture and gives us insights into how our healthcare solutions are performing.
This article highlights some of the features that developers can look for in the upcoming Java 18 release, including the new simple web server module, a more sophisticated way to annotate your Javadocs, and the –finalization=disabled option, which lets you test how a Java application will behave when finalization is removed in a future release. See the end of the article for where to download Java 18 in early access builds.
+
+
+
Build a bootable JAR for cloud-ready microservices
This article describes how to create a bootable JAR using Red Hat JBoss Enterprise Application Platform (JBoss EAP) and Jakarta EE and incorporate useful extensions, particularly a PostgreSQL database and MicroProfile capabilities.
+
+
+
Connect to an external PostgreSQL database using SSL/TLS for Red Hat’s single sign-on technology
This blogpost introduces the event-driven predictions addon and is the third of my series of event-driven with Kogito posts, after the and event-driven predictions addons.
In this article we will walk through a sample migration of a Spring Boot REST Application to Quarkus using Red Hat Migration Toolkit for Applications (MTA). The Migration Toolkit for Applications (MTA) is an extensible tool which you can use to simplify the migration of several Java applications.
+
+
+
Intelligent data as a service (iDaaS) - Example HL7 and FHIR integration
Part 4 - Example HL7 & FHIR integration In our from this series we talked about the example iDaaS data architecture which outlines at a higher abstraction level the solution for any healthcare organisation.
+
+
+
Multi-tenancy Support for OpenID Connect Applications
Applications deployed to WildFly can be secured with OpenID Connect, without needing to use the Keycloak client adapter.
+
WildFly 26.0.1.Final, which was just released, includes a fix for multi-tenancy support for OpenID Connect applications. This blog post gives an overview of how to configure OpenID Connect applications deployed to WildFly so they can support multi-tenancy.
In the Changes are coming to WildFly post last September, it was tried to give a sense of how the transition to Jakarta EE 10 was likely to impact the next few WildFly releases. With WildFly 26 out the door and our efforts for 2022 ramping up, we want to give our community on update on how we see things playing out over the course of the year.
(Kubernetes Event Driven Autoscalers) is a fantastic project (currently incubating) that provides Kubernetes-based autoscalers to help applications to scale out according to the number of incoming events when they are listening to several kinds of event sources.
As part of our effort to make Kogito usable in an event-driven fashion, this article introduces a new addon: the event-driven rules addon. It is available since Kogito v1.12.0 and its behavior resembles what the event-driven decisions addon () already does for decisions.
+
+
+
Red Hat Summit 2022 - Talking Architecture Shop Series
It’s that time of year again when we get the call for papers! I heard the call and thought this year would be a perfect time to go all in with sessions around our architectures based on a series of talks we’ve designed to showcase the various aspects we cover.
Happy new year, everyone! Welcome to the first JBoss weekly editorial of 2022.
+Enjoy our pick of the latest news and interesting reads from around the JBoss community.
+
+
Releases, releases, releases!
+
+
Here are the releases from the JBoss Community for this edition:
In their new book Reactive Systems in Java, Clement Escoffier and Ken Finnigan take an in-depth look at reactive systems design make applications responsive, elastic, and resilient, and
+explore event-driven architectures as a flexible and composable option for designing distributed systems. Full of practical examples, their new book helps developers bring these approaches together when designing applications with Quarkus.
+
+
+
Simplify Java persistence using Quarkus and Hibernate Reactive
Daniel Oh walks you through developing a reactive application with persistent data storage that leverages the benefits of simplified JPA implementation using the new extension for Hibernate Reactive with Panache.
Francesco’s tutorial introduces you to Netty a client/server framework that provides a simplified layer over non-blocking I/O networking. The introduction briefly describes the notable features that Netty provides. The first part of the tutorial section explains how you can create a simple echo server. The second part shows you how you can expand it by adding a separate Netty Client with its own Handler, and also demonstrates how to send a String between the client and the server over the event loop.
+
+
+
Why you should migrate your Java workloads to OpenShift
In the first part of his two-part post series, Philip Hayes outlines the main benefits of migrating Java workloads to OpenShift and explores a number of tools available from Red Hat and from the Konveyor community project that are designed to help you transitions your Java workloads to the cloud with ease. Stay tuned for part 2 that will take an in-depth look at migrating a JBoss EAP application to OpenShift!
+
+
+
How to use Quarkus with the Service Binding Operator
Ioannis Kanellos opens his article with a brief history of service binding solutions for Kubernetes developers and follows it up with a demonstration of a developer workflow centered around binding an external database service to an application in a cloud environment. With plenty of code examples and technical detail, Ioannis walks you through provisioning a database service, writing a Quarkus app for simplified data access with Hibernate with Panache, generating the service binding resources using the Service Binding Operator, and deploying your project to a containerized Kubernetes cluster running on your local machine.
Hello! With a bit of delay, here is our very last editorial of the year! Sadly, it focus point has to be the log4j vulnerability,but we also ensured there was some interesting and exciting news too. Enjoy and happy holidays!
+
+
log4j Security vulnerabilities
+
+
Sadly, we have to start our editorial with a less-than-ideal piece of news. In case, you somehow missed, be aware that some vulnerabilities have been found in Log4J. Being one of the most used Java library, it is a rather critical issue. Please take look at this article to know How to fix Log4j CVE-2021-44228.
+
Some other projects from the JBoss community may also have been impacted. Please check any project you are currently using and see if, like KIE or InfiniSpan, they have provided information on the impact of the vulnerability.
With the nasty security vulnereablity on log4j, it’s certainly time to look at some new security features coming in either Elytron or Wildly (or both):
Bruno’s article is a walkthrough Camel K 's implementation step by step. It also covers how to simplify data mapping with AtlasMap, which is a data mapping solution with an interactive web-based user interface.
Saga is meant to provide transaction management using a sequence of steps that could be also called local transactions. In this article Tiago shows how to apply this pattern to Kogito processes.
+
+
+
+
Quarkus 2.5.0.Final released - GraalVM/Mandrel 21.3 and usability improvements all over the place.
Michał introduces SmallRye Stork and its Quarkus integration. Stork provides a way to locate and select services. It’s simple and customizable. Stay tuned as more articles will follow up on this topic.
Java 17 was just released in September 2021 however the Java Community Process is already working on the next release of Java with a list of cool new features. This article discusses the top picks from the JEP Process.
+
+
+
+
Free eBooks
+
+
Are you looking for a quick guide to migrating and modernizing your Java-based applications? Modernizing Enterprise Java walks you through the journey. Grab the eBook from Natale Vinto and Markus Eisele:
Eric’s article provides a detailed walkthrough of how to take advantage of Quarkus continuous testing and Dev UI for test-driven development. Eric also provides a sample repository that you can use to follow along with the article.
+
+
+
+
Boost throughput with RESTEasy Reactive in Quarkus 2.
Daniel shows how some simple changes in your REST endpoints can boost the throughput of your application using RESTEasy Reactive. He also shows how to use the Endpoint score dashboard to assess the performance of your endpoints.
This excellent post shows how Kamelets is driving a deeper transformation towards "low code" development with Camel. Nicola Ferraro shows that you can use Kamelets directly with yaml or take advantage of the Karavan tool to design and visualize your integration flows graphically.
+
+
+
+
Getting started with Hibernate reactive on Quarkus
Reactive everywhere! In this post, F. Marchioni helps us get started with Hibernate reactive, providing a step-by-step from project creation to configuration and coding.
+
The post covers the "classic" Hibernate ORM, but Hibernate Reactive can also be applied to Panache.
Oracle is proposing a change to the Java LTS lifecycle from the current 3 years for 2 years. In this post, Emmanuel Bernard put some light on the challenges, from the perspective of a library author, that such changes may bring to the complex Java ecosystem.
+
+
+
+
Videos
+
+
YouTube is such a great platform to share knowledge, here are my top picks for this week’s editorial:
Stian’s informative article takes us through the highlights and goes into detail about what’s coming with Keycloak.X.
+He also shares the roadmap for all the work that lies ahead for the Keycloak team.
+It looks like some awesome changes are coming with Keycloak.X so get ready!
This informative post describes a set of pain points that the WildFly team plan to address with a re-architecture of the S2I images.
+JF Denise goes into detail and explains the benefits of the new approach that will offer more flexibility, increased efficiency , and a greatly improved user experience.
Diana treats us to an overview of distributed security realms in Elytron that combine identities located across multiple security realms of any type into a single security realm.
Welcome back to another edition of the JBoss Editorial, a bi-weekly editorial containing information about JBoss and Red Hat related news and software!
+
+
Release roundup
+
+
Once again, let’s thank everyone who has contributed to rolling out new releases over the past two weeks!
This past week, the Wildfly Elytron team (a team specializing in server and client side security) participated in the Open Source Day hackathon.
+It is an all day hackathon celebrating Open Source technologies and allowing participants to learn about Open Source and contribute to projects designed to solve real world problems.
+
Issues in the Elytron issue tracker were triaged ahead of the event and new contributors were onboarded and taught about Git, creating and submitting pull requests, and how Open Source works.
+The event went well for the Elytron team with double the amount of PRs submitted than in the Summer Open Source Day!
+
We’d also like to mention that in Wildfly 25 support has been added for the MicroProfile Reactive Messaging 2.0. More information and a sample application can be found within the announcement.
+
+
+
+
Quarkus Videos
+
+
The Quarkus team has been busy in front of the camera these last two weeks!
+Six videos have come out, including a new Quarkus Insights.
+These videos cover remote development, the DevCLI, DevUI, DevServices, and continuous testing.
+Most of these are under five minutes, why not watch them all?
It feels appropriate to call special attention to Brian’s release announcement of WildFly 15.
+The entire team has done great work and Brian goes into detail about all the new features, including finishing the migration to Elytron-based security and Java SE 17 support.
+Congrats to the WildFly community on another fantastic milestone!
Calling all hackers!!
+WildFly Elytron is participating in this year’s Hacktoberfest.
+Check out Farah’s post to register and contribute to Elytron, Elytron Web, or WildFly OpenSSL repositories.
Eric’s step-by-step tutorial taught me how to quickly set up a running instance of Decision Manager in a local container.
+I really enjoyed the tutorial and would recommend as a great way to introduce yourself to the world of process automation.
This brief article shows you how easy it is to configure authentication with Business Central using SSH keys.
+At the end, Eder also combines JBang with JGit in a nifty way to use a different SSH keys and provides you with the code.
+
+
+
+
Quarkus Insights
+
+
Get your popcorn ready and sit back to watch some Quarkus insights.
+Here are my top picks for this week’s editorial:
Kogito and its ecosystem have been quite active lately. In the last two weeks, five different articles have been released, each covering very different aspects of the project:
After all this Quarkus and Kogito action, if you are still looking for even more technical nitty, gritty details, you should certainly check out this article on Shenandoah in OpenJDK 17: Sub-millisecond GC pauses.
+
+
+
+
Releases, releases, releases…
+
+
As always, projects of the JBoss community have been quite active and released a few exciting new versions, including a beta of Wildlfy’s next major version!
In the past months, we’ve been doing some hard work to ensure that JBoss software can fit as neatly as possible within an Ansible playbook. There is a still a lot to be done, but we are already quite proud of to two Ansible collections we have released. The first one is called, JCliff, but will soon be renamed to WildFly, as it aims to integrate, as smoothly as possible, the app server into Ansible. The latest version (v.0.0.10) has already a few exciting features:
+* systemd integration, a reusable role to help set up WildFly as a systemd service
+* a reusable role to install JDBC driver and their module
+* and, of course, more fine-tuning of WildFly’s subsystem thanks to the JCLiff (embedded in the collection) which allows Ansible to configure mod_cluster, sockets, JMS queues and so many other features.
+
We are also very happy about the release of JWS Collection for Ansible (v0.0.2), which allows us to quickly set up Apache Tomcat or its counterpart, JBoss Web Server, but also provides some nice features, like integration with systemd and common criteria (partial) compliance checking. Please check our blog entry about this Ansible collection for Apache Tomcat / JWS for more details!
+
(Given that those are projects I work on, I fully assume that this entry is a shameless plug :) )
+
That’s all for today! Please join us again in two weeks for another installment of our JBoss editorial! Stay safe and healthy in the meantime.
Quarkus provides an @LRA annotations that lets you build more reliable service interactions.
+Michael’s informative article breaks down the details and walks you through an example with microservices that coordinate long running actions that complete in an atomic manner.
The BPMN Editor includes fields where you can add metadata to nodes, offering a versatile and flexible way to receive custom event notifications via process listeners.
+Wagner’s article shows us how to control process flow with metadata, highlighting both its simplicity and usefulness.
The Kogito team do an amazing job providing hands-on, practical examples for real-world use cases.
+Since our last editorial, Gabriele concludes a previous post by demonstrating how to set up a Kogito service that allows remote clients to get purchase recommendations to personalize a web shopping experience.
+
Mario Fusco’s latest entry on the Kogito blog gives a lot of food for thought and is highly recommended.
+In his article, Mario digs into migrating from Drools and start using Kogito and Quarkus.
+He shows you how to start building microservices that you can eventually deploy into Function as a Service (FaaS) environments to provide stateless rule evaluation.
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Calling all Kogito DMN contributors
+
+
Guilherme Carreiro brings us the second in a series of posts that guide you through contributing to Kogito’s DMN editor, DMN editor – Contributors Guide – Part 2.
+The post gives a nice overview of the DMN and the BPMN editors then links to some additional resources that guide you through the tasks of creating and testing Reactive components.
+
+
+
+
RESTEasy Reactive in Quarkus 2.2
+
+
Clément gives a very insightful look at how Quarkus and RESTEasy Reactive make your life easier when implementing HTTP APIs.
+He also explains different dispatching strategies in Quarkus 2.2, based on method signatures to intelligently decide whether methods should be called on the I/O thread or a worker thread at build time.
The Narayana team have provided a Maven plugin that checks LRA (Long Running Actions) annotations.
+This plugin helps developers avoid errors and follow the rules of the LRA specification.
+There’s also a sample Quarkus project in that shows you how to use it.
DevConf.US 2021 - Designing your best architecture diagrams workshop
+
+
Over on Eric Schabell’s blog, he announces the Designing your best architecture diagrams workshop that he will deliver at this year’s DevConf.US on Thursday, September 2.
+Eric’s workshop takes attendees through the process of using open-source tooling to design architecture diagrams like an expert.
+
Congrats to Eric on getting the workshop accepted.
+I’m sure it will be an invaluable workshop for all those who face the challenges of communicating complex architectural designs to project teams.
+
+
+
+
Apache Camel at Kubecon EU
+
+
Nicola Ferraro presented Apache Camel at the Kubecon EU conference that took place on August 19th, 2020.
+
Nicola’s presentation focused on Camel K integration with Knative with a detailed explanation and a super cool demo.
+Visit his blog to read details and watch the video at Serverless Integration on Kubernetes with Apache Camel K.
+
+
+
+
Release roundup
+
+
Let’s start things off this week with a look the latest releases.
After short pause for the summer holiday, welcome back to this new installment of the JBoss Editorial! As always, the JBoss community has been quite active and there is quite a lot to cover today, especially on hybrid cloud and Kogito. Let’s dive right in!
With the new release of Kogito 1.9.1, it’s time to explore (maybe again) all the potential of this framework. And fortunately, there are a lot of in-depth articles released recently doing just that! Let’s start with one on how to capture decisions using DMN followed by a tutorial on how to implement task’s deadline with Kogito.
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Release roundup
+
+
Congrats to all the teams on their hard work!
+
+
+
+
Inifinispan Node.js Client 0.9.0 This was released last week and includes the ability for the Node.js client to connect with different SASL authentication mechanisms.
+
+
+
Eclipse Vert.x 4.1.1 released! Mostly bug fixes, but there were a few small features implemented. Check the announcement for more details.
Karina Varela has a post about automating rule-based services with Java and Kogito up on the Red Hat Developer Blog. The post focuses on Kogito and using it to build, package, and automate the deployment of those rule-based services on Kubernetes and OpenShift!
+
James Falkner quickly tackles RESTEasy Reactive in Quarkus 2.0 over on the Red Hat Developer Blog. With the release of Quarkus 2.0 there are a number of things that have improved. Using REST in a reactive way is one of them. Quarkus 2.0 utilizes Eclipse Vert.x 4 and does some optimizations at build time to further increase performance of REST services.
+
If you’re using Red Hat 3scale API Management and have a need to use WebSockets, be sure to check out Srikanth Kalluru’s blog post for a quick three step walk through of how to get it done!
+
Mauro Vocale has a three part series, part four is not out yet, about moving Java programs to the cloud. Part one introduces you to the legacy application and gets it up and running on OpenShift. This gets you familiar with what the application does and what to expect from further refactorings in subsequent posts. In part two the application will move from Java 8 to Java 11, JBoss EAP 7.3 and Jakarta EE. Lastly, in part three the application will be moved to microservices. Additional monitoring tools will be introduced including Prometheus and Jaeger. The application will be updated for handling restarts, health checks, and other configuration settings.
Wildfly 24.0.0.Final includes a preview of Jakarta EE 9.1 features. Jeff Mesnil discusses how to try these features out using a bootable jar. There’s also a section about getting up and running using OpenShift!
+
+
+
+
Developers on film
+
+
Get your popcorn ready and sit back to watch some videos from our community.
+Here are my top picks for this week’s editorial:
Narayana 5.12.0.Final has been shipped. This version gives several enhancements and fixes some bugs. Go grab it!
+
+
+
+
+
+
+
From the community
+
+
Katia and Ryan on the Infinispan team released a nice two-part series of posts that explained how they built an online game across data centers and multiple cloud providers for this year’s Summit keynote demonstration.
+In the first part, Building a real-time leaderboard with Infinispan and Quarkus on a hybrid Kubernetes deployment, Katia and Ryan describe how they designed and implemented various services using Infinispan and Quarkus.
+With part two, they explain how using the Infinispan Operator greatly reduced the complexity of standing up their clusters, Creating and managing Infinispan services in the hybrid cloud.
+
Tommaso Teofili’s recent post, Autotuning LIME explanations with few predictions, outlines how to automatically tune LIME hyperparameters to achieve more stable explanations and comes with a PR that lets you dig into all the technical aspects covered in the post.
+
RHPAM connectivity to external AMQ configurations in OpenShift by Michael Perez takes an in-depth look at connecting to an external AMQ with the aim of lowering the memory footprint for RHPAM pods as well as other deployment optimizations.
+It’s an interesting read with good technical considerations to sink your teeth into so go give it a look.
+
Over on the WildFly blog, Jeff Mesnil walks us through the process of changing logging levels for cloud-based WildFly applications on the fly.
+Take a look at Jeff’s script and straightforward commands to help you easily modify logs for debugging in his post, How to Change Logging Level for WildFly on the Cloud.
+
Bilgin Ibryam is back with a post on the Red Hat Developer blog titled Application modernization patterns with Apache Kafka, Debezium, and Kubernetes.
+I really enjoyed this one as Bilgin expertly puts application modernization in context and examines different patterns, tools, and open-source ecosystems that can help you migrate brown-field systems to more modern, event-driven services as well as design green-field services that are future proof by providing the ability to evolve over time.
+Be sure to catch up on this one if you haven’t already read it.
+
Just in time for your summer reading list the first book dedicated to Keycloak has been published, Keycloak - Identity and Access Management for Modern Applications.
+Congrats to authors Stian Thorgersen and Pedro Igor Silva.
+It’s an impressive achievement and no doubt the book is full of invaluable expertise.
+
+
+
+
Evangelist’s corner
+
+
In our last editorial we mentioned Eric Schabell’s series on a retail data framework.
+Since then Eric has obviously been hard at work as his next two posts in the series, Retail data framework - Common architectural elements and Retail data framework - Example data architecture.
+If you haven’t caught up on that series yet, then I highly recommend taking a look to learn about data flows and management in a retail context.
+
Eric has also posted the first in his next series, Cloud adoption - An architectural introduction.
+This series is focused on proven integrations, structures, and interactions with the goal of enabling readers to implement and adopt cloud-based solutions using open-source technologies.
+I’m really excited about this series and can’t wait to see what Eric brings in his next posts.
+
+
+
+
Developers on film
+
+
Get your popcorn ready and sit back to watch some videos from our community.
+Here are my top picks for this week’s editorial:
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Hello again
+
+
To our community and all our readers,
+
I’d like to start this edition with a sincere and frank apology on behalf of the editorial team for the posts we missed in the last month.
+
There’s been a lot of awesome content that our community has shared and multiple project releases packed with useful new features and clever enhancements.
+We’re long overdue in highlighting and celebrating all the great work that JBoss teams are doing, not to mention all the brilliant work of our evangelists and other contributors.
+
It’s been a busy past few weeks and we’ve got a lot of great articles and releases to catch up on, so let’s go.
+
+
+
+
Release roundup
+
+
Let’s start things off with congrats to all the teams on their hard work!
With the recent release of Quarkus CR2, I’m sure we’re all anticipating Quarkus 2.0 GA.
+As part of that release, Max and the rest of the Quarkus team are taking questions that they will answer on an episode of Quarkus Insights.
+Use the #quarkusinsights tag to submit a question via social media and tune in to Quarkus Insights #51: Q & A - Part II on June 2 to hear your questions answered.
Jeff Mesnil has authored a very helpful and detailed look at building and deploying WildFly applications on OpenShift using Helm Charts in his post, Helm Chart for WildFly
+
Over on the Infinispan blog, Ryan Emerson has shared some details about the CLI compiled to a native image in Infinispan Native CLI, which is well worth a read.
+You should also try downloading the latest Infinispan 12 server version and taking it for a spin with the native CLI!
Bilgin Ibryam has recently posted Data Gateways in the Cloud Native Era that examines how data gateway components support different use cases and offer a solution for hybrid workloads spread across multiple cloud providers.
+
Last but certainly not least is Claus Ibsen’s webinar, Integrate systems in the age of Quarkus and Camel, that explores how the trio of Camel Quarkus, Camel K, and Kamelets simplify the work to manage and bind systems together.
+
+
+
+
Evangelist’s corner
+
+
Eric Schabell never disappoints and his previous series on architectural elements in a real-time stock control solution for retail was no exception.
+Eric rounds that series off nicely with Real-time stock control - Example stock control architecture.
+
Not one to rest for long, Eric Schabell launches a new series that tackles how to create a framework for accessing retail data from customers, stock, stores, and staff across multiple internal teams.
+I’m sure it’s going to be a brilliant series so go have a look for yourself and find out more in his post, Retail data framework - An architectural introduction.
Welcome to another - slightly delayed, installment of our JBoss Editorial! If anything, the last two weeks in the Jboss community has been all about Quarkus and Kogito. Indeed, you’ll find in this post a trove of information and news on the two projects. But also, an exciting opportunity on Keycloak! Without any further ado, let’s jump right in.
+
+
Keycloak wants you!
+
+
If you are developers who is passionate about Keycloak, there is an opportunity of a lifetime for you! The keycloak team is indeed recruiting!.
As mentioned in our introduction, Quarkus has been the focused on many content released in the last weeks. On top of that, as you’ll see in the releases section of this editorial, the project has released not one, but two versions, including an alpha of the upcoming Quarkus 2.0.
Enough Java? Too much jitters? Wants a palate cleanser? Here you with a cool two-part series on deploying the Mosquitto MQTT broker on OpenShift: (part 1) and (part2).
+
That’s all for today! Please join us again in two weeks for another installment of our JBoss editorial! Stay safe and healthy in the meantime.
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Release roundup
+
+
Let’s start things off with congrats to the teams on their hard work!
+
+
+
+
Infinispan 12.1.0.Final is released!
+This version of Infinispan, codenamed Taedonggang, includes a bunch of new features and fixes. Be sure to check out the announcement and start using it right away.
Our very own Bela Ban has also recently finished off the work on JGroups 4.2.12 and JGroups 5.1.6.
+While there might not be an "official" annoucement on his blog, you can check Bela’s commit history for details.
+
+
+
+
From the community
+
+
Let’s take a look at what’s been happening in the community since our last editorial.
Rebecca Searls, over at the RESTEasy blog, recently added a post titled JAX-RS ParamConverter with Quarkus that shows how to write RESTful services with Quarkus using the JAX-RS ParamConverter.
+
Eric Schabell has, yet again, delivered some great posts recently that demonstrate how community technology can solve real world business problems.
+
Finishing off a series of articles on point of sale architectures, Eric delves in a specific example in his post, Point of sale - Example image distribution architecture.
+Be sure to check the links at the end of the post in case you missed any of the other articles in his architecture blueprint for point of sale imaging in retail.
+
Not one to rest, Eric kicks things off with another series to share an architectural blueprint for the use case of deploying a container-based eCommerce website while moving away from tightly coupled existing eCommerce platform.
Eric then continues the series with his post, Headless eCommerce - Common architectural elements.
+In this article, Eric goes into detail on common generic elements that make up the architecture blueprint for the headless eCommerce use case.
+
Stay tuned for the rest of Eric’s series!
+I’m sure there’s lots more great information on the way.
Welcome to another edition of the JBoss Editorial where we search through the JBoss Community for interesting articles and updates
+
+
Introducing the prolific Eric Schabell
+
+
If you are a regular reader of the JBoss Editorial you will be very familiar with the work of Eric Schabell, arguably one of the most prolific writers within the JBoss Community. This edition is no different and sees Eric product three more articles.
The Kogito team have been busy over the last few weeks publishing a number of interesting blog posts covering different aspects of the Kogito ecosystem.
When running within a kubernetes environment it is natural to consider the KUBE_PING protocol for cluster discovery, a protocol relying on the ability to query the kubernetes API server. If you want to remain agnostic of your environment, or if you do not have sufficient permissions to query the kubernetes API server, then an alternative approach to consider would be the DNS_PING protocol as demonstrated by Yeray using a simple WildFly bootable JAR application.
+
+
+
+
Optimizing Camel 3.9, no more saw tooth JVM garbage collection
+
+
The upcoming Camel 3.9 release will include some additional, significant improvements in the performance of the internal routing engine leading to a dramatic reduction in object allocation during continuous use. The Camel team focussed on the five major areas of the codebase they had identified during performance testing with the intention of reducing the allocation count as much as possible, they managed to go one better and achieved a sustained object allocation count of zero! For more information take a look at Claus' blog describing the effort.
+
+
+
+
Monitoring Quarkus applications on OpenShift
+
+
If you are running a Quarkus application on OpenShift you will most likely have a need for integrating with the centralised prometheus instance within the cluster. This integration is fairly straight forward and can be achieved after following only a few simple steps as ably demonstrated by Jose.
That’s all for this edition of the JBoss Editorial, please join us in a couple of weeks when we will bring you more news and articles from the JBoss Community Projects.
Keycloak 12.0.4 is also released. Go check out their blog for full details.
+
+
+
+
+
+
+
From the community
+
+
There’s been a lot of activity since the last editorial so let’s take a look.
+
First up is Ramon Gordillo’s rather interesting take on moving legacy technology on Kubernetes.
+Ramon starts by pointing out that even software that is considered "legacy" and traditionally on-prem is often packed with new and useful features.
+Add to that the fact that many containerized applications still rely on legacy systems - "not all apps are greenfield" - and he builds a solid case for doing something that might otherwise induce a few gasps.
+Go see how Ramon tackles running IBM DB2 in containers, Trying DB2 in Kubernetes for developers.
+
Migrating jBPM images secured by LDAP to Elytron by Gonzalo Muñoz Fernández is one that I thoroughly enjoyed.
+If you’re not familiar with Elytron it is, as Gonzalo explains, Wildfly’s security framework that puts security management and application access into a single subsystem.
+In his post, Gonzalo clearly describes and then steps through how to migrate jBPM images from PicketBox, which is a security subsystem based on JAAS login modules, over to Elytron.
+
Also on the Kogito blog, Paul Brown and Emily Murphy take on the challenge of Optimizing COVID-19 vaccination appointment scheduling.
+Their post details the approach for using OptaPlanner to handle planning constraints and automatically assign vaccination appointments.
+Getting vaccinations rolled out globally is a massive logistical and planning challenge so it’s comforting to know our community is providing tooling to get us all back to "normal".
+
The Red Hat Developer blog has a couple of recent entries focused on JavaScript that are both good reads.
+
Michael Dawson introduces us to the Node.js reference architecture from Red Hat and IBM and explains their reasons for creating it.
+The goal is to help developers make good choices when navigating the vibrant and extensive JavaScript ecosystem by recommending packages based on shared experience across teams and projects.
Our ever productive Eric Schabell has brought us some fantastic content that should really get you thinking about community technology can apply to solve real world business problems.
If you are already a Kogito user or if you are interested in exploring this software, there were a few articles released in the past two weeks that you might find interesting. The first one is on Kogito Notification API which is followed nicely by the second one on Event-driven decisions with Kogito
Quarkus: Fast jar as default, Multipart support for RESTEasy Reactive
+
+
Following up the recent release of Quarkus 1.11.3.Final, Quarkus 1.12 was just released and includes some exciting new features. First, fast jar is now by default and the framework added multipart support for RESTEasy Reactive. Go check it out!
Here we are again, it’s been two weeks and we’re into the second month of 2021!
+How quickly times flies!
+In this edition, expect to find release information, blog posts, and general updates from around the JBoss Community.
+
+
Releases!
+
+
+
+
+
Quarkus 1.11.2.Final is the second maintenance release for the Quarkus 1.11 branch. The notable bug fix with this version is updating to Hibernate ORM 5.4.27.SP1 which fixes a potential data loss issue. Please see the full changelog for more info.
+
+
+
Quarkus 1.11.3.Final is a quick bug fix release that focused on a regression making it impossible to build native executables if your project was using both RESTEasy and OpenTracing. Please see the full changelog for more information.
+
+
+
Wildfly 22.0.1 has been released, about a month after 22.0.
Kogito Tooling 0.8.3 released a few days ago. With the release of 0.8.1, the Kogito team released their official version of the BPMN and DMN standalone editors. This release builds on that and continues to allow you to embed the editor within your application. It also allows you to open DMN 1.1 and 1.3 assets. The post also contains a list of bugs squashed
+
+
+
+
We would certainly like to thank all those who helped complete these releases!
+Each team is grateful for the help from the community.
+
+
+
+
Highlights from the blogosphere
+
+
Eric Schabell published a migration guide for a traditional JBoss BPM application running either within a VM or on bare-metal to running inside containers using OpenShift Container Platform.
+In his post he breaks the migration down into four steps.
+I won’t detail them all here, but the steps are very easy and you should be able to get up and running quickly on your own laptop, even without having some of the tech installed previously!
Each of these help users in the authoring process within Business Central through either ease of use or security!
+
Still on the KIE Blog, Yeser Amer demonstrates how to use PMML models in the DMN Editor.
+PMML support was released with version 0.7.0.
+PMML is an XML file describing a predictive model often generated by data mining or AI algorithms.
+The support for this format within the VSCode plugin was recently released and follows the same usage patterns as those found within Business Central, so it may very well be familiar to some.
+
A number of blogs about Quarkus sprang up over the past couple of weeks!
+
Firstly, Georgios Andrianakis discusses achieving massive performance without headaches in a RESTEasy application on Quarkus using RESTEasy Reactive.
+He talks about the different models, how to use them, the best way to get performance out of each model, and why this will likely becoming the default model within RESTEasy on Quarkus in the near future.
+
Clement Escoffier helps us get started with AMQP in Quarkus with an in-depth demo similar to using Kafka.
+He walks you through the basics and gives you a running project which he steps through to show you all the basics.
+
Over on the Red Hat Developers Blog, Eric Deandrea shows us a very cool trick, or maybe the power of Quarkus’s Spring compatibility, about running a Spring Boot application on Quarkus without changing a single line of Java code!
+It is definitely worth the read, head on over to check it out!
+
If you missed the announcement about Quarkus remote development, be sure to read up about it by Daniel Oh on the Red Hat Developer Blog.
+Using a mutable-jar package, you can deploy onto OpenShift and continue to develop remotely without having to build a new container and push every time you want to see a change!
+What an amazing way to build on the cloud and make sure everything works correctly without having slow downs!
Lastly, Mario Fusco and Edson Yanaga have a presentation from a recent DevNation Live about designing a Java API.
+Check it out over on the Red Hat Developer blog.
+Certainly worth the watch if you develop APIs in Java (which should be most of you).
+
Thanks for being with us for another edition of the JBoss Weekly Editorial.
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Releases!!
+
+
Infinispan 12 release, codenamed Lockdown, brings a ton of new features and improvements.
+Indexing and querying capabilities have seen a number of improvements with the help of Hibernate Search integration.
+ProtoStream marshalling is upgraded with a new @ProtoAdapter annotation that lets you easily integrate third-party classes.
+It’s a pretty elegant solution to what could present itself as a real headache for developers.
+Speaking of marshalling improvements, Infinispan 12 also makes your life easier by automatically generating and registering SerializationContextInitializer implementations to marshall user types.
+Also notable is the SPI for cross-site replication merge conflicts, which continues on the brilliant work that team has done to provide a solution for ensuring data integrity.
+There’s a lot going on in Infinispan 12 and probably too much to try and sum up here so why not head over and read all the details in the Infinispan 12.0.0.Final Announcement.
+
Congratulations to the entire Infinispan team on all the hard work.
+
Quarkus 1.11 is here!
+This release brings you RESTEasy Reactive, which is a new JAX-RS implementation for writing RESTful services.
+Quarkus 1.11 also introduces the Dev UI so you can quickly visualize all your loaded extensions, access docs, and more.
+Of course there are other things in Quarkus 1.11 but RESTEasy Reactive and the Dev UI look to be quite promising indeed.
+
The Quarkus team keep things rolling with the release of Quarkus Tools for IntelliJ 1.3.0 that adds codestarts to the Quarkus project wizard.
+
Keycloak 12.0.2 is now available too!
+Head on over to their site and check it out.
Clement Escoffier details how to get you started with Apache Kafka in Quarkus applications in less than 10 steps using Reactive Messaging.
+Clement provides a GitHub repository with the code too so take a look at his Getting Started with Apache Kafka.
+
+
+
+
Easing the Keycloak integration tests in Kie Server with Testcontainers
If not, head over and take a look.
+There are always interesting discussions and cool speakers.
+
One recent video that I really enjoyed, and is timed well with the release of Infinispan 12, is Episode #32 where Yoann Rodière joins the lads and introduces us to Hibernate Search 6.
+Yoann goes through all the exciting new stuff in Hibernate Search and explains how the search API gives you accurate and flexible full-text search for applications to overcome the limitations that come from SQL queries.
+
+
+
+
Apache Camel and Java Flight Recorder
+
+
Claus Ibsen’s recent Apache Camel 3.8 and Java Flight Recorder post breaks down how you can capture work steps with Flight Recorder to diagnose Apache Camel and improve performance.
+
+
+
+
Red Hat Developer Highlights
+
+
In another Flight Recorder post, Andrew Azores gives us a great tutorial on using JDK Flight Recorder for containers running on OpenShift.
Welcome to the first installment of our JBoss Editorial for 2021! And to start the year, we have a brand new major release of the core product of the JBoss community! Yes, Wildfly 22 is out!
This release includes support for use of log4j2 in applications, new base health and metrics subsystems to provide server observability for users who don’t need the application instrumentation that comes with MicroProfile Health and Metrics, and a number of other features related to management, provisioning, messaging and security. Plus numerous bug fixes, enhancements and component upgrades.
+
On top of that, there is also an updated version of the new tech-preview WildFly Preview distribution. This will allow the community have a look at what Wildfly developers are doing for Jakarta EE 9 support, along with other changes in the server architecture that are expected to appear later in 2021.
+
Wildfly 22 is already a nice treat, but we also have Camel 3.7, which also quite exciting, and fortunately for all of us, Claus Ibsen has published a review of what he called the fastest Camel ever! So, go check it out if you want to know more about this camel release.
+
+
+
+
Tech bytes
+
+
A few interesting technical articles came out in the last weeks, so we’ll try to catch you up with three of them here. First, we have an excellent one from Bela Ban on running JGroups raft as a service. It’s very hands on post, focusing on getting everything running. Then we have a longer walkthrough to let you experiment on using Spring boot embedded cache with Infinispan on Kubernetes. Certainly, worth a look, isn’t it? The last one is, of course, on Quarkus, because Quarkus is, as it should, all the rage lately. In this article, Clément Escoffier took the time to explain some of the magic beneath Quarkus and Vert.x and why this is the kind magic you to have as a developer.
As always, the JBoss community has been quite active in the last weeks, and more than a few project releases new version (including the forementionned Wildfly 22 and Apache Camel 3.7):
You want to break from Java programming, but still learn something relevant to it? Well, take a look at this article on Getting started with Tekton and Pipelines. It’s more than likely to pique your interest.
+
That’s all for today! Please join us again in two weeks for another installment of our JBoss editorial! Stay safe and healthy in the meantime.
I’m writing this on Christmas Day and have spent the last week or so thinking about what I should put
+into my traditional 25th of December entry. Then it came to me in that "lightbulb moment": I’d replicate,
+more or less, what I said to my entire team/org before I went on vacation a few days earlier. It’s a summary
+of the year and I think it’s relevant for our wider community too. So here it is in a slightly modified form …
+
I wanted to spend a few minutes thanking you all for the work and interactions you’ve done over this testing year!
+I don’t think anyone could have predicted 2020 at the start of the year and I think it’s fair to say that every one of us
+has been affected in one way or another. Yet if you look back on the year and the accomplishments we’ve achieved
+as a community, you could be forgiven for thinking this was a normal year!
+
+
+
+
Making Quarkus available to all OpenShift customers, which we announced at KubeCon, as well as continuing the innovation within
+(e.g., Hibernate Reactive, RESTeasy Reactive);
+
+
+
Knative/Serverless, where we now have 7 Working Group leads out of 15 in the Knative community, we also added Functions to OpenShift Serverless;
+
+
+
More and more of our technologies become available to Kube developers;
+
+
+
We continued our close involvement with AdoptOpenJDK (aka Eclipse Adoptium), helping to push it to even greater heights;
+
+
+
So many great innovations continued around efforts such as Kogito, Strimzi, Camel-K, Eclipse Vert.x, Infinispan, …
+
+
+
We all managed to host, attend, present at countless virtual conferences, workshops and Red Hat Summit; probably enough to realise what
+we’re all missing from the real things!
+
+
+
Eclipse MicroProfile 4.0 and Eclipse Jakarta EE 9.0 both come to life;
+
+
+
+
The list could go on and on (e.g., EAP XD, OptaPlanner, …) but my point isn’t so much to call out the successes that this
+community have helped to drive but rather to illustrate that we were able to do these and more at all! In the
+climate of 2020, retaining the kind of focus we have and continuing to go above and beyond, as many of you and the teams
+have, is a testament to Red Hat and our communities, our culture and the supporting bonds you’ve all built up and nurtured. For that
+alone I thank you and you should all be incredibly proud!
+
With that in mind, whether or not you celebrate Christmas or intend to take extended time away, make sure you do take time
+to rest and recharge. Be with your friends and family as much as you can given the continuing Covid situation. Find time to unwind
+but also congratulate yourself on coming together in 2020 and delivering so much to our communities, partners and customers. I’m not
+even going to try to predict what 2021 will be like but if we can replicate what we’ve been able to do in 2020, I’m sure
+we’ll all come through it stronger and together!
Welcome to another installment of our JBoss Editorial and last before the holidays! As always during this period of the year, we all rush to finish our ongoing tasks so that we can enjoy a bit of rest. And the projects of the JBoss community do the same, which means we have quite of lot to discuss today! So, without any further ado…
+
+
Quarkus and RestEasy Reactive
+
+
The last months have certainly been quite active for Quarkus. Now part of the portfolio of Red Hat products, the project has everything but slow down. Just last week a new release, Quarkus 1.10.3 was published, but also RestEasy announced a large refactoring of its project RestEasy Reactive in order to integrate and support Quarkus even more. Alessio Soldano, one of the main developers of RestEasy, also shares his thoughts behind this project here.
+
But that’s not all in the Quarkiverse! Andy Damevin released an interesting article on link:But that’s not all in the Quarkus-verse! Andy Damevin released an interesting article on new ways to discover Quarkus new ways to discover Quarkus using Extension codestarts. Whether that you already know Quarkus or want to explore it for the first time, this one will be in any case quite interesting to you! Oh, and by the way Quarkiverse is by no means a "bon mot,” it’s the real thing: Quarkiverse Hub - Home of Community Extensions, so go check out this article from George Gastaldi to know more about it!
With the end of 2020 coming up soon, it’s time to clean up our desk and prepare a clean slate for next year. So let’s do the same with our computer and follow this how-to to clean up your Fedora!
+
That’s all for today! Please join us again in two weeks for another installment of our JBoss editorial! Stay safe and healthy in the meantime.
Hello! Welcome to another edition of the JBoss Editorial that brings you news and updates from our community.
+
+
Releases!
+
+
Quarkus 1.10 is out!
+This release brings several updates, notably JSON as the default media type for REST resources in your Quarkus applications.
+Now you no longer need all those `@Produces and @Consumes annotations!
+
Quarkus 1.10 also brings you two new Micrometer registries, additional metrics, and lots of consistency and configuration improvements to all things Swagger UI, which is detailed in the Stylish API blog post.
+
WildFly have released GraphQL Feature Pack 1.0.0.Final to give WildFly 20 and 21 the latest MicroProfile GraphQL and SmallRye GraphQL capabilities.
+Congrats to the WildFly team!
+
+
+
+
Distributed Locks? They Don’t Work!
+
+
Bela Ban’s recent post, I hate distributed locks!, is an insightful and emotionally charged look at the pain and the agony of distributed locks.
+He dissects different scenarios in which locks are distributed and the pitfalls for each.
+Bela does give hints to other alternatives, but I’d suggest you go read them over on his blog.
+
+
+
+
Cloud Events with Quarkus
+
+
Given that event-drive architectures are becoming ever more popular, Clement Escoffier introduces Cloud Events with the Kafka Connector in Quarkus and shows you how to write and read Cloud Events easily.
+
+
+
+
Vert.x Mutiny API
+
+
In another recent post on the Quarkus blog, Mutiny and the Reactiverse, Clement Escoffier explains using Mutiny variants of Vert.x APIs to get a seamless experience with reactive APIs in Quarkus while taking advantage of the Vert.x ecosystem.
+
+
+
+
Untangling Reactive Streams
+
+
Continuing the discussion on the reactive paradigm, Rebecca Searls strips back complexities of Reactive Streams in her detailed blog post and brings some clarity for wiring a Subscriber, Publisher, and Subscription.
+Be sure to check out the demo code in Rebecca’s github.
+
+
+
+
Business Automation and CodeReady Containers
+
+
In this first in his series of articles, Eric D. Schabell begins his journey that will guide you through using the latest Business Automation Operator on the OpenShift Container Platform.
The Infinispan community have launched a revamped site at infinispan.org.
+The new layout has a great look and feel! Congrats to the team.
+
+
+
+
Red Hat Developer Highlights
+
+
Alex Krikos and Donna Smalls announce Red Hat Software Collections that offer use case-specific tools along with the most current, stable version of dynamic languages, open source databases, web servers, and other critical development components.
+Visit the Red Hat Software Collections 3.6 Now Generally Available announcement.
Welcome to another installment of our JBoss Editorial! Today, we’ll focus on some core project of our community. The first one is obviously Wildfly, our Jakarta EE application server whom predecessor (JBoss AS) was the beginning of everything. The second one is our more recent and shiny project, Quarkus. Without any further ado, let’s begin!
+
+
Wildfly, a first Taste of Jakarta 9
+
+
With the release of the Wildfly 21.01, it’s time to put the Jakarta EE server back in the spotlight. Especially as this release gives a a preview of Jakarta EE 9! And if your knowledge of the EE standards needs a refresher to fully enjoy this preview, we got you covered with this in depth two-part series on Jakarta EE multitenancy (part1) and (part 2).
+
But Jakarta EE 9 is not the only newsworthy item around Wildfly. The first part of my own series on automation of Wildfly using Ansible and JCliff is out! It’s hand on a tutorial on how to set up Ansible and its decided collection for Wildfly (JCliff) in order to fully automate the app server set up and configuration.
+
+
+
+
Quarkus, Leading the Future of Java
+
+
It might a bold statement, but we’ve made it! Or rather Red Hat made it as Quarkus 1.7 is available as a product for a little while now. Maybe it’s time to finally take a look at it by following this Red Hat Quarkus tutorial?
Still hungry for more? Well, maybe it’s time for less crunchy and technical details? What about stepping back and invite some reflection on Open Source monetization ecosystem.
All this Java made you too jittery? Time for a Java break? Here are a few dry cookies to go along your cup of joe. As mentioned above, the first part of my series on using [Ansible to automate Wildfly setup] might a nice palate cleanser. Also, if you are using Docker you might be interested in this article describing how to transitioning from Docker to Podman.
+
That’s all for today! Please join us again in two weeks for another installment of our JBoss editorial! Stay safe and healthy in the meantime.
Welcome to another edition of the JBoss Editorial where we search through the JBoss Community for interesting articles and updates
+
+
Optimizing Camel 3.7
+
+
Camel 3.7 continues the push to optimize camel core by introducing some more improvements including further modularisation to help reduce the size of the runtime, a lightweight mode and more. For further details check out Claus' blog where he covers these improvements in more detail.
+
+
+
+
Keycloak Authentication Using a Mobile Phone Number
The Open Liberty 20.0.0.11 release introduced two very interesting capabilities, the addition of kerberos authentication for securing Java Database Connectivity data sources and the ability to visualise MicroProfile Metrics data from Thanos sources. For more information on these capabilities check out Austin’s blog on the topic
+
+
+
+
What’s new in Fabric8 Kubernetes Java Client
+
+
The recent Fabric8 Kubernetes Java client 4.12.0 release included a number of bug fixes and new features. For more information on these updates, including details on some breaking changes, head over to Rohan’s post where he covers these in more detail.
+
+
+
+
JBoss Online
+
+
Eric Schabell will be giving a presentation as part of the KieLives series on all technologies living under the KIE umbrella. Eric’s talk is titled "The ultimate beginers guide to rules and processes" and will be taking place on November 10th.
That’s all for this edition of the JBoss Editorial, please join us in a couple of weeks when we will bring you more news and articles from the JBoss Community Projects.
Welcome to another edition of the JBoss Editorial where we bring you articles and news from across the JBoss Community of projects.
+
+
Micrometer is recommended for metrics with Quarkus 1.9
+
+
In this post, Ken explains why the Quarkus team are now reccomending the use of the Micrometer Quarkus extension over the previous Eclipse MicroProfile Metrics extension.
+
+
+
+
Kafka - How to fail gracefully
+
+
Failures are inevitable.
+There is nothing we can do about that, and that also applies to Kafka applications.
+Your application may contain a faulty component misbehaving once in a while, or unable to process a specific Kafka record.
+In this post, Clement explains how to manage these failures.
+
+
+
+
Use mobile numbers for user authentication in Keycloak
+
+
In this post Siddhartha De explains how to extend Keycloak to use mobile-based authentication.
+The post explains the need for mobile-authentication and shows, hands on, how to use the Keycloak service provider interface to create this extension.
+
+
+
+
Securely connect Quarkus and Red Hat Data Grid on Red Hat OpenShift
+
+
Continuing on the theme of security, James Falkner explains (here) how to secure applications deployed on Red Hat OpenShift that use the Quarkus Data Grid Extension.
+
+
+
+
Creating a Payments Architecture
+
+
Eric continues his blog series looking at how Cloud technologies are changing the way we architect and deliver software, in particular how these technologies will apply to the Payment Services industry.
+This week Eric describes a Financial Calculations Example
+
+
+
+
Mutiny - How does retry… retries?
+
+
Clement was recently helping a community Quarkus user understand how to retry asynchronous operations with Mutiny.
+In doing so, he realised it was not all that simple to understand, and so he created this blog post so that the whole community could benefit from his explanation.
+
+
+
+
CodeReady Containers - Building a Cloud-Native Human Resources Process
+
+
In this blog post Eric talks you through how to install process automation developer tooling into a running Openshift Container platform.
+You can also refer to one of Eric’s previous posts for details on how to easily get Openshift Container Platform running on your local machine.
Welcome to another edition of the JBoss Editorial where we bring you articles and news from across the JBoss Community of projects
+
+
Creating a Payments Architecture
+
+
With Cloud technologies changing the way we architect and deliver software Eric has been taking a look at how these technologies will apply to the Payment Services industry.
CodeReady Containers, Decision Manager and Process Automation
+
+
If you have ever wanted to explore Decision Manager or Process Automation running within the cloud then it has never been easier to get started. Eric has developed two simple setups, both leveraging CodeReady containers and OpenShift Container Platform 4.5, which allow you to quickly set up Decision Manager and Process Automation.
Camel 3.6 will bring with it a number of optimizations to the camel core which will improve not only the performance of the core but also reduce the resources required to run camel routes. For more information check out Claus' blog where he describes the changes in more detail.
With Hacktoberfest already under way there are a number of opportunities for contributing to OpenSource, including a number of projects within the JBoss Community with two of those being Strimzi and Quarkus. If you are interested in contributing to Strimzi then check out Paolo’s post, if interested in contributing to Quarkus then check out Loïc’s post.
That’s all for this episode of the JBoss Editorial, please join us for our next edition when we will take another spin through the JBoss Community Projects in search of more interesting news and articles.
It’s that time again where we round up the latest news from the community…
+
Are you looking to develop projects on your local machine, and push them on to a real OpenShift Container Platform, without having to worry about cloud hosting of your container platform?
+In this post Eric Schabell provides an easy way to get up and running with CodeReady containers on your own development machine.
+He’s automated most of the process through scripts, and guides you through the rest of the process.
+Eric also shows you how to drop into the Developer console in OCP providing a developer focused view that hides much of the plumbing that is not needed during development.
+
In this post Mary Cochran shows us a simple way to connect existing services together using CamelK via each service’s REST APIs.
+Mary gets deep into the details providing code examples and commands to get you up and running.
+
Eric Schabell continues his blog series, bringing you architectural blueprints for cloud-native financial payment services.
+The blueprints are focused on proven interactions, messaging, processing, and integration patterns that you can put to use when building a cloud-native payment architecture.
+This week he covers the Common Architecture Elements that make up the architecture, and gets into some details with the Immediate Payments Example.
+
As is normal for this time of year, the conference season is beginning to kick off.
+Albeit this year in a virtual arena.
+Undoubtedly this is an unfortunate situation for those that enjoy the in-person events.
+However, it’s great for accessibility and reach allowing many more people across to globe to attend.
+DevConf.US 2020 is one such event.
+It’s a free, Red Hat sponsored technology conference for community project and professional contributors to Free and Open Source technologies.
+Read more here where Eric describes the “AppDev & Containerization Ask the Experts” Panels that he and Kurt Stam will be moderating.
+
This week Kapil Shukla explains how to build a data streaming pipeline using Kafka Streams and Quarkus.
+In this post Kapil shows how data can be processed in real-time as and when it arrives, instead of being batch processed as was needed in the past.
+
In this Post Anton Giertli provides help with troubleshooting user task errors in Red Hat Process Automation Manager and Red Hat JBoss BPM Suite.
+If you are a developer working with user tasks and having trouble debugging them, this post might well help you out.
+
With the recent release of Apache Camel VS Code extension (0.0.27) comes several new language support features for Apache Camel.
+Read this post to learn more.
Welcome to another edition of the JBoss Editorial where we gather news from our communities and explore developments from our projects.
+
Our very own Mark Little goes into detail to explain Quarkus and Jakarta EE compatibility. Mark gives an insightful breakdown of the history for both projects and answers a much asked question, will Quarkus and Jarkata EE come together? No spoilers here, though. Go read Mark’s Quarkus and Jakarta EE: Together, or not? if you already haven’t.
+
In the evangelist’s corner, Eric Schabell has brought out an excellent hands-on workshop with labs for Red Hat Decision Manager that show you how to design and build a retail web shop from scratch.
+
Eric also teams up with Ramon Villarreal to bring you architectural blueprints for cloud-native financial payment services. The blueprints are focused on proven interactions, messaging, processing, and integration patterns that you can put to use when building a cloud-native payment architecture.
+
Leon Matthews continues the topic of all things financial with his analysis of the history of Java in the banking sector and the role Quarkus is playing in allowing banks and financial institutions to embrace change, innovate to remain competitive, and become more efficient. Read Leon’s post: 25 years and going strong: Why Java matters to the future of banks.
+
Speaking of Quarkus, Clement Escoffier shows you how to build a stream of beer and then retrieve beers in a reactive way. After walking you through how you can do that with Mutiny, Clement provides a gist with all the code that you can compile and execute with jbang and a single command. You can find everything in his Handling paginated APIs with Mutiny post.
+
Another post from the Quarkus team that is worth reading is Jeff Beck’s Wipro Addresses Seismic Shift in Retail with Quarkus. Jeff shares the Wipro story by describing their needs and challenges and how they adopted Quarkus to modernize their applications and address customer use cases.
+
If it hasn’t crossed your radar, Bela Ban shows us his plans for a One Size Fits All JGroups program and explains what is needed to get there.
Congratulations to the Infinispan team for releasing the Dev03 cut of Infinispan 12. Cross-site replication capabilities continue to advance with an SPI that includes configurable policies for merging conflicting values from asynchronous backups, a feature which guarantees data consistency between global Infinispan clusters. That’s no small feat of engineering! Find out about that and more over on the Infinispan blog.
+
Quarkus 1.8 is out with some shiny new features, including jbang integration for easy Quarkus-based scripting, support for multiple persistence units for the Hibernate ORM extension, a new Micrometer extension, and update to GraalVM 20.2 for building native apps from Quarkus projects. Here is the announcement with all the info.
+
Keycloak have announced their new Account Console, built on React and PatternFly 4. The latest version offers a fresher look and feel with custom themes and extensions. Go check it out.
Welcome to another edition of the JBoss Weekly Editorial!
+Summer is drawing to a close, but that doesn’t mean Red Hat has been resting, or that nothing has been happening over the past two weeks.
+There’s been some great movement and progress made, which we’ll cover.
+In this edition we’re going to focus on OpenShift, the blogosphere, and finally, other project news.
+
+
OpenShift
+
+
Last week was KubeCon Europe 2020, which as you can guess, was a big event for OpenShift!
+We had 15 speakers from Red Hat speaking over the three days, giving 17 talks.
+A number of new announcements, blog posts, and articles came out during KubeCon Europe 2020, They’re all liked at the OpenShift event page.
+There’s simply too many to link here.
+The above event page has videos, press release links, links to other announcements and blogs.
+
+
+
+
Blogs
+
+
Continuing the trend about OpenShift, Paul Vergilis wrote about external clients and Red Hat AMQ over at the Red Hat Developer blog.
+If you’re interested in getting started with Strimzi, Apache Kafka on Kubernetes, you’ll want to catch up on the blog post Paolo Patierno and Jakub Scholz wrote: Introduction to Strimzi: Apache Kafka on Kubernetes (KubeCon Europe 2020).
+For those of you running OpenJDK 8, you’ll want to know more about JDK Flight Recorder available in OpenJDK 8u262. An indepth intro is available at the Red Hat Developer Blog written by Mario Torre.
+
+
+
+
Projects
+
+
To wrap up this edition, we will be looking at two announcements from Keycloak:
Welcome to another edition of the JBoss Editorial where we gather news from our communities and explore developments from our projects.
+
+
JGroups 5!
+
+
Exciting news from Bela Ban as JGroups 5.0.0.Final is released. JGroups 5 brings lots of improvements and some major API changes.
+
Perhaps the biggest change is that Message is now an interface with a number of subclasses that perform late marshalling so object payload is serialized at the point when messages are sent, which eliminates a memory allocation and makes JGroups performance even better.
+
Other cool features in JGroups 5 are virtual thread support, an implementation of the Random Early Drop (RED) protocol, more efficient FD_ALL3 failure detection, a new protocol to dump stats, and lots more.
+
Hearty congratulations to Bela and all the contributors and folks who made it happen!!
Stian Thorgersen of the Keycloak team presents a DevNation Tech Talk that provides an in-depth look at the best open-source identity and management solution around. Stian gives a great demo of Keycloak that not only highlights features but showcases just how easy it is to integrate and use Keycloak capabilities to secure your applications.
Another Tech Talk that you should definitely check out comes from Clement Escoffier and Edson Yanaga, who go into detail about Mutiny, a new reactive programming library. Clement and Edson explain why reactive matters, how Mutiny is makes it easier to develop reactive applications, and how the library is integrated with Quarkus.
By now I’m sure you’ve heard of Skupper but maybe have yet to see it in action. Ted Ross gives a great introduction and live demonstration of Skupper across AWS, GCP, and Azure that shows real-time load balancing and fail-over.
Katia Aresti has created a pretty awesome Infinispan Server tutorial that demonstrates a full set of capabilities with a weather application. Visit the Infinispan Remote Weather App Tutorial and try it for yourself.
This Week in JBoss - 30th July 2020: No rest for the JBoss community!
+
+
Welcome to another installment of our JBoss Editorial! The last two weeks have been pretty rich on published content and releases, so let’s dive right in!
+
+
From Spring Boot to Quarkus
+
+
As Quarkus community is increasing the question of how to migrate to this new framework (or rather runtime) often arises. If you happen to have such predicament with Spring Boot, I’m sure you’ll be quite interested to read this article on migrating Spring Boot tests to Quarkus.
+
+
+
+
Secure vue.js with Keycloak
+
+
If most of the content we mentioned today is made of articles, we have one, quite cool video content to share. It’s coming straight from one of the tech-talks of the DevNation and we hope you’ll like it : Secure vue.js using Keycloak.
+
+
+
+
JGroups: Double your performance with virtual threads!
+
+
Quite a lot of exciting things are happening in the realm of JGroups lately! Last time, we already mentioned the new netty transport, but Bela Ban, the creator of project, got us even more excited with this news about how one can double its performance using virtual threads (fibers) on JDK15/16!!! This JDK is still a bit down the road, but its certainly a nice glimpse into tomorrow.
+
+
+
+
Back to the Basics
+
+
As said above, the last two weeks have been particularly rich in interesting content around the JBoss community and the Java ecosystem at large. Some of those articles took the time to go back and rethink some aspects of our work that we take for granted. Let’s first mention this original take on java programming that focuses on taming inconsistent state in a Java code.
+
This first article is already pretty centered around coding, but this next one goes into the very guts of Infinispan! If you know the project, I’m sure you’ll find this entry on anchored keys as fascinating as I did!
No rest for the wicked! And no, no rest for our very own Eric D. Schabell! In the last two weeks, he has been quite busy again. First of all, he got his very first interview on a podcast (yep, that’s right, he was never on a podcast before!). With the host, he discussed the best practices for Agile integration. If you are interested in this topic, fetch the episode, you won’t regret it!
As always, the JBoss community has been pretty busy in the last weeks and a few projects have seized the relative quietness of Summer to release new version of their product:
This Week in JBoss - 9 July 2020: Over the (j)cliff!
+
+
Welcome to another installment of our JBoss Editorial! Summer has begun, well, at least for those of you readers living in the northern hemisphere :)! So let’s enjoy it by giving some nice, interesting and exciting reading material to enjoy while resting in the sun (with your mask, #staysafe!).
+
+
Infinispan 11!
+
+
It’s out! The new major version of Infinispan is here! Please go and check out Infinispan 11!
+
+
+
+
JGroups: new Netty transport!
+
+
I’ve said it many times, JGroups is an incredible piece of software. The power and the flexibility of the frameworks always dazzle me, so I’m very excited about this new netty transport getting into it!
+
+
+
+
Ansible Collection for JCliff
+
+
It’s a pet project of mine that I have already mentioned a few months ago: Andrew Block, Roel Holzmans and I have been working on integrating further Widlfy (and EAP) into Ansible, in order to ensure that one can use the tool to fine-tune as much as possible the JEE server’s configuration. We leverage an existing Open Source Java tool called JCliff to just that.
+
Last year, we released a role, already available in Ansible Galaxy, to integrate JCliff into Ansible. However, since then, the Ansible community released a new format to distribute extension, called Ansible Collection. We therefore decide to migrate our content there and we finally released, just this week, a very first version: Ansible Collection for JCliff 0.0.1.
+
So, please check it out! All you need to do is $ ansible-galaxy collection install redhat.jcliff:0.0.1 and, voilà, the collection is installed and you can start to play with it.
+
Oh, almost forgot! This release also supports, on tops of Linux, MacOSX with homebrew! (Windows using Chocolatey is coming next).
+
+
+
+
Serverless and Microservice
+
+
As alluring as “serverless” is, it does, like any other technology, come with its own challenges. Follow Christina as she goes through the importance of having the proper infrastructure to support your “serverless” apps in this well thought out blog entry: Serverless Integration Components
Here we are, once again at the close of June.
+Another summer has begun, albeit a little different than most.
+I hope everyone is safe, healthy, and doing well.
+There have been some very interesting blogs posted in the past couple of weeks that we’ll discuss in this edition, as well as a few releases.
+
Operators in Kubernetes provide an extension point for the platform.
+They follow a pattern allowing you to manage resources and applications within the cluster.
+An operator can be either namespace-scoped or cluster-scoped.
+Did you know, however, that you can convert between the two?
+That is exactly what Abhishek Koserwal details in six steps over on the Red Hat Developer blog.
+Abhishek walks you through a basic example and provides the full example as a GitHub repo.
+Read the article for more information, and reasons why you may want or need to switch between the different scopes.
+
Multitenancy may be something you deal with everyday, or it may be something you’re looking at adding to your current application base.
+Either way, dealing with persistence can be tricky.
+Tenants must not see each other’s data, but be allowed to operate simultaneously.
+Your application must also perform well while still being easy to maintain.
+Rhuan Rocha has started a two part series on how to use JPA with Multitenancy over on the Red Hat Developer blog.
+The first entry details the problem and presents a possible solution using WildFly and EJBs.
+Expect the next installment to look more at Hibernate and JPA solutions.
+
Effortlessly building a native application is of course, one of the amazing capabilities of Quarkus.
+However, when it comes to debugging, a native Quarkus application makes debugging very difficult.
+A large part of this is the optimizations that happen to create that quick, small, native binary.
+This debugging complication hasn’t gone unnoticed.
+Andrew Dinn has been working on this problem.
+He contributed a solution where the debug information is embedded with in the native image and can be access with gdb.
+If you’d like to learn more about the solution, read Andrew’s blog entry.
+
Continuing with the Quarkus theme, Durgesh Anaokar wrote about developing and testing a Quarkus Red Hat Data Grid client using Red Hat CodeReady Containers.
+Durgesh details installing CRC (Red Hat Code Ready Containers) and Data Grid on OpenShift 4 as well as running the client.
+Naturally, his project code is hosted in GitHub, you’ll find that link in his blog entry.
+
Red Hat now has images, Universal Base Images to be exact, of OpenJDK (8 and 11) in Red Hat Enterprise Linux 8.2.
+A Universal Base Image (UBI) is an OCI-compliant container base OS image with runtime and language support that can be used as the base for Docker images and Podman/Buildah images.
+These will allow you to deploy and build supportable applications on Red Hat OpenShift and RHEL.
+It also includes a number of additional user-space packages over a base UBI.
+Read more about this over at Red Hat Developers.
+
If you have been following, you’ll know the Infinispan team has been hard at work on Infinispan 11.
+They are proud to announce that Inifinspan 11.0.0. Final has been released!
+A number of improvements and features have been added to this release including clustering, CLI, Hot Rod Client improvements, non-blocking internals, and others.
+
Along with that new Infinispan release, you can now deploy a natively compiled version of the Infinispan server!
+The memory footprint is only 286MB.
+There are also native Quarkus extensions for your Quarkus based applications.
+
Not to be left out of the cloud native party, Apache Camel is announcing the GA release of Apache Camel K 1.0.
+This release includes tooling, connectors, and integrations with Knative.
+This is a great step forward for doing integrations with a small footprint.
+
Lastly, Red Hat JBoss Enterprise Application Platform Expansion Pack 1.0 was recently released.
+This is a patch that adds MicroProfile capabilities to JBoss EAP.
+There are some policy changes you will need to be aware of, but you find links to all of thosewithin the announcement.
+
Thanks again for being with us on another JBoss Editorial!
Welcome to another edition of the JBoss Editorial where we gather news from our communities and explore developments from our projects.
+
+
Mandrel
+
+
There has been some exciting
+news about Mandrel.
+You’ve likely heard of this by now but, in his announcement post, Mark explains how Red Hat has worked
+with the GraalVM community to create a distribution of OpenJDK with GraalVM’s native-image
+capabilities for producing native executables.
+
+
+
+
AI vs COVID-19
+
+
A recent DevNation Tech Talk with
+a very topical subject looks at how OptaPlanner has helped keep medical staff and patients safer with advanced planning algorithms.
+It’s nice to see Java play a role in improving things for those who are at the front lines of the pandemic.
The Infinispan blog has seen a flurry of activity in the run up to the 11.0.0.Final release, which
+should be available real soon now. In the meantime, you can read about some of the things that will be
+available in Infinispan 11 here:
Welcome back!
+Things keep rolling along for us within Middleware at Red Hat.
+We have a couple of new releases and some blogs to talk about this week, so let’s dig in.
+
+
Releases
+
+
+
+
+
Infinispan 11.0.0.0.CR1 - This CR release sees non-blocking internal changes, a non-blocking Store SPI, slight modifications to clustering scaling, better/more server security, CLI, kubernetes/OpenShift operator, and an update to documentation!
+
+
+
Quarkus 1.5.0.Final - The milestoe is done and the artifacts are in Maven Central. There are a few things left to do to offically announce the release, but all the coding is done. The link here is to the GitHub milestone for a list of issues completed.
Lastly, we want to cover episodes 2, 3, and 4 of the Quarkus Insights video podcast.
+Episode 2 covers quarkus:dev and Command mode.
+Episode 3 discusses Hibernate and Panache.
+The most recent one, episode 4, talks about JHipster for Quarkus.
+You can find these video pod casts at YouTube or the audio on Apple Podcasts and Spotify.
We’re a little light on the news this time, but those of us who have been reading the editorial for a few years will be familiar with the "after Summit slump."
+With Red Hat Summit behind us (and what a great Summit, check out the sessions on demand if you missed them), many people have taken PTO.
+Expect all the news, blogs, releases, etc. to pick back up in the coming weeks.
+
All that being said, we do have some blogs to go over and one release.
+
+
Blogs
+
+
First up is Eric Schabell’s second entry in his "Demystifying the Event Driven Architecture - Making the case" series.
+You can read more about it at his blog.
I’m writing this as we wrap up another successful Red Hat Summit.
+But this year, with a significant distinction: the event was 100%
+virtual. Despite the involuntary move to virtual, there were many
+benefits that came about from the change in format. The event was
+completely free, and of course required no travel, allowing a much
+broader and more diverse set of attendees to benefit from the
+content and experience. It was also ran in three regions to
+accommodate many more timezones.
+
Being Red Hat we were keen to experiment with the format and find
+new ways to engage with the community. It was important for us to
+carry over as much of the personality and intimacy of the physical
+event as possible. So, this needed to be more than just a bunch of
+streamed talks. The talks were pre-recorded which allowed the
+presenter(s) to participate directly in the Q&A in real-time
+as the talk proceeded. There was also a variety of sessions that
+went beyond the talk format. For examples see
+Ask the experts, Networking social hour, and
+the Virtual Open Neighborhood on the
+agenda.
This week Max Andersen and Emmanuel Bernard kicked off a new video/podcast series
+bringing insights into Quarkus. Each episode will focus on a
+guest speaker discussing the development or usage of Quarkus.
+There are also some dedicated Q&A sessions planned. Be sure
+to subscribe to the Quarkus YouTube channel
+to catch these sessions and other exciting Quarkus content.
+In particular join them on the 4th of May
+where Georgios Andrianakis will talk about Quarkus testing
+and specifically the new mocking improvements in the recently
+released Quarkus 1.4.
+
+
+
Kogito: A Modular Codegen Design Proposal
+
In this post
+Edoardo Vacchi explains how Kogito is improving performance
+by moving processing out of the run-time and into build-time.
+
+
+
Red Hat Summit 2020 - Ask the Experts: Hybrid Multicloud Pitfalls
Free book on Knative covering Camel K and Kafka and upcoming webinar with live demos
+
In this post Claus Ibsen alerts us to the free eBook
+written by Burr Sutter & Kamesh Sampath on the subject of Knative. Go get your
+free copy here!
+
+
+
Red Hat Summit 2020 - Business Automation Sessions
+
If you are interested in the area of Business Automation, be sure to view Kris
+Verlaenen’s helpful summary
+of all the BI related talks held at Red Hat Summit.
+
+
+
Demystifying the Event Driven Architecture - An introduction (part 1)
+
Eric Schabell has started a new blog series
+that explores the world of Event Driven Architectures (EDA).
+
+
+
Six reasons why you will love Camel K
+
Interested in Camel K, or want to find out what all the fuss is about?
+Read on,
+and Christina will give you six reasons to love Camel K.
Quarkus 1.4. Command mode, HTTP 2, New FaaS framework, Mocking, and more.
+
+
+
Keycloak 10.0.0.
+With Identity Brokering Sync Mode, Client Session Timeout for OpenID Connect / OAuth 2.0
+and much more.
+
+
+
Kogito 0.9.1. This release
+is a bug fix release, but there has also been considerable work spent on
+documentation and code examples. See the link for detais.
+
+
+
+
+
+
+
+
+
+ Paul Robinson
+
+
+ ]]>
+
+ Paul Robinson
+ do-not-reply@jboss.com
+ https://www.jboss.org/people/paul-robinson
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/blogs.html b/blogs.html
new file mode 100644
index 00000000..811e451a
--- /dev/null
+++ b/blogs.html
@@ -0,0 +1,266 @@
+
+
+
Today, we released Quarkus 3.19. Quarkus 3.19 is our first step towards the release of our new 3.20 LTS, as 3.20 LTS will be based on the 3.19 branch. You can consider that the next LTS is feature complete and we encourage you to adopt 3.19 and shar…
is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event. Several talks regarding OpenID Connect and Keycloak have …
The of this blog post series briefly introduced agentic AI and discussed workflow patterns. This post will explore another kind of pattern: agents. The main difference between the two is that workflow patterns are defined programmatically, while age…
HIGHLIGHTS Today marks a significant milestone in the evolution of Keycloak JS with the release of version 26.2.0. This new version represents a shift in how the JavaScript adapter develops and evolves alongside the Keycloak ecosystem. Although this…
The Keycloak homepage has an updated community extensions page! Thanks to , each extension shows off with its GitHub stars. This should provide you with a better overview which extensions are popular with the community. If an extension you use is li…
We released Quarkus 3.18.4, the third (we skipped 3.18.0) maintenance release for our 3.18 release train. We will release Quarkus 3.19 next week. UPDATE To update to Quarkus 3.18, we recommend updating to the latest version of the Quarkus CLI and ru…
Although there is no universally agreed definition of an AI agent, several emerging patterns demonstrate how to coordinate and combine the capabilities of multiple AI services to create AI-infused applications that can accomplish more complex tasks.…
In my consulting work, clients frequently present us with challenging problems that require innovative solutions. Recently, we were tasked with extracting structured metadata from PDF documents through automated analysis. Below, I’ll share a simplif…
We released Quarkus 3.18.3, the second (we skipped 3.18.0) maintenance release for our 3.18 release train. We also released Quarkus 3.19.0.CR1 today. We encourage you to test it and report back as we will branch 3.20 LTS from 3.19. UPDATE To update …
To download the release go to . UPGRADING Before upgrading refer to for a complete list of changes. ALL RESOLVED ISSUES DEPRECATED FEATURES * Drop support for end-of-life versions of Node.js nodejs-connect ENHANCEMENTS * Convert tests to standard mo…
Be sure to read Max Rydahl Andersen’s blog post that introduces the Model Context Protocol servers project which provides a set of MCP servers implemented using Quarkus and Java. Starting with JDBC, filesystem and JavaFX. Don’t miss transcript of Ho…
In WildFly 35 Beta, WildFly Glow has also received a new feature to , this allows feature packs to be grouped into spaces such as an incubating space to reflect the stability of the feature pack and to allow users to select which spaces they want to…
WildFly 35.0.1.Final is now available . I am pleased to announce that the WildFly 35.0.1.Final release is now available for download. The following issues were resolved in 35.0.1: BUGS * [] - NPE in race condition between a thread committing a trans…
To download the release go to . HIGHLIGHTS NEW OPTION IN X.509 AUTHENTICATOR TO ABORT AUTHENTICATION IF CRL IS OUTDATED The X.509 authenticator has a new option x509-cert-auth-crl-abort-if-non-updated (CRL abort if non updated in the Admin Console) …