JHipster release 2.21.0

JHipster gives you Spring Boot + AngularJS working together in one handy Yeoman generator.

What’s new

Great new feature: the user management page

Our coolest new feature is the new user management page. In the admin menu, you now have a new entry, and this new page allows you to see the current users, manage their settings, change their login, enable/disable them, and manage their authorities.

This was requested by a lot of people, we hope you will enjoy it!

Some improvements will need to be added in the future, like:

  • Adding and deleting users
  • Managing authorities (they are currently hard-coded)

WARNING, breaking change 1: table names are now in SNAKE_CASE

The SQL table names generated now follows the default Spring naming strategy i.e, SNAKE_CASE instead of all UPPERCASE names. We have also made SpringNamingStrategy as the Hibernate default.

This means more readable table and relationship names. The change applies to foreign key names and many-to-many mapping tables as well.

For Oracle users we have some workaround to overcome the table name length restrictions (what, your database can’t handle more than 30 characters?). We now shorten the mapping table names and add the suffix _mapping for long entity names.

For existing users you may want to take note of those tips:

  • For new entities without any relationship to your old entities this should work without any issue
  • For your existing entities you may want to change the foreign key column names to the new snake case name
  • If your new entity has a relationship to an old entity you may want to manually update the old entity table name in the entity Java file, Liquibase changelog and of course in the database.

WARNING, breaking change 2: Spring Security’s authorizations

For historic reasons we had a mix of authorities and roles when naming Spring Security’s authorities. For example, in the back-end we mostly had authorities (and sometimes roles), and in the front-end we had roles.

This lead to many questions and confusion, of course. And this needed to be refactored for our cool new user management page.

So from now on, authorities are called authorities everywhere.

If you have some existing code, you need to be careful in migrating your AngularJS routers, as their state used to have a data.roles attribute which is now data.authorities. This would lead to have some unsecured AngularJS views, but remember those are just the views: the REST endpoints are still correct (and compiled!), so the worst use-case is just a user who could see an unsecured page, but could not access any data (so the page will be empty).

Roadmap

In October we hope to be able to move to Spring Boot 1.3, which is close to being stable. The new dev tools should be a great addition to what we currently provide, so we are expecting a much enhanced development workflow.

Closed tickets

We had nearly 50 tickets closed in this release, so a lot of bugs have been fixed, and many smaller enhancements have been added.

As always, you can check all the closed tickets here.

How to upgrade

Update your version of JHipster with:

npm update -g generator-jhipster

And then you can update your project when you run again

yo jhipster

You can also update your entities by running again the entity sub-generator, for example if your entity is named Foo

yo jhipster:entity Foo

Help and bugs

If you find any issue with this release, don’t hesitate to: