Code genration fails with following Exception
Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate model 'BrowseList'
at io.swagger.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:409)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:721)
at io.swagger.codegen.cmd.Generate.run(Generate.java:290)
at java.lang.Thread.run(java.base@9-internal/Thread.java:804)
Caused by: com.github.jknack.handlebars.HandlebarsException: /typescript-angular/modelGeneric.mustache:18:78: found: '-last', expected: 'no viable alternative at input '{{^-last''
export type {{enumName}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
v 3
git commit which seems to cause trouble: eab9c72a42b65ed2b2bef2bdddf9c6bc9761f8dc
I can't see how my yaml trigger the bug
here's an excerpt
schemas:
BrowseList:
type: object
required:
- page
- pages
- limit
- total
properties:
page:
type: integer
pages:
type: integer
limit:
type: integer
total:
type: integer
Client:
type: object
required:
- company_name
properties:
id:
type: integer
name:
type: string
Clients:
type: object
allOf:
- $ref: '#/components/schemas/BrowseList'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/Client'
I tried to remove all enums from the yaml which made no difference
java -jar swagger-codegen-cli-3.0.0-20180106.033640-15.jar generate -i api.yaml -l typescript-angular -o ./client
git commit which seems to cause trouble: eab9c72a42b65ed2b2bef2bdddf9c6bc9761f8dc
To me it seems the yaml is not the problem. I tried with a stripped down file and the problem persists:
openapi: 3.0.0
servers:
- url: 'http://127.0.0.1:8080/api/v1'
info:
version: 1.0.0
title: Test
securityDefinitions:
BearerAuth:
type: apiKey
in: header
name: BearerAuth
paths:
/users:
get:
responses:
'200':
content:
application/json:
schema:
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/User'
components:
schemas:
User:
type: object
properties:
id:
type: integer
username:
type: string
@canadaduane thanks for reporting the issue.
cc @HugoMario
@canadaduane , right now, we're only focus on java and inflector languages, from next week we're going to start updating templates for other languages.
I think you mean @colorcube ?
@canadaduane sorry I incorrectly tagged you. Please ignore.
Any update on this? Is it a good idea to try to fix this, or is someone currently working on it?
It's always a good idea to try to fix it.
any updates on this issue ?
@LPCmedia , there is an implementation for typescript-angular on codegen 3.0.0, feel free to try it when you have a chance.
I tried the branch @HugoMario but the issue is that none of the security headers are being set.
I'm still getting the same issue with generating Java with v3.
found: '-last', expected: 'no viable alternative at input '{{^-last''
{{{name}}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
@dankling I got that error when I attempted to use swagger-codegen v3 with templates copied from https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/ instead you should use templates copied from https://github.com/swagger-api/swagger-codegen-generators/tree/master/src/main/resources
@buckett template from swagger-codegen-generators produce the same error:
Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate model 'AdvBanner'
at io.swagger.codegen.v3.DefaultGenerator.generateModels(DefaultGenerator.java:405)
at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:719)
at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.github.jknack.handlebars.HandlebarsException: /Users/.../typescript-angular/modelGenericEnums.mustache:6:78: found: '-last', expected: 'no viable alternative at input '{{^-last''
export type {{enumName}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
^
at com.github.jknack.handlebars.internal.HbsErrorReporter.syntaxError(HbsErrorReporter.java:93)
at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:65)
@glebmachine
Grab the template from https://github.com/swagger-api/swagger-codegen-generators/tree/master/src/main/resources/handlebars/-last notation, it prefers @last (among other things).
@bonehead06 Thanks!
use this parameter --template-engine mustache
@plathub thanks but how do you set this parameter when you use swagger-codegen-maven-plugin
hi, @straumat. the -last issue was already solve, can you try with recent releases?
Hi @HugoMario , i tried with
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.13</version>
and i still have the error
"EDIT:"
resolved with
use this parameter
--template-engine mustache
https://github.com/swagger-api/swagger-codegen/issues/7330#issuecomment-450925645
i still have the error
java -jar swagger-codegen-cli-3.0.23.jar generate -i psd2-api_1.3.8-2020-11-18v1.yaml --lang jaxrs-cxf --template-dir .\cxfTemplate3 --output .\generated\cxfTemplate3.0.23
"psd2-api_1.3.8-2020-11-18v1.yaml" from "https://www.berlin-group.org/nextgenpsd2-downloads"
".\cxfTemplate3" is "https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf"
Error:
Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate model 'accountAccess'
at io.swagger.codegen.v3.DefaultGenerator.generateModels(DefaultGenerator.java:451)
at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:779)
at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:378)
at java.lang.Thread.run(Unknown Source)
Caused by: com.github.jknack.handlebars.HandlebarsException: C:/generator/./cxfTemplate3/pojo.mustache:14:28: found: '-last', expected: 'no viable alternative at input '{{^-last''
{ {{#vars}}"{{name}}"{{^-last}}, {{/-last}}{{/vars}}
^
at com.github.jknack.handlebars.internal.HbsErrorReporter.syntaxError(HbsErrorReporter.java:93)
at com.github.jknack.handlebars.internal.antlr.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
at com.github.jknack.handlebars.internal.antlr.Parser.notifyErrorListeners(Parser.java:544)
at com.github.jknack.handlebars.internal.antlr.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310)
at com.github.jknack.handlebars.internal.HbsErrorStrategy.reportNoViableAlternative(HbsErrorStrategy.java:166)
at com.github.jknack.handlebars.internal.antlr.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136)
at com.github.jknack.handlebars.internal.HbsParser.elseBlock(HbsParser.java:982)
at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:681)
at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:337)
at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:673)
at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:337)
at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:673)
at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:337)
at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
at com.github.jknack.handlebars.internal.HbsParser.template(HbsParser.java:165)
at com.github.jknack.handlebars.internal.HbsParserFactory$1.parse(HbsParserFactory.java:86)
at com.github.jknack.handlebars.cache.NullTemplateCache.get(NullTemplateCache.java:54)
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:513)
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:490)
at com.github.jknack.handlebars.internal.Partial.merge(Partial.java:214)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
at com.github.jknack.handlebars.Options.apply(Options.java:538)
at com.github.jknack.handlebars.Options.fn(Options.java:433)
at com.github.jknack.handlebars.helper.UnlessHelper.apply(UnlessHelper.java:50)
at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
at com.github.jknack.handlebars.Options.apply(Options.java:538)
at com.github.jknack.handlebars.Options.fn(Options.java:445)
at com.github.jknack.handlebars.helper.WithHelper.apply(WithHelper.java:58)
at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
at com.github.jknack.handlebars.Options.apply(Options.java:538)
at com.github.jknack.handlebars.helper.EachHelper.apply(EachHelper.java:73)
at com.github.jknack.handlebars.internal.Block.merge(Block.java:211)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.TemplateList.merge(TemplateList.java:95)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:130)
at com.github.jknack.handlebars.internal.BaseTemplate.apply(BaseTemplate.java:118)
at com.github.jknack.handlebars.internal.ForwardingTemplate.apply(ForwardingTemplate.java:72)
at io.swagger.codegen.v3.templates.HandlebarTemplateEngine.getRendered(HandlebarTemplateEngine.java:26)
at io.swagger.codegen.v3.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:795)
at io.swagger.codegen.v3.DefaultGenerator.generateModels(DefaultGenerator.java:438)
... 3 more
Most helpful comment
use this parameter
--template-engine mustache