But my test throws an exception, and created a*MOCK_OUTPUT_ERROR_DESTINATION_URI * Mock instead of the name used "mock:fail" or is there some reason I have to use "mock:fail" instead of my endpoint?
On Wed, Sep 24, 2008 at 10:34 PM, Mick Knutson <[EMAIL PROTECTED]>wrote: > But my test throws an exception, and created > > On Wed, Sep 24, 2008 at 8:23 PM, Willem Jiang <[EMAIL PROTECTED]>wrote: > >> Can you take a look at the below unit test, the message is only sent to >> the "mock:fail" endpoint when the exception is thrown. >> >> >> Willem Jiang wrote: >> >>> Hi >>> >>> You don't need to call the exchange.isFailed(), it just check if the >>> exchange's fault message or exception is set. >>> Here is a Unit test of DeadLetterChannel[1], which shows what you want. >>> Please check it out. >>> >>> [1] >>> https://svn.apache.org/repos/asf/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java >>> >>> Willem >>> >>> Mick Knutson wrote: >>> >>>> To give some background here is my process: >>>> >>>> *public void process(Exchange exchange) >>>> throws Exception { >>>> log.info("process ChangeRequestInputTransformer request"); >>>> >>>> String body = (String) exchange.getIn().getBody(); >>>> >>>> // Get a Map of Items from the input message >>>> JSONObject jsonIn = new JSONObject(body); >>>> >>>> // validate input message, route to verifyErrorEndpoint if there >>>> are >>>> errors. >>>> String customerId = jsonIn.getString(Constants.CUSTOMER_ID); >>>> String type = jsonIn.getString(Constants.CHANGEREQUST_TYPE); >>>> String quota = jsonIn.getString(Constants.QUOTA); >>>> >>>> ChangeRequest changeRequest = null; >>>> >>>> try { >>>> >>>> if (type.equalsIgnoreCase(Constants.PROVISION)) { >>>> log.info("***** PROVISION *****"); >>>> changeRequest = createProvisionChangeRequest(customerId, >>>> quota); // can throw Exception >>>> >>>> exchange.getOut().setHeader(Constants.REQUEST_DESTINATION, >>>> Constants.REQUEST_OUTPUT_CHANNEL); >>>> >>>> } else if (type.equalsIgnoreCase(Constants.DEPROVISION)) { >>>> log.info("DEPROVISION"); >>>> } else { >>>> log.error("Invalid Change Request"); >>>> >>>> exchange.getOut().setHeader(Constants.REQUEST_DESTINATION, >>>> Constants.REQUEST_INPUT_ERROR_CHANNEL); >>>> } >>>> >>>> String jsonOut = toJSON(body); >>>> >>>> >>>> exchange.getOut().setMessageId(changeRequest.getChangeRequestId() >>>> + ""); >>>> exchange.getOut().setHeader(Constants.CORRELATION_ID, >>>> changeRequest.getChangeRequestId()); >>>> exchange.getOut().setHeader(Constants.TIMEOUT, new >>>> Integer(5000)); // fixme: 5 seconds.... >>>> exchange.getOut().setHeader(Constants.CUSTOMER_ID, >>>> changeRequest.getCustomerId()); >>>> >>>> exchange.getOut().setBody(jsonOut); >>>> >>>> //todo need to rout to CR_INPUT_ERROR_CHANNEL if there is an >>>> error. >>>> >>>> log.info("*********************************"); >>>> } catch (Exception e) { >>>> exchange.isFailed(); >>>> throw new Exception("Error creating Change Request"); >>>> } >>>> } >>>> * >>>> >>>> Now, I get an exception with >>>> *exchange.getOut().setMessageId(changeRequest.getChangeRequestId() >>>> + ""); *but my mock still gets the expected number of messages. >>>> >>>> so I need to understand how to stop the current message, and redirect >>>> this >>>> to an error channel instead. >>>> >>>> >>>> >>>> >>>> On Tue, Sep 23, 2008 at 1:50 PM, Mick Knutson <[EMAIL PROTECTED] >>>> >wrote: >>>> >>>> >>>> >>>>> I have input messages that I am trying to process, and when there is an >>>>> error, I want to create a new exceptionMessage and put it onto an >>>>> inputErrorChannel . >>>>> >>>>> >>>>> >>>>> -- >>>>> --- >>>>> Thank You… >>>>> >>>>> Mick Knutson >>>>> BASE Logic, inc. >>>>> (415) 354-4215 >>>>> >>>>> Website: http://baselogic.com >>>>> Blog: http://baselogic.com/blog >>>>> BLiNC Magazine: http://blincmagazine.com >>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>> DJ Mick: http://djmick.com >>>>> MySpace: http://myspace.com/mickknutson >>>>> Vacation Rental: http://tahoe.baselogic.com >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> >>> >>> >>> >> > > > -- > --- > Thank You… > > Mick Knutson > BASE Logic, inc. > (415) 354-4215 > > Website: http://baselogic.com > Blog: http://baselogic.com/blog > BLiNC Magazine: http://blincmagazine.com > Linked IN: http://linkedin.com/in/mickknutson > DJ Mick: http://djmick.com > MySpace: http://myspace.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > > -- --- Thank You… Mick Knutson BASE Logic, inc. (415) 354-4215 Website: http://baselogic.com Blog: http://baselogic.com/blog BLiNC Magazine: http://blincmagazine.com Linked IN: http://linkedin.com/in/mickknutson DJ Mick: http://djmick.com MySpace: http://myspace.com/mickknutson Vacation Rental: http://tahoe.baselogic.com