No, no namespaces....

And I am still pussled on why it does not do it the "right" way.. Currently
I am experimenting putting in io.swagger.annotations BUT they seem to have
no effect on the generated swagger describtion when placed in our backend
models, they are in another bundle, im wondering if the swagger feature
somehow are not able to read the annotations across the bundles, that would
very much explain why its not working..?

On Mon, Dec 4, 2017 at 11:46 AM, Sergey Beryozkin <[email protected]>
wrote:

> Nice,
> Just out of curiosity, what does Swagger set the XML Object's namespace to
> ? Is it initialized ?
>
> Sergey
>
> On 04/12/17 06:03, nino martinez wael wrote:
>
>> Okay so I've looked into this a bit. And turned the problem upside down.
>> Instead of trying to make the cxf swagger feature use jackson, just taking
>> a look at the outcome and play around trying to change it.. Again if there
>> is any way to see what the swagger feature plugin are using runtime to
>> process file with, it would very helpfull..
>>
>> It seems that the swagger feature are partially ignoring my annotations,
>> so picking up @xmlrootelement but partially ignoring the list annotations..
>>
>> @XmlAccessorType(XmlAccessType.FIELD)
>> @XmlRootElement(name = "contacts")
>> public class MinimalContactWrapper {
>>
>>      @XmlElementWrapper(name = "wrap")
>>      @XmlElement(name = "minimalcontact")
>>      private List<MinimalContact> contactList;
>>
>>      public List<MinimalContact> getMinimalContacts() {
>>          return contactList;
>>      }
>>
>>      public void setMinimalContacts(List<MinimalContact>
>> minimalContacts) {
>>          this.contactList = minimalContacts;
>>      }
>>
>> }
>>
>>
>> to
>>
>> @XmlAccessorType(XmlAccessType.FIELD)
>> @XmlRootElement(name ="contacts")
>> public class MinimalContactWrapper {
>>
>>      @XmlElementRef(name ="minimalContact")
>>      @Valid
>> @NotNull
>> @Size(min =1)
>>      private List<MinimalContact>minimalContacts=new ArrayList<>();
>>
>>      public List<MinimalContact> getMinimalContacts() {
>>          return minimalContacts;
>>      }
>>
>>      public void setMinimalContacts(List<MinimalContact>
>> minimalContacts) {
>>          this.minimalContacts = minimalContacts;
>>      }
>>
>> }
>>
>> Made the xml results required equal in the swagger feature to what CXF
>> and enunciate feels it should be... Namely this:
>>
>> <contacts><minimalcontact><dateForExtract>...</dateForExtrac
>> t><indexNumber>...</indexNumber><accountNumber>...
>> </accountNumber><queueNumber>...</queueNumber><personalIdent
>> ificationNumber1>...</personalIdentificationNumber1><
>> firstName1>...</firstName1><lastName1>...</lastName1><person
>> alIdentificationNumber2>...</personalIdentificationNumber2><
>> firstName2>...</firstName2><lastName2>...</lastName2><addres
>> s>...</address><zipCode>...</zipCode><city>...</city><homeP
>> hone>...</homePhone><mobilePhone>...</mobilePhone><id>...</
>> id><campaignId>...</campaignId></minimalcontact></contacts>
>>
>>
>> Instead of something like this:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <contacts>
>> <minimalContacts>
>> <minimalcontact>
>> <campaignId>string</campaignId>
>> <id>0</id>
>> <indexNumber>string</indexNumber>
>> <accountNumber>string</accountNumber>
>> <queueNumber>string</queueNumber>
>> <balance>0</balance>
>> <personalIdentificationNumber1>string</personalIdentificationNumber1>
>> <firstName1>string</firstName1>
>> <lastName1>string</lastName1>
>> <personalIdentificationNumber2>string</personalIdentificationNumber2>
>> <firstName2>string</firstName2>
>> <lastName2>string</lastName2>
>> <address>string</address>
>> <zipCode>string</zipCode>
>> <city>string</city>
>> <homePhone>string</homePhone>
>> <mobilePhone>string</mobilePhone>
>> <dateForExtract>string</dateForExtract>
>> </minimalcontact>
>> </minimalContacts>
>> </contacts>
>>
>>
>>
>>
>> On Thu, Nov 30, 2017 at 1:43 PM, nino martinez wael <
>> [email protected] <mailto:[email protected]>>
>> wrote:
>>
>>     No change without setting swagger2customizer..
>>
>>     I'll let it rest for a day..
>>
>>     On Thu, Nov 30, 2017 at 1:30 PM, nino martinez wael
>>     <[email protected] <mailto:[email protected]>>
>>     wrote:
>>
>>         yup have set skip.default.json.provider.re
>>         <http://skip.default.json.provider.re>gistration..
>>
>>         But no matter what I do it has no effect on what the swagger
>>         feature generates.. Where it's changing the json provider or
>>         removing it all together..
>>
>>         Trying it now without setting swagger2Customizer..
>>
>>
>>         On Thu, Nov 30, 2017 at 1:04 PM, Sergey Beryozkin
>>         <[email protected] <mailto:[email protected]>> wrote:
>>
>>             Just FYI, removing Jettison lib will ensure it's not
>>             auto-installed by CXF, and if it is not possible to remove
>>             then the other option is to set
>>             a "skip.default.json.provider.re
>>             <http://skip.default.json.provider.re>gistration" bus
>> property.
>>
>>             However it's not related to Swagger at all, Jettison if
>>             installed will only affect the way JSON is generated for
>>             service responses
>>
>>             Sergey
>>
>>             On 30/11/17 11:57, nino martinez wael wrote:
>>
>>                 It does not seem to be a jettison problem.. And neither
>>                 an problem with
>>                 jackson versions, I just wiped all jettison and
>>                 jackson(except 2.9.1 )
>>                 versions from my running environment..
>>
>>                 Looking into of it could be something with
>>                 JacksonJaxbJsonProvider vs
>>                 JacksonJsonProvider
>>
>>                 On Thu, Nov 30, 2017 at 12:45 PM, nino martinez wael <
>>                 [email protected]
>>                 <mailto:[email protected]>> wrote:
>>
>>                     IS there somewhere while on runtime where I can
>>                     print current registered
>>                     providers for cxf, I have a feeling that it somehow
>>                     are using jettison for
>>                     json...
>>
>>                     On Thu, Nov 30, 2017 at 12:17 PM, nino martinez wael <
>>                     [email protected]
>>                     <mailto:[email protected]>> wrote:
>>
>>                         Okay I will check into libraries whats on class
>>                         path.. I have the same
>>                         gut feeling that it could be something like that.
>>
>>                         I have enunciate up and working on the side..
>>
>>                         On Thu, Nov 30, 2017 at 11:18 AM, Sergey
>>                         Beryozkin <[email protected]
>>                         <mailto:[email protected]>>
>>
>>                         wrote:
>>
>>                             Yes, the minor Swagger version caused this
>>                             change, what was working
>>                             3.1.x, specifically the serializers
>>                             approach, was not working any longer
>>                             with the new Swagger version, hence this
>> update.
>>
>>                             I honestly do not know why exactly a JAXB
>>                             annotated bean is not
>>                             correctly represented in the
>>                             Swagger-generated #definitions, it's obviously
>>                             something to do with the way Jackson and
>>                             JAXB interacts.
>>                             Perhaps Jackson you register with DOSGI is
>>                             not the same version
>>                             installed by the CXF swagger2 feature,
>>                             perhaps some diff JAXB versions are
>>                             involved, please keep experimenting
>>
>>                             Sergey
>>
>>                             defaultSwagger2Serializers.set
>> JavadocProvider(new
>>                             JavaDocProvider());
>>
>>                                 swagger.setSwagger2Serializers
>> (defaultSwagger2Serializers);
>>
>>                                 I think this could be the same:
>>
>>                                 Swagger2Customizer swagger2Customizer =
>>                                 new Swagger2Customizer();
>>                                 swagger2Customizer.setJavadocProvider(new
>> JavaDocProvider());
>>
>>
>>                                 swagger.setCustomizer(swagger2
>> Customizer);
>>
>>
>>                                 I have setup CXF to use JACKSON
>>                                 (JacksonJaxbJsonProvider)
>>
>>
>>                                 How can I tell swagger to do the same? I
>>                                 think that's the problem..
>>
>>
>>
>>                                 regards Nino
>>
>>
>>
>>
>>                                 On Thu, Nov 30, 2017 at 10:50 AM, nino
>>                                 martinez wael <
>>                                 [email protected]
>>                                 <mailto:[email protected]>>
>>                                 wrote:
>>
>>                                 Im wondering if this could be the problem
>> :
>>
>>
>>                                     https://github.com/swagger-api
>> /swagger-core/issues/960
>>                                     <https://github.com/swagger-ap
>> i/swagger-core/issues/960>
>>
>>                                     On Thu, Nov 30, 2017 at 10:38 AM,
>>                                     nino martinez wael <
>>                                     [email protected]
>>                                     <mailto:[email protected]
>> >>
>>
>>                                     wrote:
>>
>>                                     So I have a bean CXF accepts only
>>                                     this interpretation for my endpoint:
>>
>>
>>                                         {
>>                                                "contactList": [
>>                                                    {
>>                                                        "campaignId": "2",
>>                                                        "id":"",
>>                                                        "indexNumber": "",
>>                                                        "accountNumber":
>>                                         "232",
>>                                                        "queueNumber": "0",
>>                                                        "balance": 0,
>>
>>                     "personalIdentificationNumber1":
>>                                         "string",
>>                                                        "firstName1":
>>                                         "string",
>>                                                        "lastName1":
>>                                         "string",
>>
>>                     "personalIdentificationNumber2":
>>                                         "string",
>>                                                        "firstName2":
>>                                         "string",
>>                                                        "lastName2":
>>                                         "string",
>>                                                        "address":
>> "string",
>>                                                        "zipCode":
>> "string",
>>                                                        "city": "string",
>>                                                        "homePhone":
>> "+4521",
>>                                                        "mobilePhone":
>>                                         "+45122",
>>                                                        "campaing":
>> "string",
>>                                                        "dateForExtract":
>>                                         "string"
>>
>>                                                    }
>>                                                ]
>>                                         }
>>
>>                                         However the swagger feature are
>>                                         generating this as example:
>>
>>                                         {
>>                                              "minimalContacts": [
>>                                                {
>>                                                  "campaignId": "string",
>>                                                  "id": 0,
>>                                                  "indexNumber": "string",
>>                                                  "accountNumber":
>> "string",
>>                                                  "queueNumber": "string",
>>                                                  "balance": 0,
>>
>>               "personalIdentificationNumber1":
>>                                         "string",
>>                                                  "firstName1": "string",
>>                                                  "lastName1": "string",
>>
>>               "personalIdentificationNumber2":
>>                                         "string",
>>                                                  "firstName2": "string",
>>                                                  "lastName2": "string",
>>                                                  "address": "string",
>>                                                  "zipCode": "string",
>>                                                  "city": "string",
>>                                                  "homePhone": "string",
>>                                                  "mobilePhone": "string",
>>                                                  "campaing": "string",
>>                                                  "dateForExtract":
>> "string"
>>                                                }
>>                                              ]
>>                                         }
>>
>>                                         MinimalContactWrapper
>>
>>                                         @XmlAccessorType(XmlAccessType
>> .FIELD)
>>                                         @XmlRootElement(name = "contacts")
>>                                         public class
>> MinimalContactWrapper {
>>
>>                                                @XmlElementWrapper
>>                                                @XmlElementRef
>>                                                @Valid
>>                                                @NotNull
>>                                                @Size(min = 1)
>>                                                private
>>                                         List<MinimalContact>
>>                                         contactList=new ArrayList<>();
>>
>>                                                public
>>                                         List<MinimalContact>
>>                                         getMinimalContacts() {
>>                                                    return contactList;
>>                                                }
>>
>>                                                public void
>>                                         setMinimalContacts(List<Minima
>> lContact>
>>                                         minimalContacts) {
>>                                                    this.contactList =
>>                                         minimalContacts;
>>                                                }
>>
>>
>>                                         MinimalContact
>>
>>                                         @XmlAccessorType(XmlAccessType
>> .PROPERTY)
>>                                         @XmlRootElement(name="minimalc
>> ontact")
>>                                         public class MinimalContact {
>>
>>                                                @NotNull
>>                                                @Size(min=1, max=240)
>>                                                private String campaignId;
>>
>>                                                private Long id;
>>                                                @Size(min=1, max=240)
>>                                                private String indexNumber;
>>                                                @Size(min=1, max=20)
>>                                                @NotNull
>>                                                private String
>> accountNumber;
>>                                                @Size(min=1, max=8)
>>                                                private String queueNumber;
>>
>>
>>                                                private Float balance;
>>
>>                                                @Size(min=0, max=11)
>>                                                private String
>>                                         personalIdentificationNumber1;
>>
>>                                                @Size(min=0, max=55)
>>                                                private String firstName1;
>>
>>                                                @Size(min=0, max=55)
>>                                                private String lastName1;
>>
>>                                                @Size(min=0, max=11)
>>                                                private String
>>                                         personalIdentificationNumber2;
>>
>>                                                private String firstName2;
>>
>>                                                private String lastName2;
>>
>>                                                private String address;
>>
>>                                                private String zipCode;
>>                                                private String city;
>>
>>                                                @NotNull
>>                                                @Size(min=0, max=20)
>>                                                private String homePhone;
>>
>>                                                @NotNull
>>                                                @Size(min=0, max=20)
>>                                                private String mobilePhone;
>>
>>                                                private String campaing;
>>
>>                                                @NotNull
>>                                                private String
>>                                         dateForExtract;
>>
>>
>>
>>
>>
>>
>>                                         --
>>                                         Best regards / Med venlig hilsen
>>                                         Nino Martinez
>>
>>
>>
>>
>>                                     --
>>                                     Best regards / Med venlig hilsen
>>                                     Nino Martinez
>>
>>
>>
>>
>>
>>
>>
>>                         --
>>                         Best regards / Med venlig hilsen
>>                         Nino Martinez
>>
>>
>>
>>
>>                     --
>>                     Best regards / Med venlig hilsen
>>                     Nino Martinez
>>
>>
>>
>>
>>
>>
>>
>>         --         Best regards / Med venlig hilsen
>>         Nino Martinez
>>
>>
>>
>>
>>     --     Best regards / Med venlig hilsen
>>     Nino Martinez
>>
>>
>>
>>
>> --
>> Best regards / Med venlig hilsen
>> Nino Martinez
>>
>


-- 
Best regards / Med venlig hilsen
Nino Martinez

Reply via email to