We're pumped to announce the official release of JHipster 9.0.0! ๐
Highlights
- Spring Boot 4 support
- React 19 with react-bootstrap (replacing reactstrap)
- Angular 21 with zoneless by default, Vitest support, and signals migration
- Vue with Bootstrap 5 (Bootstrap Vue Next)
- GraalVM native image support
- Java 21 minimum required (dropped Java 17)
- Node 22 minimum required (dropped Node 20)
- Complete TypeScript rewrite of the generator codebase
Thanks to our amazing community for all the feedback during the beta releases!
What's Changed
๐ Spring Boot
- spring-boot: re-add in-memory user credentials to application config (#32282) @mshima
- spring-boot: fix sonar properties (#32253) @mshima
- spring-boot: re-add application-tls to sonar ignored rule (#32235) @mshima
- spring-boot: move oauth2 configuration to secret-samples (#32550) @mshima
- spring-boot: move sensitive data to application-secret-samples.yml (#32218) @mshima
- Add default user and admin credentials to application properties (#32389) @mshima
- fix(kubernetes): generate Helm 3-only apply script and docs (#32494) @yuliuyi717-ux
- kafka: don't start kafka in backend tests (#32388) @mshima
- kafka: split kafka configuration (#32090) @mshima
๐ฅ๏ธ Frontend
- feat(react): upgrade to React 19 and replace reactstrap with react-bootstrap (#32495) @sreeshanth-soma
- [React] Fix duplicate exports (#32642) @qmonmert
- [React] React Bootstrap: remove invalid prop 'navbar' (#32583) @qmonmert
- [React] Upgrade react-router (#32404) @qmonmert
- [React] Remove lodash (#32416) @qmonmert
- [React] Remove redux-mock-store (#32401) @qmonmert
- [React] Remove Loadable (#32398) @qmonmert
- [React] ESLint: Fix no-useless-escape rule (#32331) @qmonmert
- [Vue] 'any' overrides all other types in this union type (#32628) @qmonmert
- [Vue] ESLint 10 (#32368) @qmonmert
- [Vue] Remove numeral dependency (#32439) @qmonmert
- [Vue] Remove flush-promises dependency (#32438) @qmonmert
- [Angular] Bump ESLint 10 (#32582) @qmonmert
- angular: fix UserManagement menu translation (#32622) @mshima
- angular: move resource error handling to the service and replace authorities from UserManagement service (#32616) @mshima
- angular: use entities templates in UserManagement routes (#32597) @mshima
- fix(angular): prevent code injection via JDL pattern in generated TypeScript (#32601) @Mistz1
- [Angular] Use arrow functions directly in templates (#32614) @qmonmert
- [Angular] Fix: Prefer globalThis over window (#32608) @qmonmert
- [Angular] Remove withInterceptorsFromDi (#32609) @qmonmert
- angular: simplify entity service api (#32592) @mshima
- angular: convert filterOptions to signal (#32460) @mshima
- angular: fix resource in error state (#32459) @mshima
- angular: migrate entity list to httpResource based service (#32373) @mshima
- angular: simplify account service (#32360) @mshima
- [Angular] Imports specific components and not all NgbModule (#32443) @qmonmert
- [Angular] Remove unused dependency: @angular/platform-browser-dynamic (#32418) @qmonmert
- [Angular] Remove unused dependency: buffer (#32417) @qmonmert
- [Angular] Remove ChangeDetectorRef, not useful with Signals (#32437) @qmonmert
- [Angular] Remove enableProdMode (#32497) @qmonmert
- client: add getPageNumberFromLinkHeader and parseLinkHeader to common (#31865) @mshima
- client: fix translation when executing entity command (#32314) @mshima
๐งช Cypress
- cypress: fix coverage (#32415) @mshima
- cypress: add type to username and password variables (#32414) @mshima
- cypress: credentials adjusts (#32338) @mshima
- cypress: disable cypressAudit by default (#32312) @mshima
- cypress: replace nested get with find, get always traverses from root (#32600) @mshima
- cypress: enable UserManagement for React and Vue (#32538) @mshima
- cypress: enable tests for UserManagement entity (#32419) @mshima
- Fix: Cypress.env() is deprecated (#32327) @qmonmert
- Cypress: expose CYPRESS_COVERAGE (#32342) @qmonmert
๐พ JDL/Internals/Blueprints
- internal: enable ejs caching and adapt java and angular (#32521) @mshima
- internal: drop BOOTSTRAP_APPLICATION priority (#32390) @mshima
- internal: adjust loading/preparing priorities (#32307) @mshima
- internal: update to yeoman-generator v8 (#32482) @mshima
- graalvm: add spring-boot:graalvm generator and ignore UserManagement cypress test with graalvm enabled (#32567) @mshima
- languages: improve mutations (#32310) @mshima
- spring-cloud: move gatewayRoutes type to spring-cloud (#32313) @mshima
- javascript-simple-application: make typescriptEslint the default (#32311) @mshima
- Remove normalize-path dependency (#32474) @qmonmert
- Simplify printJHipsterLogo to use a single console.log (#32269) @qmonmert
๐ฌ Code Quality
- Fix: @typescript-eslint/consistent-type-imports rule (#32270) @qmonmert
- ESLint: reactivate no-undef rule (#32245) @qmonmert
- Remove ts-ignore unnecessary (#32246) @qmonmert
- Disallow if statements as the only statement in if blocks without else (#32220) @qmonmert
- Prefer .test(โฆ) over .exec(โฆ) (#32239) @qmonmert
- Fix: no-useless-escape rule (#32315) @qmonmert
- Remove unnecessary non-null assertion operator (#32535, #32549) @qmonmert
๐ชถ Maven
๐ Gradle
๐งช Testing & CI
- ci: use setup-default-node-java in issue-check (#32436) @mshima
- ci: allow @types/node v22 (#32236) @mshima
- increase initial samples to 30 (#30170) @mshima
๐ฆ Dependency updates
- Bump transitional dependencies (#32598, #32478, #32394, #32328, #32243) @github-actions[bot]
- Update Spring Boot to v3.5.11 (#32385) @github-actions[bot]
- Update Spring Boot to v4.0.3 (#32386) @github-actions[bot]
- chore(deps): update node.js to v24.14.0 (#32433) @renovate[bot]
- chore(deps): update dependency graalvm-reachability-metadata to v0.3.35 (#32304) @renovate[bot]
- chore(deps): update dependency sonarqube-community-branch-plugin to v26.2.0 (#32488) @renovate[bot]
- Fix: bump cpy-cli from 6.0.0 to 7.0.0 (#32237) @qmonmert
- Fix: bump os-locale from 6.0.2 to 8.0.0 (#32219) @qmonmert
- Remove completion script (#32551) @qmonmert
- Remove overrides @eslint/core in package.json (#32265) @qmonmert
Ready to try it?
npm install -g generator-jhipsterRefer to the upgrade instructions for upgrading existing applications.
Contributors
Thank you to our contributors for this release!