identical to v7.3.3
## What's new:
- Added support for strings in annotations (thanks to @mshima!)
## Bug fixes:
- Fixed error when enums had blob in their name
- Added the generator-jhipster- prefix to blueprints that don't have one
- Enforced the
authenticationType
is alwaysuaa
when theapplicationType
isuaa
## Bug fixes:
- Set the default values for the
serviceDiscoveryType
option toeureka
. - Options having
*
orall
as entity list are now correctly parsed.
- JDL:
- Support for quoted string values. It should be the new norm in v8, and unquoted string values removed in the next major version.
- The
blueprints
keyword is now available, it expects a list of blueprint names. - Commas are optional for enums (it was the case for fields, relationships, etc. before).
- Fixed bug when parsing a JDL content with no entity
- The failing cases happened when parsing applications without entities, and it failed because we wanted to export no entities.
## What's new
- JDL:
- Options like
dto
orservice
can now be declared inside applications, with no change in the syntax.
- Options like
- The
.yo-rc.json
file generation can now be skipped (by passingskipYoRcGeneration
to the JDL importer, thanks to @mshima). - There won't be any thrown error if a JDL content contains an unknown option value. Instead, a message will be displayed (thanks to @SudharakaP).
- When not generating entity files (in the .jhipster folder), JHipster Core won't generate the .jhipster folder if didn't already exist (thanks to @mshima).
- Exported JSON files are now formatted as JHipster does (thanks to @mshima).
Authority
is now allowed as a special relationship source/destination, just likeUser
(thanks to @xetys for this feature!)- It's also a JHipster-managed entity.
- Added the
ZonedDateTime
andByteBuffer
field types for Cassandra (thanks @SudharakaP for taking this issue and making this happen!) - Added the
couchbase
as application option value forsearchEngine
## Bug fixes
- Importing a JDL file now takes into account existing
.yo-rc.json
files- For instance, if an existing application has the
skipUserManagement
option set, then this will be taken into account when reading entities/relationships. - A previous workaround consisted in exporting, modifying and finally re-importing a single JDL file.
- For instance, if an existing application has the
## Breaking changes
- API:
- Replaced the
MonolithJDLApplication
, and other concrete classes related to JDL applications by the JDLApplication class.- Check this commit for more details.
- Kept the previous API instead of the new one as the new API didn't really solve the "bloated API problem" (nothing changes if you didn't change your code).
- Replaced the
## What's new
- JDL:
- Allowed integers & decimal when using annotations, and also for constants (thanks to @murdos for the request!).
- Disallowed apps with non-SQL DB types and with the hibernate cache enabled (thanks to @Falydoor for the report!).
- Added the
embedded
option (thanks to @tchlyah for the feature!)
- Neo4j has been added as a new database type! (thanks to @atomfrede for this feature!)
## Bug fixes
- Set the
enableHibernateCache
to false when having non-SQL dbs (thanks to @Falydoor for the report!).
## What's new:
- JDL:
- The
min
andmax
field validations now take decimal values (thanks to @ruddell for reporting this one):entity MyEntity { rate Double min(0.42) }
- Constants also allow decimal values:
MIN = 0.42 entity MyEntity { rate Double min(MIN) }
- The
## Bug fixes:
- When exporting an application to a JDL file, the following attributes weren't quoted in the JSON file:
jwtSecretKey
,rememberMeKey
andchangelogDate
. That caused the import of such a JDL file to fail because of "illegal" characters being present. Now, these options are quoted when an application is exported to a JDL file.
- Disallowed underscores in application base names where the application is either a microservice or a UAA app.
-
When having a relationship like this:
relationship OneToOne { A to B with jpaDerivedIdentifier, C to D }
The parsing system didn't know if the comma was separating the relationship from A to B or the relationship option list.
The comma is supposed to separate both, but a restriction has been made in this case: a comma without a new line has to separate relationship options.
- Issue: From the generator: #10824
- Authorized some relationships from & to the User entity:
- This is in the "bug fix" section as the JDL was way too permissive and let some invalid relationships pass.
- For Many-to-One cases:
- if the User entity has the injected field without the skipUserMgt option set, it should fail
- For Many-to-Many cases:
- if there is an unidirectional relationship to the User, it should not fail as this is a valid case
## What's new:
- Improved error message when having a unidirectional Many-to-Many relationship
- Now tells the injected fields in the source & destination entities for better pinpointing.
- Added the ValidatedJDLObject, which performs validations to entities, relationships, etc.
- The regular JDLObject doesn't do them anymore.
- Also added the ValidatedJDLOptions class
- It has the same behavior as the ValidatedJDLOptions.
- JDL export:
- Exporting to JDL no longer validates the JDL
- However, reimporting it can causes failures if the exported JDL has no longer supported values.
- Fixed JPADerivedIdentifier option:
- The issue was that the exported JSON files for both entities of a relationship had the option
- The correct way was just to have the option in the owner side of the relationship
- During the JDL export, if the
rememberMeKey
option exists in the .yo-rc.json file, then the export failed.- The fix consists in ignoring it, just like the
jwtSecretKey
app option.
- The fix consists in ignoring it, just like the
- JDLImporter:
- Previously, it was a class that could be instantiated from either JDL files or string, and a configuration object.
- Now, in order to create a JDL importer, one must use createImporterFromContent or createImporterFromFiles.
- JDLLinter:
- Previously, it was a class that could be instantiated from JDL files.
- Now, in order to create a JDL linter, one must use createLinterFromContent or createLinterFromFiles.
- This adds the possibility to lint inline JDL
- JDL(entity, field, enum, etc.):
- Removed validity check methods and moved them to the BusinessErrorChecker or their own validators.
- BinaryOptions:
- Removed the
pager
value from thepagination
option.- That was already removed from the generator when moving from bootstrap v3 to v4.
- Removed the
- Introduced new API, which will be the future API (for v7)
- Used by doing
require('jhipster-core').PACKAGE
- The packages are as follows:
- jdl: concerns the JDL (conversion, export, import, objects, linting, etc.)
- jhipster: concerns JHipster as a whole (reserved keywords, application types, etc.)
- json: concerns JSON-file handling (export)
- Will be deprecated and remove if and when JHipster goes full JDL-centric
- Used by doing
- Passing a path to the
clientRootFolder
is now possible - Custom enum values are now possible:
enum Language {
FRENCH (frenchy),
ICELANDIC (viking)
}
- Having a field's name starting with
all...
(likeallowMultiple
) works again- This was fixed by removing the
all
keyword from the parsing system and relying on the existing matchers to notice if the JDL file contains the "all" keyword - Related issue: #389
- This was fixed by removing the
- Added missing many-to-many side when needed
- Related issue: #352
- This snippet didn't work before as it broke the fluent methods:
relationship ManyToMany { A{b) to B }
- Fixed parsing the jpaDerivedIdentifier option
- Related issue #388
- [BinaryOptions] Replaced
SEARCH_ENGINE
withSEARCH
- Changed the way commenting works:
- Comments must appear before annotations, always
- Added
redis
andcaffeine
forcacheProvider
(thanks to @Shaolans and @murdos) - Custom annotations have been implemented (thanks to @yelhouti)
- For entities, relationships and fields
- Added
jwtSecretKey
to the JDL - Added option
readonly
to declare an entity as read only (@murdos) - Exporting a JDL to a specific file is now possible
- Parsing a JDL as a string is possible (thanks to @deepu105)
- Fixed detection of changed entities when custom attribute in json file (thanks to @murdos)
- Unset
cacheProvider
option when the application type isreactive
- Made the
reactive
option available
- Fixed multi-line JDL comment generation (thanks to @yelhouti for the report!)
- Fixed checkNoSQLModeling with multi applications (thanks to @clement26695!)
- Improved and fixed the JDL export, which now exports single & multi apps with their entities (thanks to @Shaolans)
- The entity's
changelogDate
is now preserved when re-generating the same entity, which doesn't result in an entity rewrite when reimporting (thanks to @kaidohallik)
- Added the JDL linter rules to the API
- Added the JDL linter available to the API
note: v4.0.1 is the same
vuejs
has been added as a valid client option
- Removed methods
#addEntity
and#excludeEntity
from JDLUnaryOption & JDLBinaryOption classes.- In favor of the
#addEntityName
and#excludeEntityName
methods that take strings instead of entities.
- In favor of the
- Having
no
as DB type is now allowed for any app (thanks to @jsm174 for notifying, and @ruddell & @cbornet for the help). - Additionally, having
no
as DB type automatically sets thedevDatabaseType
&prodDatabaseType
values tono
(thanks @jsm174 from reporting it). - Linting: added the 'collapsible relationships" check
- For blueprints: when a JSON entity file has custom attributes, the JDL import subgen now just merges the old content with the new one
- The
UUID
type is now available for all the DB types! (thanks to @murdos)
- Parsing regexp with slashes involved now works again (jhipster/generator-jhipster#9750)
- Added new option
memcached
to cache providers (thanks to @Hawkurane), - Added
RelationshipOptions
to the API, - Linting: added the 'unused enums' rule
- Relationship options are now correctly exported (notably: the
jpaDerivedIdentifier
option) - Application base names can now have underscores (thanks to @Shaolans)
- This changelog file :)
- Removed Rancher from the JDL
- Removed
istioRoute
istio
is now a boolean- Improved error message for relationships between applications
Duration
has been added as type (thanks to @massimosiani)
- Nothing
Released on: 2019-03-03
- Made selecting DTOs without services not throw an error (thanks @ruddell)
- Supported relations when an application uses Couchbase as DB (thanks @tchlyah)
- Sonar reports are configured (thanks @jdubois)
- An application's baseName can now have an underscore in the JDL (thanks @Shaolans)
As a side note, the linter has been added, but will only be available in v3.7.0.
Released on: 2019-02-14
- Nothing
- Fixed invalid
otherEntityRelationshipName
generated for the destination entity of a relationship (thanks @pvliss)
Released on: 2019-02-09
- Merged the
lint
branch intomaster
, but didn't make it available yet
- Fixed regression with generation of
otherEntityRelationshipName
(thanks @pvliss)
Released on: 2019-01-29
- Nothing
- Allowed relationships from the User entity if
skipUserManagement
is set (thanks @murdos) - Always set the
otherEntityRelationshipName
to the appropriate value (thanks @pvliss)
Released on: 2019-01-25
- Warned rather than throw an exception when a reserved word is used as field name (thanks @murdos)
- Added the
jpaDerivedIdentifier
option to relationships
- Fixed issue with
unique
validation forLocalDate
Released on: 2018-11-12
- Nothing
- Fixed the exporting of a JDL Deployment (didn't display the
deployment
keyword before)
Released on: 2018-11-11
- Set defaults for
devDBType
andprodDBType
- Fixed validation for
ingressdomain
(thanks @deepu105)
Released on: 2018-11-11
devDatabaseType
&prodDatabaseType
can now be set to default values depending on thedatabaseType
prop
- The
serviceDiscoveryType
negative default value is nowfalse
Released on: 2018-11-11
- Nothing
- Prevent duplicate entities from being exported (thanks @deepu105)
Released on: 2018-11-11
- Nothing
- Fixed exported deployments when importing a JDL file, now exports an empty list if there's no deployment to export (thanks @deepu105)
Released on: 2018-11-11
- Nothing
- Fixed what the JDL importer returns when there is no deployment (now returns an empty list for deployments if there's nothing) (thanks @deepu105)
Released on: 2018-11-06
- More DB validations are included (combinations, forbidden values)
- Specifying a blueprint is now possible
- Issue #8760 from the generator should be fixed, thanks to @pascalgrimaud
Released on: 2018-11-06
- The brand new
deployment
syntax has been added to the JDL by @deepu105!
- Nothing
Released on: 2018-11-03
- Application options are now validated
- Options
dtoSuffix
&entitySuffix
have been added (thanks to @mselerin!) - Just using
angular
as clientFramework fallbacks to usingangularX
(thanks to @jdubois for reporting it!)
- JDL exporting now doesn't fail when there is no relationship (thanks to @pascalgrimaud!)
skipUserManagement
isn't forced in UAA & gateway apps anymore (thanks to @jsm174!)- Package names can now have underscores (thanks to @jsm174!)
- Importing a JDL file where entities are generated in different apps will cause the process to fail.
Released on: 2018-10-07
- This project now uses NPM and not yarn
- Added the
unique
constraint - Used terser as minificator & uglifier (previously uglifly-webpack-plugin)
- Quotes are now escaped properly in regex validations
- JWT and rememberMe keys are no longer set in the project (done in the generator)
- If an app is already generated, it keeps its values and only replaces the changed values
- 0 doesn't make the JDL constraint fail any longer
- Various fixes for JDL app generation:
- Made eureka the default choice for MS & GW apps
- Made eureka the default choice for uaa apps
- uaa apps now have false skipUserManagement
- The project's installation on windows works now
Released on: 2018-09-15
- Added support for MongoDB relationships (thanks to @ivangsa)
- Fixed language regex (thanks to @ttoommbb)
Released on: 2018-09-15
- Nothing
- The
rememberMe
and JWT keys are updated to match the generator's: they're not set anymore, the generator does that for us
Released on: 2018-09-02
- NPM is now the new default for
clientPackageManager
(previously, yarn)
- Fixed DTO & service configuration in the JDL (#251), thanks @ruddell for finding it and filling an issue!
Released on: 2018-09-02
- Added package-lock.json file
- Nothing
Released on: 2018-09-02
- Clarified error messages
- The JDLRelationship object now accepts strings for entity names (from & to)
- Now sets a default clientRootFolder value when in a microservice app (#252)
- (a basic) Prettier support has been added to the project
- AbstractJDLOption methods - #addEntity & #ecludeEntity will be replaced by: #addEntityName & #excludeEntityName
- The JDLRelationship will only accept string for entity names (from & to)
Released on: 2018-07-17
- The migration to chevrotain is finally over! Which gets us more control over the parsing system (and more tests, coverage, speed when developing features)
- Annotations for options are implemented:
@dto(mapstruct)
@service(serviceClass)
entity A
- The
jhipsterVersion
property for applications is deprecated and will be removed in the next major release - When exporting entities to JDL, the table name is now only exported as long as it's not the same as the entity name
- 242, required relationships from/to the same entity are forbidden
- 243, constrained the use of
no
as database type (from the generator) - 244,
TextBlob
only haverequired
as constraint (from the generator) - API:
- The JDLObject now has loop methods over entities, applications etc.
Huge thanks to @bd82 for his tremendous help proposing the migration and getting it done!
- 239, Fixed error message and type check per application
- When declaring arrays in the JDL (for languages, testFrameworks, etc.), braces didn't really work, this is fixed, the two possible syntaxes are
languages []
orlanguages [fr, en]
. braces are mandatory - Creating directories failed on windows
- Added the entities for each exported JDL application
- @ruddell fixed the relationships when not selecting injected fields
Released on: 2018-06-13
- Injected fields are now optional, so having this:
relationship XYZ { A to B }
is possible from now on. - App options in the JDL
testFrameworks
,langauges
don't require braces around anymore (optional)
oauth2
is now available as anauthenticationType
option for the app generation
Released on: 2018-06-11
- Nothing
searchEngine
is now set tofalse
when excluding from the JDL (thanks to @Tcharl for this!)
Released on: 2018-05-31
JDLObject#hasOption
has been removed (not used in the project)JDLReader::parse
has been removed (in favor of::parseFromConfigurationObject
- The entity and application exporters now return relevant information:
- Application exporter: the exported application list
- Entity exporter: the exported entity list
- Set is no longer exposed (future removal will happen, maybe)
- The class JDLImporter has been developed so as not to use the other ones (DocumentParser, JHipsterEntityExporter, etc.) directly. It has been created to be used in the import-jdl subgen, without having to use other classes.
- MySQL 8 reserved keywords are in
- The business checks are now done in a special class (BusinessErrorChecker) instead of doing them just after the JDL is parsed
- Fixed #60
- Application generation has been fixed
- Fixed the
skipUserManagement
option - The
databaseType
is no longer needed in the DocumentParser (caused an issue when parsing applications) - Having DTOs without services is now forbidden
- Using
no
as database type now works - Different jpaMetamodelFiltering values are now detected when checking for entity equality
As a side note, there are no longer react reserved keywords.