Hi Sergey,
I think we might have that as an option, though if Camel simply
returns what the resource method generates, why have it pass through
Camel at all? Perhaps I don't fully understand the use case.

I think it's quite easy to mix purely JAX-RS implemented resources and
Camel implemented ones.

Sergey and Jens, if you think we should improve on this, can you
please create a JIRA issue and describe a brief use case where this
would be a good addition to Camel CXFRS component.

thanks & keep riding :)

zoran

On Tue, Nov 20, 2018 at 6:31 PM Sergey Beryozkin <sberyoz...@gmail.com> wrote:
>
> As far as I recall, a corresponding CXF filter is a blocking one and
> returns a JAX-RS Response. May be the CamelCXF RS code needs to be tweaked
> a bit to check if JAX-RS Response is already available before continuing
> with the route flow...
>
> Cheers, Sergey
>
>
> On Tue, Nov 20, 2018 at 5:20 PM #S-SmixDev <smix...@dzbank.de> wrote:
>
> > Hi Zoran,
> >
> > yeah, I suspected that might be the way it's supposed to work, but the
> > problem here of course is that I don't actually have a ResourceImpl of my
> > real service, only an interface, and therefore performInvocation doesn't
> > work for me unless I write a Dummy implementation, too.
> >
> > Cheers,
> > Jens
> >
> > [image: Inactive hide details for "Zoran Regvart" ---20.11.2018
> > 17:28:53---Hi Jens, from the little exploration I did I think you 
> > need]"Zoran
> > Regvart" ---20.11.2018 17:28:53---Hi Jens, from the little exploration I
> > did I think you need to set
> >
> > Von: "Zoran Regvart" <zo...@regvart.com>
> > An: users@camel.apache.org,
> > Datum: 20.11.2018 17:28
> > Betreff: Re: Camel CXFRS and Swagger/OpenAPI Feature
> > ------------------------------
> >
> >
> > Hi Jens,
> > from the little exploration I did I think you need to set
> > `performInvocation` to `true`: the way OpenAPI support in CXF works is
> > by registering a resource that will generate the OpenAPI
> > specification, and that JAX-RS resource class[1] has an `getOpenApi`
> > method.
> >
> > So your routes need to look something like this:
> >
> > from("cxfrs://
> > http://localhost:8080/api?features=#openApi&resourceClasses=...&performInvocation=true
> > ")
> > .toD("direct:${header.operationName}");
> >
> > from("direct:getOpenApi").log("Fetching OpenAPI specification");
> >
> > The `log` here is just in place of a dummy processor so that the route
> > has a `from` and a `to`.
> >
> > The way I came to think of it is that the resource classes give the
> > REST API shape, and the implementation is provided by Camel route,
> > which is kinda difficult to grasp since the most natural thing would
> > be to write the implementation within the resource method.
> >
> > zoran
> >
> > [1]
> > https://github.com/swagger-api/swagger-core/blob/master/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/resources/OpenApiResource.java#L28
> > On Mon, Nov 19, 2018 at 2:03 PM #S-SmixDev <smix...@dzbank.de> wrote:
> > >
> > >
> > > Hi Camel Riders,
> > >
> > > I'm trying to integrate a Camel-CXFRS endpoint with Swagger UI using the
> > > Swagger/OpenAPI Feature.
> > >
> > > This works fine with a "pure" CXF endpoint, no Camel involved.
> > >
> > > When using Camel-CXFRS, however, I can't make it work properly without
> > > extra implementation work in the Camel route.
> > >
> > > Using runAsFilter=false a call to
> > > http://localhost:8080/services/myCamelService/openapi.json
> > > results in a call of the Camel route with an operation "getOpenApi"
> > >
> > > http://localhost:8080/services/myCamelServive/api-docs?url=openapi.json
> > > results in call of the Camel route with an operation "getResource"
> > >
> > > Using runAsFilter=true the situation improves marginally:
> > > http://localhost:8080/services/myCamelService/openapi.json
> > > still results in a call of the Camel route with an operation "getOpenApi"
> > >
> > > http://localhost:8080/services/myCamelServive/api-docs?url=openapi.json
> > > at least now shows the Swagger UI page frame but still fails to load the
> > > actual service description since it again calls the Camel route with the
> > > "getOpenApi" operation.
> > >
> > > As far as I can see, calling the API description endpoints should not
> > > involve the Camel route at all, and this "getOpenApi" call should instead
> > > happen on the internal service resource.
> > >
> > > Has anyone successfully set this up just using the CXF feature out of the
> > > box? Is this even possible?
> > >
> > > Cheers,
> > > Jens
> > > ___________________________________________________________________
> > >
> > > DZ BANK AG
> > > Deutsche Zentral-Genossenschaftsbank, Frankfurt am Main
> > > Platz der Republik, 60325 Frankfurt am Main
> > > Deutschland/Germany
> > >
> > > https://www.dzbank.de
> > > mailto:m...@dzbank.de <m...@dzbank.de>, T +49 69 7447 01, F +49 69 7447
> > 1685
> > >
> > > https://twitter.com/dzbank
> > >
> > > Vorstand/Board of Directors: Wolfgang Kirsch (Vorsitzender/Chief
> > Executive Officer),
> > > Uwe Berghaus, Dr. Christian Brauckmann, Ulrike Brouzi, Wolfgang Köhler,
> > > Dr. Cornelius Riese, Michael Speth, Thomas Ullrich
> > >
> > > Generalbevollmächtigter/General Executive Manager: Uwe Fröhlich
> > >
> > > Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Henning
> > Deneke-Jöhrens
> > > Sitz/Registered Office: Stadt Frankfurt am Main, Amtsgericht Frankfurt
> > am Main
> > > Handelsregister/Register of Companies: HRB 45651.
> > >
> > > ___________________________________________________________________
> > >
> > > Die mit dieser E-Mail-Kommunikation erhobenen personenbezogenen Daten
> > > werden ausschließlich zu diesem Zweck bzw. zur Bearbeitung Ihres
> > Anliegens weiterverarbeitet.
> > > Weitere Informationen zum Datenschutz finden Sie unter
> > https://www.dzbank.de/datenschutzhinweise
> > >
> > > The personal data collected by this e-mail communication
> > > are processed exclusively for this purpose or to process your request.
> > > Further information on data protection can be found at
> > https://www.dzbank.com/dataprotection
> >
> >
> >
> > --
> > Zoran Regvart
> >
> > *DZ BANK AG*
> > Deutsche Zentral-Genossenschaftsbank, Frankfurt am Main
> > Platz der Republik, 60325 Frankfurt am Main
> > Deutschland/Germany
> >
> > https://www.dzbank.de
> > mailto:m...@dzbank.de <m...@dzbank.de>, T +49 69 7447 01, F +49 69 7447
> > 1685
> >
> > https://twitter.com/dzbank <https://www.twitter.com/dzbank>
> >
> > Vorstand/Board of Directors: Wolfgang Kirsch (Vorsitzender/Chief Executive
> > Officer),
> > Uwe Berghaus, Dr. Christian Brauckmann, Ulrike Brouzi, Wolfgang Köhler,
> > Dr. Cornelius Riese, Michael Speth, Thomas Ullrich
> >
> > Generalbevollmächtigter/General Executive Manager: Uwe Fröhlich
> >
> > Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Henning
> > Deneke-Jöhrens
> > Sitz/Registered Office: Stadt Frankfurt am Main, Amtsgericht Frankfurt am
> > Main
> > Handelsregister/Register of Companies: HRB 45651.
> >
> > ___________________________________________________________________
> >
> > Die mit dieser E-Mail-Kommunikation erhobenen personenbezogenen Daten
> > werden ausschließlich zu diesem Zweck bzw. zur Bearbeitung Ihres Anliegens
> > weiterverarbeitet.
> > Weitere Informationen zum Datenschutz finden Sie unter
> > https://www.dzbank.de/datenschutzhinweise
> >
> > The personal data collected by this e-mail communication
> > are processed exclusively for this purpose or to process your request.
> > Further information on data protection can be found at
> > https://www.dzbank.com/dataprotection
> >



-- 
Zoran Regvart

Reply via email to