Hi I logged a ticket to not forget about this, to see if we can improve it (and detect that the class is IoC'ed by Spring / Spring-Boot and then avoid the 2x IoC https://issues.apache.org/jira/browse/CAMEL-12389
On Tue, Mar 20, 2018 at 4:15 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Yeah for SB then it tend to not do that, see the couple of spring-boot > testing examples here > https://github.com/camelinaction/camelinaction2/tree/master/chapter9 > > Your Camel routes tend to be in their own classes, that you would run > "in production". > > What you do with the embedded inlined route is more for testing Camel > internally or some other kind of testing. > > The issue you hit with CamelTestSupport is possible to fix, you can > log a JIRA. I havent had found the time to fix it yet. > And CamelTestSpringSupport could potentially be improved for running > with Spring Boot too. > > > > On Tue, Mar 20, 2018 at 3:59 PM, Wilson MacGyver <wmacgy...@gmail.com> wrote: >> Oh really? So would you suggest I just don’t extend any base class at all? >> >> On Tue, Mar 20, 2018 at 10:53 AM Claus Ibsen <claus.ib...@gmail.com> wrote: >> >>> On Tue, Mar 20, 2018 at 3:21 PM, Wilson MacGyver <wmacgy...@gmail.com> >>> 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.ib...@gmail.com> >>> 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 <wmacgy...@gmail.com> >>> >> 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.ib...@gmail.com> >>> >> 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 < >>> wmacgy...@gmail.com> >>> >> >> 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 >>> > > > > -- > 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