Thanks for the resources. But coming back to my scraper example, the scraper is trying to produce messages for other downstream systems. How should I set up the route then?
Claus Ibsen-2 wrote: > > On Wed, Mar 10, 2010 at 8:24 AM, DaHoopster <[email protected]> > wrote: >> >> I find this concept rather unintuitive. I'd perceive it as >> from (producer) to (consumer). Why is it from (consumer) to (producer) ? >> > > I suggest to read chapter 1 in the Camel in Action book to get > familiar with the Camel concepts and integration concepts in general. > http://www.manning.com/ibsen > > produce = create a new message to be send to another source > consume = receive an existing message from another source > > > > There is also some info here, but its a bit old > http://camel.apache.org/book-getting-started.html > > And the EIP book is also a good source of concepts > http://www.enterpriseintegrationpatterns.com/toc.html > > > >> Thanks, >> >> >> Claus Ibsen-2 wrote: >>> >>> from = consumer >>> to = producer >>> >>> >>> >>> On Wed, Mar 10, 2010 at 8:13 AM, DaHoopster <[email protected]> >>> wrote: >>>> >>>> Hi, >>>> >>>> Maybe I am not getting the concept correctly. I am trying to write a >>>> web >>>> scraper that scrapes a page and generate some messages. I think I need >>>> to >>>> write a Producer, correct me if I am wrong. >>>> >>>> So I went ahead and wrote a custom component along with an endpoint and >>>> a >>>> producer. But for some reason the producer was not created by the >>>> endpoint. >>>> Could you see what's wrong with my code? >>>> >>>> Many thanks. >>>> >>>> Code: >>>> >>>> ================ Main.java =================================== >>>> this.camelContext.addComponent("scraper", scrapingComponent); >>>> this.camelContext.addRoutes(new RouteBuilder() >>>> { >>>> �...@override >>>> public void configure() throws Exception >>>> { >>>> from("scraper:" + ScrapingEndpoint.URI). >>>> process(new Processor() >>>> { >>>> public void process(final Exchange exchange) throws >>>> Exception >>>> { >>>> System.out.println("Yay !!!"); >>>> } >>>> }); >>>> } >>>> }); >>>> this.camelContext.start(); >>>> =============================================================== >>>> >>>> ================ ScrapingComponent.java ========================== >>>> public class ScrapingComponent extends DefaultComponent >>>> { >>>> >>>> �...@override >>>> protected Endpoint createEndpoint(final String uri, final String >>>> remaining, final Map<String, Object> parameters) throws Exception >>>> { >>>> return new ScrapingEndpoint(uri, ScrapingComponent.this); >>>> } >>>> } >>>> ============================================================== >>>> >>>> ================ ScrapingEndpoint.java ============================= >>>> public class ScrapingEndpoint extends DefaultEndpoint >>>> { >>>> public static final String URI = "scraper:hello"; >>>> >>>> public BondDeskScrapingEndpoint(final String endpointUri, final >>>> Component component) >>>> { >>>> super(endpointUri, component); >>>> } >>>> >>>> public ScrapingEndpoint(final String endpointUri) >>>> { >>>> super(endpointUri); >>>> } >>>> >>>> public Producer createProducer() throws Exception >>>> { >>>> return new ScrapingProducer(this); >>>> } >>>> >>>> public Consumer createConsumer(final Processor processor) throws >>>> Exception >>>> { >>>> return new ScrapingConsumer(this, processor); >>>> } >>>> >>>> public boolean isSingleton() >>>> { >>>> return true; >>>> } >>>> >>>> �...@override >>>> protected String createEndpointUri() >>>> { >>>> return URI; >>>> } >>>> >>>> �...@override >>>> public boolean isLenientProperties() >>>> { >>>> return true; >>>> } >>>> } >>>> =============================================================== >>>> >>>> ================= ScrapingProducer ================================ >>>> public class ScrapingProducer extends DefaultProducer >>>> { >>>> private MyScraper scraper; >>>> >>>> public BondDeskScrapingProducer(Endpoint endpoint) >>>> { >>>> super(endpoint); >>>> this.scaper = new MyScraper(); >>>> System.out.println("=== creating producer ==="); >>>> } >>>> >>>> public void process(final Exchange exchange) throws Exception >>>> { >>>> System.out.println("=== processing ==="); >>>> final List<Item> items = bondDeskScraper.scrape(); >>>> exchange.getIn().setBody(items.get(0).toString()); >>>> } >>>> ============================================================== >>>> >>>> =================== ScrapingConsumer.java ========================= >>>> public class ScrapingConsumer extends DefaultConsumer >>>> { >>>> public ScrapingConsumer(Endpoint endpoint, Processor processor) >>>> { >>>> super(endpoint, processor); >>>> } >>>> } >>>> ============================================================== >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/Writing-customer-component%2C-endpoint-and-producer-tp27846283p27846283.html >>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>> >>>> >>> >>> >>> >>> -- >>> Claus Ibsen >>> Apache Camel Committer >>> >>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> Open Source Integration: http://fusesource.com >>> Blog: http://davsclaus.blogspot.com/ >>> Twitter: http://twitter.com/davsclaus >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/Writing-customer-component%2C-endpoint-and-producer-tp27846283p27846351.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Author of Camel in Action: http://www.manning.com/ibsen/ > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > > -- View this message in context: http://old.nabble.com/Writing-customer-component%2C-endpoint-and-producer-tp27846283p27846442.html Sent from the Camel - Users mailing list archive at Nabble.com.
