Hi John,

I work with Paw. We're trying to set either the client or client factory via 
the URI header, because we'd like to add a request interceptor to the client. 
We would like to log error response bodies.

You are right that it was weird to use HTTP_QUERY. Instead we've done the 
following:

.process(exchange -> {
  LOG.error("The client in the registry {}", 
getContext().getRegistry().lookupByName("testClient"));
}
.toD("fhir:update/resource?client=#testClient ").

We've verified that our test client is in the Camel registry by looking it up 
in the registry in the processor immediately before sending to the FHIR 
endpoint.
When we set a breakpoint in the processor, and then break on the next 
invocation of 
https://github.com/apache/camel/blob/789f1b26cf8b5ce7e40741c1236c3e1622c3550d/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java#L52,
 we are seeing the FhirConfiguration.client field be null.


-----Original Message-----
From: John Poth <poth.j...@gmail.com> 
Sent: 26. juni 2019 15:13
To: users@camel.apache.org
Subject: Re: How to set client or clientFactory in the FhirConfiguration object?

Hi Paw, I'm not sure why you're trying to set the custom IGenericClient through 
the Camel header; I'd need more info on your requirements. If you can link to a 
github project or whatnot that'd be great.

As stated, you can set the custom client in your route URI directly [1] 
referencing your bean in your spring registry e.g
.to('fhir://create/resource?client=#customClientBeanName')

You can also set it directly on the component level if you want to use it in 
multiple URIs [2]

HTH,

John.


[1]
https://github.com/apache/camel/blob/b9a3117f19dd19abd2ea8b789c42c3e86fe4c488/components/camel-fhir/camel-fhir-component/src/test/java/org/apache/camel/component/fhir/FhirCustomClientConfigurationIT.java#L67
[2]
https://github.com/apache/camel/blob/b9a3117f19dd19abd2ea8b789c42c3e86fe4c488/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java#L79





On Wed, Jun 26, 2019 at 12:43 PM Paw B Sørensen < 
paw.b.soren...@systematic.com> wrote:

> I still have problem setting my custom client in the 
> FhirConfiguration. I have implemented a custom client TestClient 
> implementing the IGenericClient interface and I annotated the class 
> with @Component. I also implemented a route where I try to set my 
> custom client using the following strategy
>
>         .setHeader(Exchange.HTTP_QUERY, simple("client=#testClient"))
>
> When I debug a test that activates the route I  break in the first 
> line of the createEndpoint method of the FhirComponent and inspect the 
> client variable of the endpoint it is null.
>
> I am running this in a Spring configuration.
>
> Paw B Sørensen
> paw.b.soren...@systematic.com
>
>
> -----Original Message-----
> From: Claus Ibsen <claus.ib...@gmail.com>
> Sent: 25. juni 2019 07:42
> To: users@camel.apache.org
> Subject: Re: How to set client or clientFactory in the 
> FhirConfiguration object?
>
> Hi
>
> I have fixed this for master, eg Camel 3
>
> On Fri, Jun 21, 2019 at 2:20 PM Claus Ibsen <claus.ib...@gmail.com> wrote:
> >
> > And btw you should still be able to configure them as query 
> > parameters, as those @UriParam etc are for documentation purposes.
> >
> > On Fri, Jun 21, 2019 at 2:19 PM Claus Ibsen <claus.ib...@gmail.com>
> wrote:
> > >
> > > Hi
> > >
> > > Ah those 2 are wrong they should be @UriParam also. You are 
> > > welcome to log a JIRA and provide a PR
> > >
> > > On Fri, Jun 21, 2019 at 10:10 AM Paw B Sørensen 
> > > <paw.b.soren...@systematic.com> wrote:
> > > >
> > > > The camel fhir component supports setting several query 
> > > > parameters. In the implementation of FhirConfiguration all of 
> > > > these
> parameters are annotated with @UriParam. Also in the implementation of 
> FhirConfiguration I find the client and clientFactory variables but 
> they are annotated with @Metadata. Can I make my own custom 
> implementation of the client to intercept whenever a response code 4xx 
> is received? And is it possible to set these Metadata values in my camel 
> route?
> > > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to