git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: @PropertyInject vs @Value in camel-spring-boot


On Tue, Mar 20, 2018 at 3:21 PM, Wilson MacGyver <wmacgyver@xxxxxxxxx> wrote:
> Oh I didn’t know that there was CamelSpringTestSupport! Thank you! Will try
> it
>

Just a mind that CamelSpringTestSupport was created many years ago
before Spring Boot,
and thus is more suitable for old fashioned Spring apps such as WARs etc.


> On Tue, Mar 20, 2018 at 6:09 AM Claus Ibsen <claus.ibsen@xxxxxxxxx> wrote:
>
>> Hi
>>
>> Okay so the issue is that you have a spring-boot application and you
>> extend CamelTestSupport which performs some initialization that happen
>> to do bean post processing as well, but under the assumption it was
>> not running with Spring (we can likely improve this in
>> CamelTestSupport).
>>
>> But you should either extend CamelSpringTestSupport or not extend a
>> base class at all.
>>
>> On Sun, Mar 18, 2018 at 7:37 PM, Wilson MacGyver <wmacgyver@xxxxxxxxx>
>> wrote:
>> > Hi
>> >
>> > I'm using camel 2.21.0, spring boot 1.5.10
>> >
>> > I put together strip down version of what I'm seeing at
>> >
>> > https://github.com/wmacgyver/camel-spring-boot-property-bug
>> >
>> >
>> >
>> > Running ExampleRouteTest method testWithContent
>> >
>> > @Value("${fromUser}")
>> > private String fromUser;
>> >
>> > @Value("${toUser}")
>> > private String toUser;
>> >
>> > works correctly.
>> >
>> > Both have values from applciation.properties
>> >
>> >
>> >
>> .to("smtp://localhost?from={{fromUser}}&to={{toUser}}&subject=Test+Done");
>> >
>> > Does not.
>> >
>> >
>> > You get
>> >
>> > org.apache.camel.FailedToCreateRouteException: Failed to create route
>> > route1 at: >>>
>> To[smtp://localhost?from={{fromUser}}&to={{toUser}}&subject=Test+Done]
>> > <<< in route: Route(route1)[[From[direct:startRoute]] ->
>> > [SetBody[simple{S... because of Property with key [fromUser] not found
>> > in properties from text:
>> > smtp://localhost?from={{fromUser}}&to={{toUser}}&subject=Test+Done
>> >
>> > ...
>> > Caused by: java.lang.IllegalArgumentException: Property with key
>> > [fromUser] not found in properties from text:
>> > smtp://localhost?from={{fromUser}}&to={{toUser}}&subject=Test+Done
>> >         at
>> org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:270)
>> >         at
>> org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:156)
>> >         at
>> org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:115)
>> >         at
>> org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:99)
>> >         at
>> org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:62)
>> >         at
>> org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:235)
>> >         at
>> org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:178)
>> >         at
>> org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2550)
>> >         at
>> org.apache.camel.model.ProcessorDefinitionHelper.resolvePropertyPlaceholders(ProcessorDefinitionHelper.java:735)
>> >         at
>> org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:537)
>> >         at
>> org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:523)
>> >         at
>> org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:239)
>> >         at
>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1300)
>> >
>> >
>> >
>> >
>> > Thanks
>> >
>> >
>> > On Sun, Mar 18, 2018 at 4:49 AM, Claus Ibsen <claus.ibsen@xxxxxxxxx>
>> wrote:
>> >
>> >> Hi
>> >>
>> >> Can you post the stacktrace, and can you tell a bit about where you
>> >> put that @ProjectInject.
>> >> And what version of camel and SB are you using. And have you tried
>> >> with a newer version
>> >>
>> >> On Sat, Mar 17, 2018 at 6:03 AM, Wilson MacGyver <wmacgyver@xxxxxxxxx>
>> >> wrote:
>> >> > Hi there,
>> >> >
>> >> > I'm using camel-spring-boot
>> >> >
>> >> > I add
>> >> >
>> >> > hello = world in my application.properties
>> >> >
>> >> > I notice if I use
>> >> >
>> >> > @PropertyInject("hello")
>> >> > private String hello
>> >> >
>> >> > I get
>> >> >
>> >> >  Property with key not found in properties from text
>> >> >
>> >> > but if I use
>> >> >
>> >> > @Value("${hello}")
>> >> >
>> >> > it works.
>> >> >
>> >> > this surprise me, since I was under the impression that per doc, camel
>> >> uses
>> >> > spring to resolve all the properties if you use camel-spring-boot. but
>> >> yet
>> >> > somehow spring can find the value from applicaiton.properties, but
>> camel
>> >> > can not?
>> >> >
>> >> > am I missing something?
>> >> >
>> >> > --
>> >> > Omnem crede diem tibi diluxisse supremum.
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> http://davsclaus.com @davsclaus
>> >> Camel in Action 2: https://www.manning.com/ibsen2
>> >>
>> >
>> >
>> >
>> > --
>> > Omnem crede diem tibi diluxisse supremum.
>>
>>
>>
>> --
>> 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



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-camel-users/msg03166.html on line 248
Call Stack
#TimeMemoryFunctionLocation
10.0008372800{main}( ).../msg03166.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-camel-users/msg03166.html on line 248
Call Stack
#TimeMemoryFunctionLocation
10.0008372800{main}( ).../msg03166.html:0