mulesoft-labs / raml-for-jax-rs

This project is all about two way transformation of JAX-RS-annotated Java code to RAML API description and back.
Other
295 stars 181 forks source link

json schemas copied using a non-UTF-8 Character Set #208

Open kumako opened 7 years ago

kumako commented 7 years ago

Hi,

I noticed that the maven plugin rewrites json schemas files in the jvm default encoding while jsonschema2pojo always parse them in UTF-8.

That causes an exception when UTF-8 is not the default charset and we have a non-ascii character in our file :

Caused by: java.lang.IllegalArgumentException: Error parsing document: file:/C:/Users/xxxx/AppData/Local/Temp/1477387522232-0/schema-881152396 at org.jsonschema2pojo.ContentResolver.resolve(ContentResolver.java:67) at org.jsonschema2pojo.SchemaStore.create(SchemaStore.java:47) at org.jsonschema2pojo.SchemaStore.create(SchemaStore.java:94) at org.jsonschema2pojo.rules.SchemaRule.apply(SchemaRule.java:59) at org.jsonschema2pojo.rules.SchemaRule.apply(SchemaRule.java:30) at org.jsonschema2pojo.SchemaMapper.generate(SchemaMapper.java:88) at org.raml.jaxrs.codegen.core.Context.generateClassFromJsonSchema(Context.java:425) at org.raml.jaxrs.codegen.core.Types.getSchemaClass(Types.java:234) at org.raml.jaxrs.codegen.core.Types.getResponseEntityClass(Types.java:153) at org.raml.jaxrs.codegen.core.Generator.createResponseBuilderInResourceMethodReturnType(Generator.java:358) at org.raml.jaxrs.codegen.core.Generator.createResponseBuilderInResourceMethodReturnType(Generator.java:271) at org.raml.jaxrs.codegen.core.Generator.createResourceMethodReturnType(Generator.java:249) at org.raml.jaxrs.codegen.core.Generator.getResourceMethodReturnType(Generator.java:221) at org.raml.jaxrs.codegen.core.Generator.addResourceMethod(Generator.java:166) at org.raml.jaxrs.codegen.core.AbstractGenerator.addResourceMethods(AbstractGenerator.java:724) at org.raml.jaxrs.codegen.core.AbstractGenerator.addResourceMethods(AbstractGenerator.java:287) at org.raml.jaxrs.codegen.core.Generator.createResourceInterface(Generator.java:128) at org.raml.jaxrs.codegen.core.AbstractGenerator.run(AbstractGenerator.java:224) at org.raml.jaxrs.codegen.core.AbstractGenerator.run(AbstractGenerator.java:780) at org.raml.jaxrs.codegen.core.GeneratorProxy.run(GeneratorProxy.java:40) at org.raml.jaxrs.codegen.maven.RamlJaxrsCodegenMojo.execute(RamlJaxrsCodegenMojo.java:268) ... 22 more

Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 middle byte 0x74 at [Source: file:/C:/Users/xxxx/AppData/Local/Temp/1477387522232-0/schema-881152396; line: 5, column: 34] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1419) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:508) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidOther(UTF8StreamJsonParser.java:3223) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidOther(UTF8StreamJsonParser.java:3230) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._decodeUtf8_3fast(UTF8StreamJsonParser.java:3036) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString2(UTF8StreamJsonParser.java:2216) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString(UTF8StreamJsonParser.java:2165) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:279) at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:224) at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:62) at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:14) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066) at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:1875) at org.jsonschema2pojo.ContentResolver.resolve(ContentResolver.java:65) ... 42 more

jstoiko commented 7 years ago

@kumako: this should be fixed in the new version. It's still a release candidate and we're actively fine tuning it so please let me know if you have time to try it and confirm that it works as intended. If not, we should definitely address this before releasing.

jpbelang commented 6 years ago

Make sure it's in 2.x