Hi again, as written before, the provided scanner does not work (for me) using different bundles / classpathes and multiple applications.
Because of this I implemented yesterday the some wrapping of it myself. The implementation tries to identify ever JAX-RS resource (using service property filter) and its application (using object class and target filter with respect of the JAX-RS resource application select). After that it generates a map. The key consists of the "base path" (the path of the application) -- so we can support as many applications as provided. The value consists of the classes that implement the JAX-RS resource. This map is used to fill the OpenAPI JAX-RS reader. The generated OpenAPI can be used to generate the JSON reply. But I don't want to rely on a special message body writer and the knowledge if the implementation serialize null references etc. (the Swagger UI does not work with every JSON serializer). So, I added a method that converts the "OpenAPI" into a "Map<String,Object>" that can be used by the most JSON serializers and generate a working result for the Swagger UI. The current snapshot can be found here: https://github.com/maggu2810/playground-osgi/tree/128d162ff8aa1a73337b00f712fcc5ffe0b1b869/bundles/jaxrs-oapi-gen/src/main/java/de/maggu2810/playground/osgi/jaxrs/oapi/gen/impl Best regards, Markus Am Sa., 23. Nov. 2019 um 13:29 Uhr schrieb Oliver Schweitzer <oschweit...@me.com>: > > Hi Markus, > > I can't argue about that behavior, because the original code isn't mine. > > Take a look at > https://github.com/swagger-api/swagger-core/blob/d17f81c7e7ba99157ec7b3ab324a16372885416c/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/resources/BaseOpenApiResource.java#L72 > - that's where the serialization code you linked to is originally from. > > In the version I supplied as pull request, see > https://github.com/osx2000/aries-jax-rs-whiteboard/blob/master/integrations/openapi/openapi-resource/src/main/java/org/apache/aries/jax/rs/openapi/OpenApiResource.java > the code duplication from the Swagger BaseOpenApiResource is replaced by > inheritance > > Best regards, > > Oliver > > -----Original Message----- > From: Markus Rathgeb <maggu2...@gmail.com> > Sent: 23 November 2019 11:59 > To: user@aries.apache.org > Subject: Re: Jax-RS Whiteboard and OpenAPI > > Hi Oliver, > > there is another thing I don't understand: > Why you do not run into the following "problem" I ran with your code: > > https://github.com/osx2000/finmath-service/blob/master/bundles/service/src/main/java/de/osx2000/finmath/service/OpenApiResource.java#L125 > > If a "json" reply is generated you stringify the object already and place the > JSON string representation of the object as entity in the response. > As media type JSON is chosen... > > For me the message body writer for the media type JSON is picked up by JAX-RS > to encode the response's entity. The entity object (a string that already is > a valid JSON string) is then again stringified as JSON... > > Why is this not been the cause for your message body writer? >