Thanks a lot for your detailed answers. After reading the documents of Camel, the materials were not enough for me to grab the whole picture. I have to read some of the source code.
I found out in DefaultEndpoint class: public int hashCode() { return endpointUri.hashCode() * 37 + 1; } What is this supposed to mean? I also felt this mail list seemed not very active. Camel is NOT popular? On 8/3/07, James Strachan <[EMAIL PROTECTED]> wrote: > > On 8/3/07, mat wang <[EMAIL PROTECTED]> wrote: > > Why A Producer extends Processor but A Consumer NOT? > > Great question :) > > So when you create a producer, you just want to pass message exchanges > into it - so you can treat a producer just like any kind of Processor > object and just call process(). > > When you create a consumer though, the consumer by default is an event > driven consumer > http://activemq.apache.org/camel/event-driven-consumer.html > > this means that the endpoint decides how and when to invoke your code > when a message is received - typically in a background thread > asynchronously. So for a consumer, you provide your own Processor to > handle the messages and pass that into the createConsumer method > > http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/Endpoint.html#createProducer() > > The returned Consumer object is then mostly just to be able to stop it > when you are done (rather like the JMS MessageConsumer interface). > > Finally you could also create a Polling Consumer where you pull > message exchanges out of the PollingConsumer interface > http://activemq.apache.org/camel/polling-consumer.html > > > > What is a > > Processor.process method (a place for implement own business logic?) > Thanks. > > Yes, a Processor.process() typically processes a message exchange in > some way - this could involve sending it over some protocol (such as > the Producer implementations) or it could involve doing some routing, > or invoking business logic. > > Incidentally to invoke business logic, I'd recommend loosly coupling > your business logic to Camel message exchanges. e.g. > > http://activemq.apache.org/camel/bean-integration.html > > that way your business logic doesn't have to implement any Camel > specific APIs; though it may use some annotations to help describe the > binding. > > -- > James > ------- > http://macstrac.blogspot.com/ >