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