Hi Nino

So it is a pure OSGI issue now, right ?
Lets ask Christian as well, Christian, can you advise how to overcome this annotations issue ?

Cheers, Sergey
On 06/12/17 11:30, nino martinez wael wrote:
No change after getting the javax.xml.bind.annotation.. I can see I can change how some of the interpretations are done when adding jackson specific json annotations.. But it's still not correct. :(

On Wed, Dec 6, 2017 at 7:07 AM, nino martinez wael <nino.martinez.w...@gmail.com <mailto:nino.martinez.w...@gmail.com>> wrote:

    Okay after adding swagger annotations as an export from my bundle.
    The swagger json are now including whatever I describe in the
    annotations. However the maven bundle plugin keeps removing my
    export for javax.xml.bind.annotation and so I cannot test if this
    also have an impact on swagger ignoring my javax.xml.bind.annotation
    configurations, however it does seem logical.. Digging further.


    regards Nino

    On Tue, Dec 5, 2017 at 8:07 AM, nino martinez wael
    <nino.martinez.w...@gmail.com <mailto:nino.martinez.w...@gmail.com>>
    wrote:

        I've started testing that idea, and it seems to have an impact..
        I will return once I know more!!

        Thanks!

        On Mon, Dec 4, 2017 at 5:08 PM, Sergey Beryozkin
        <sberyoz...@gmail.com <mailto:sberyoz...@gmail.com>> wrote:

            CXF Swagger feature itself is not importing Swagger
            annotations because it does not work with them, I'm not
            sure, may be you need to have your application bundle
            exporting the annotations to make the visible...

            Sergey
            On 04/12/17 15:06, nino martinez wael wrote:

                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
                <sberyoz...@gmail.com <mailto:sberyoz...@gmail.com>
                <mailto:sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>>> 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>...</dateForExtract><indexNumber>...</indexNumber><accountNumber>...</accountNumber><queueNumber>...</queueNumber><personalIdentificationNumber1>...</personalIdentificationNumber1><firstName1>...</firstName1><lastName1>...</lastName1><personalIdentificationNumber2>...</personalIdentificationNumber2><firstName2>...</firstName2><lastName2>...</lastName2><address>...</address><zipCode>...</zipCode><city>...</city><homePhone>...</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
                         <nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>> 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
                              <nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>>
                              wrote:

                                  yup have set
                skip.default.json.provider.re
                <http://skip.default.json.provider.re>
                         <http://skip.default.json.provider.re
                <http://skip.default.json.provider.re>>
                                  <http://skip.default.json.provider.re
                <http://skip.default.json.provider.re>
                         <http://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
                                  <sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>
                <mailto:sberyoz...@gmail.com <mailto:sberyoz...@gmail.com>>
                         <mailto:sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>
                <mailto:sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>>>> 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>
                         <http://skip.default.json.provider.re
                <http://skip.default.json.provider.re>>
<http://skip.default.json.provider.re
                <http://skip.default.json.provider.re>
                         <http://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 <
                nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
<mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>> 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 <
                nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
<mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>> 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
                <sberyoz...@gmail.com <mailto:sberyoz...@gmail.com>
                         <mailto:sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>>
<mailto:sberyoz...@gmail.com <mailto:sberyoz...@gmail.com>

                         <mailto:sberyoz...@gmail.com
                <mailto:sberyoz...@gmail.com>>>>

                                                  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.setJavadocProvider(new
                                                      JavaDocProvider());

swagger.setSwagger2Serializers(defaultSwagger2Serializers);

                                                          I think this
                could be the same:

                                                          Swagger2Customizer
                         swagger2Customizer =
                                                          new
                Swagger2Customizer();
swagger2Customizer.setJavadocProvider(new
                JavaDocProvider());


swagger.setCustomizer(swagger2Customizer);


                                                          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 <
                nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
<mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>>
                                                          wrote:

                                                          Im wondering
                if this could be
                         the problem :


                https://github.com/swagger-api/swagger-core/issues/960
                <https://github.com/swagger-api/swagger-core/issues/960>
<https://github.com/swagger-api/swagger-core/issues/960
                <https://github.com/swagger-api/swagger-core/issues/960>>
<https://github.com/swagger-api/swagger-core/issues/960
                <https://github.com/swagger-api/swagger-core/issues/960>
<https://github.com/swagger-api/swagger-core/issues/960
                <https://github.com/swagger-api/swagger-core/issues/960>>>

                                                              On Thu,
                Nov 30, 2017 at
                         10:38 AM,
                                                              nino
                martinez wael <
                nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>
                <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>
<mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>

                         <mailto:nino.martinez.w...@gmail.com
                <mailto:nino.martinez.w...@gmail.com>>>>

                                                              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<MinimalContact> minimalContacts) {            this.contactList = minimalContacts;
                                                                         }


MinimalContact

@XmlAccessorType(XmlAccessType.PROPERTY) @XmlRootElement(name="minimalcontact")
                                                                  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




-- 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