jhipster / generator-jhipster-micronaut

Micronaut blueprint for JHipster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generation of models with Enums fails

agilob opened this issue · comments

Overview of the issue

If any model contains an enum, the generation of java classes will fail:

The entity MessageType is being updated.

     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
     info Using blueprint generator-jhipster-micronaut for entity-server subgenerator
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: Copying template /home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs failed. [ReferenceError: /home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs:25
    23|  */
    24| public enum <%= enumName %> {
 >> 25| <%_ if (withoutCustomValues) { _%>
    26|     <%= enumValues.map(enumValue => enumValue.name).join(', ') %>
    27| <%_ } else {
    28|     enumValues.forEach((enumWithCustomValue, index) => {

withoutCustomValues is not defined]
    at module.exports.error (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/generator-base.js:1590:15)
    at ejs.renderFile (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/utils.js:256:23)
    at tryHandleCache (/home/agilob/Projects/agileb-jhipster/node_modules/ejs/lib/ejs.js:275:14)
    at Object.exports.renderFile (/home/agilob/Projects/agileb-jhipster/node_modules/ejs/lib/ejs.js:478:10)
    at Object.renderContent (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/utils.js:252:9)
    at module.exports.template (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/generator-base-private.js:769:23)
    at fields.forEach.field (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster-micronaut/generators/entity-server/files.js:409:30)
    at Array.forEach (<anonymous>)
    at module.exports.writeEnumFiles (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster-micronaut/generators/entity-server/files.js:404:25)
    at Object.<anonymous> (/home/agilob/Projects/agileb-jhipster/node_modules/yeoman-generator/lib/index.js:893:25)
Emitted 'error' event at:
    at Immediate.setImmediate (/home/agilob/Projects/agileb-jhipster/node_modules/yeoman-generator/lib/index.js:924:20)
    at runCallback (timers.js:705:18)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
Reproduce the error

jdl file:

entity Message {
    messageType MessageType
}

enum MessageType {
    JOINED,
    LEFT
}

Command:
mhipster import-jdl model.jdl --force

@JasonTypesCodes This is still and issue for me. I think it's broken in jhipster-generator, the top level, not here

events.js:174
throw er; // Unhandled 'error' event
^

Error: Copying template /home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs failed. [ReferenceError: /home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs:25
23|  */
24| public enum <%= enumName %> {
>> 25| <%_ if (withoutCustomValues) { _%>
26|     <%= enumValues.map(enumValue => enumValue.name).join(', ') %>
27| <%_ } else {
28|     enumValues.forEach((enumWithCustomValue, index) => {

withoutCustomValues is not defined]
at module.exports.error (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/generator-base.js:1590:15)
at ejs.renderFile (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/utils.js:256:23)
at tryHandleCache (/home/agilob/Projects/agileb-jhipster/node_modules/ejs/lib/ejs.js:275:14)
at Object.exports.renderFile (/home/agilob/Projects/agileb-jhipster/node_modules/ejs/lib/ejs.js:478:10)
at Object.renderContent (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/utils.js:252:9)
at module.exports.template (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster/generators/generator-base-private.js:769:23)
at fields.forEach.field (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster-micronaut/generators/entity-server/files.js:409:30)
at Array.forEach (<anonymous>)
at module.exports.writeEnumFiles (/home/agilob/Projects/agileb-jhipster/node_modules/generator-jhipster-micronaut/generators/entity-server/files.js:404:25)
at Object.<anonymous> (/home/agilob/Projects/agileb-jhipster/node_modules/yeoman-generator/lib/index.js:893:25)
Emitted 'error' event at:
at Immediate.setImmediate (/home/agilob/Projects/agileb-jhipster/node_modules/yeoman-generator/lib/index.js:924:20)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
at process.topLevelDomainCallback (domain.js:126:23)

Unless you know how to fix it locally and I'm missing something?

@agilob it must be something beyond just using Enums because we have an enum in https://github.com/jhipster/generator-jhipster-micronaut/blob/master/test-integration/samples/mvn-oauth-angular.jdl

It looks like what I did last time was call a different helper method to get Enum information: 3e298c3#diff-24b5ca3f8b4431b2975072136d2a26eaL411

Are there significant differences between your Enums and the ones defined in the test sample above?

Ahh ok. It works now on 0.5.0. I generated project using 0.1.3.

Upgrade to 0.5.0 doesnt work, all it changes is yo.rc and no other file. Havent tried from younger version to 0.5.0. Project regeneration using 0.5.0 failed with some strange npm error like __class_dasdasgdfg_FGdf_gdf.js not found. Class name cannot start with _