Mind that camel-http / camel-http-starter is deprecated, you should
use camel-http4 or something else.

On Thu, Oct 12, 2017 at 2:40 PM, Mark Nuttall <mknutt...@gmail.com> wrote:
> Sorry. I guess my reply was not clear.  I wasn't saying it need changes. I
> was just saying (and i tried it about a year ago) is that Spring Boot needs
> a little config to expose things "correctly" when using that component.
> That article was the first one i came too when i googled. :(  Maybe it
> doesn't anymore? :)
>
> I was only trying to figure out what might possible cause the issue he was
> seeing. And also to give him a work around.
>
> On Thu, Oct 12, 2017 at 8:27 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
>> On Thu, Oct 12, 2017 at 2:20 PM, Mark Nuttall <mknutt...@gmail.com> wrote:
>> > well that does sound like an issue with the camel-http-starter component
>> > and would be something for the maintainers.
>> > If i remember rightly, using that component with spring boot requires
>> some
>> > minor coding additions to get things to work (i.e. like this -
>> > http://www.frommknecht.net/spring-boot-meets-apache-camel/). It might be
>> > related.
>> >
>> > So, what I suggest is just use Spring Controllers instead. It is VERY
>> easy
>> > to do and just use the producerTemplate to send thing to camel routes.
>> This
>> > is what I do.
>> >
>>
>> No camel-http-starter does not need any changes.
>> That link your provided is to some old article from 2014.
>>
>> Sure spring-mvc is a good web library and you can easily integrate
>> with with Camel with producer templates or other means.
>>
>> > On Thu, Oct 12, 2017 at 4:12 AM, Florian Posch <
>> > florian.po...@performgroup.com> wrote:
>> >
>> >> Hi,
>> >>
>> >> Thanks for your swift reply.
>> >>
>> >> As mentioned in the Stackoverflow question, it is not a matter of
>> generic
>> >> objects like Map<> or Object because injection of a domain-specific
>> class
>> >> doesn't work either.
>> >>
>> >> Finally, I've found out what could potentially cause the problem: For my
>> >> case, it depends on whether camel-http-starter is on the classpath or
>> not.
>> >> If I remove that dependency MyInflightRepositorys' data field gets
>> >> injected, otherwise not. Not sure if this makes any sense in the given
>> >> sample but that changes our application's behaviour...
>> >>
>> >> See https://github.com/DoNuT1985/camel-dependency-sample
>> >>
>> >> I hope this helps.
>> >>
>> >> Kind regards,
>> >> Florian
>> >>
>> >>
>> >>
>> >>
>> >> Florian Posch // Software Engineer
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> T   -
>> >>
>> >> RunningBall Sports Information GmbH
>> >> M  -
>> >>
>> >> Plabutscher Straße 63
>> >> F   -
>> >>
>> >> 8051 Graz
>> >> E   florian.po...@performgroup.com
>> >>
>> >> Austria
>> >> Skype rb.fposch
>> >>
>> >>
>> >>
>> >>
>> >> W www.performgroup.com
>> >>
>> >>
>> >> -----Ursprüngliche Nachricht-----
>> >> Von: Mark Nuttall [mailto:mknutt...@gmail.com]
>> >> Gesendet: Mittwoch, 11. Oktober 2017 13:45
>> >> An: users@camel.apache.org
>> >> Betreff: Re: Camel Spring Boot: Bean initialization skipped in
>> >> auto-configuration
>> >>
>> >> I looked at stacktrace and your code here. I agree with the comment
>> about
>> >> the Map. The same thing can happen with strings. I am not sure what the
>> map
>> >> does but you might be able to that in Spring properties. If not, either
>> >> create a class to hold the map and make that class the Bean or provide a
>> >> name to the Bean and make sure you use that when you inject the bean.
>> >>
>> >> I think we are going to need a copy of code that does not work. I use
>> >> Spring Boot and Camel pretty extensively and while it is not without
>> >> issues, it was usually due to me doing something probably I shouldnt
>> have
>> >> or there was a better way. :)
>> >>
>> >> Also, as suggested, use constructor injection. The version of Boot you
>> are
>> >> using makes it very easy - all you need is a single constructor on your
>> >> managed object (to include the RouteBuilder). And if you use Lombok, it
>> is
>> >> even easier.
>> >>
>> >> Mark
>> >>
>> >> On Wed, Oct 11, 2017 at 4:41 AM, Florian Posch <
>> >> florian.po...@performgroup.com> wrote:
>> >>
>> >> > Hi,
>> >> >
>> >> > I'm using Camel 2.19.3 and Spring Boot 1.5.7 including the
>> >> > corresponding Camel starter for my application and am having some
>> >> > issues with a custom InflightRepository getting set up.
>> >> >
>> >> > It is defined as Spring @Component and should get applied to the
>> >> > context by auto-configuration but the problem is that the bean isn't
>> >> > properly initialized
>> >> >
>> >> >         @Component
>> >> >         public class MyInflightRepository extends
>> >> > DefaultInflightRepository {
>> >> >
>> >> >                 @Autowired
>> >> >                 private MyInjectedBean bean;
>> >> >
>> >> >                 // ...
>> >> >         }
>> >> >
>> >> >
>> >> > The repository gets applied to the CamelContext as well as it is
>> >> > available but to me it looks as if premature bean access in
>> >> > CamelAutoConfiguration.afterPropertiesSet
>> >> > causes the bean not being initialiized properly (so @Autowired members
>> >> > remain null but Spring starts up without an error). As far as I
>> >> > understood this happens because Application.getBeansByType(...) gets
>> >> > called before all property resolvers are initialized.
>> >> >
>> >> > I was able to work around that by manually initializing my
>> >> > InflightRepository and setting it in a CamelConfiguration bean but for
>> >> > my taste this is a bit dangerous to scan for custom beans that might
>> >> > not get initialized properly during startup.
>> >> >
>> >> > There's a more detailed snippet given on my Stackoverflow post:
>> >> > https://stackoverflow.com/questions/46680985/spring-
>> >> > boot-camel-autowiring-issues-in-camel-components
>> >> >
>> >> > Any question, please let me know...
>> >> >
>> >> > Kind regards,
>> >> > Florian
>> >> >
>> >> > Florian Posch // Software Engineer
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > T   -
>> >> >
>> >> > RunningBall Sports Information GmbH
>> >> > M  -
>> >> >
>> >> > Plabutscher Straße 63
>> >> > F   -
>> >> >
>> >> > 8051 Graz
>> >> > E   florian.po...@performgroup.com
>> >> >
>> >> > Austria
>> >> > Skype rb.fposch
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > W www.performgroup.com
>> >> >
>> >> >
>> >> >
>> >>
>> >> ____________________________________________________________
>> ____________
>> >>
>> >> CONFIDENTIALITY - This email and any files transmitted with it, are
>> >> confidential, may be legally privileged and are intended solely for the
>> use
>> >> of the individual or entity to whom they are addressed. If this has
>> come to
>> >> you in error, you must not copy, distribute, disclose or use any of the
>> >> information it contains. Please notify the sender immediately and delete
>> >> them from your system.
>> >>
>> >> SECURITY - Please be aware that communication by email, by its very
>> >> nature, is not 100% secure and by communicating with Perform Group by
>> email
>> >> you consent to us monitoring and reading any such correspondence.
>> >>
>> >> VIRUSES - Although this email message has been scanned for the presence
>> of
>> >> computer viruses, the sender accepts no liability for any damage
>> sustained
>> >> as a result of a computer virus and it is the recipient’s
>> responsibility to
>> >> ensure that email is virus free.
>> >>
>> >> AUTHORITY - Any views or opinions expressed in this email are solely
>> those
>> >> of the sender and do not necessarily represent those of Perform Group.
>> >>
>> >> COPYRIGHT - Copyright of this email and any attachments belongs to
>> Perform
>> >> Group, Companies House Registration number 6324278.
>> >>
>>
>>
>>
>> --
>> 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