Thanks Willem - will take a look.

BTW, do you have any hints as to whether it's possible to reconfigure a
tracer "on-the-fly" as I described in an earlier post?

/Bengt


2010/11/1 Willem Jiang <willem.ji...@gmail.com>

> On 10/30/10 4:49 PM, Bengt Rodehav wrote:
>
>> I have a similar situation but I'm not using Spring - I use Java DSL and
>> iPOJO.
>>
>> I have my own tracer that I can publish as an OSGi service using iPOJO. I
>> want to accomplish the following. My other services shall have optional
>> service dependencies to my tracer. This means that if my custom tracer is
>> available then it should be used, otherwise the default tracer should be
>> used.
>>
>> However, just publishing my tracer and requiring it in my other components
>> does not automatically cause Camel to use it. I have to to the following:
>>
>>         getContext().addInterceptStrategy(mTracer);
>>
>>         getContext().setTracing(false);
>>
>>
>> In other words I explicitly set my tracer to be used, I then disable
>> tracing
>> since the first line seems to automatically enable tracing. I then use JMX
>> to enable/disable tracing. I was hoping the above two lines were
>> unnecessary
>> and that merely the existence of a tracer should cause Camel to use it. Is
>> that a Spring specific functionality? I was hoping that any way that an
>> OSGi
>> service was published/consumed would work?
>>
>
> If you take a look at the code of
> AbstractCamelContextFactoryBean.afterPropertiesSet() which is used to set
> the camel context from the sprint configuration, you will find it calls the
> same code.
>
> If you don't want to write upper code twice, you may need to write a
> Factory to create the camel context instance in the same way and look up the
> tracer from the OSGi service registry.
>
> [1]
> https://svn.apache.org/repos/asf/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
>
>
>
>> /Bengt
>>
>> 2010/10/30 Richard Kettelerij<richardkettele...@gmail.com>
>>
>>
>>> You don't have to add a Tracer to your Spring context yourself. Camel
>>> adds
>>> one automatically if you have a CamelContext declared in Spring. Also
>>> your
>>> don't have to do anything with the "trace" option in your Spring context.
>>>
>>> I find that the easiest way to enable/disable tracing in production is
>>> through JMX. Just navigate to the CamelContext MBean and modify the
>>> "tracing" attribute. Additionally you can determine what should be traced
>>> by
>>> modifying a few options in the Tracer MBean.
>>>
>>> -----
>>> Richard Kettelerij,
>>> http://github.com/rkettelerij
>>> --
>>> View this message in context:
>>>
>>> http://camel.465427.n5.nabble.com/Enabling-tracing-in-production-tp3243013p3243143.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>
> --
> Willem
> ----------------------------------
> FuseSource
> Web: http://www.fusesource.com
> Blog:    http://willemjiang.blogspot.com (English)
>         http://jnn.javaeye.com (Chinese)
> Twitter: willemjiang
>

Reply via email to