View Javadoc

1   /*
2    * $Id: ServiceCatchAllStrategy.java 22443 2011-07-18 20:38:33Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.routing;
12  
13  import org.mule.api.MuleEvent;
14  import org.mule.api.MuleException;
15  import org.mule.api.routing.RoutingException;
16  import org.mule.api.service.Service;
17  
18  /**
19   * <code>ServiceCatchAllStrategy</code> is used to catch any events and forward the
20   * events to the service as is.
21   * @deprecated
22   */
23  @Deprecated
24  public class ServiceCatchAllStrategy extends AbstractCatchAllStrategy
25  {
26      @Override
27      public synchronized MuleEvent doCatchMessage(MuleEvent event)
28          throws RoutingException
29      {
30          if (!(event.getFlowConstruct() instanceof Service))
31          {
32              throw new UnsupportedOperationException(
33                  "CollectionResponseWithCallbackCorrelator is only supported with Service");
34          }
35  
36          logger.debug("Catch all strategy handling event: " + event);
37          try
38          {
39              if (event.getExchangePattern().hasResponse())
40              {
41                  if (statistics.isEnabled())
42                  {
43                      statistics.incrementRoutedMessage(event.getMessageSourceName());
44                  }
45                  return ((Service) event.getFlowConstruct()).sendEvent(event);
46              }
47              else
48              {
49                  if (statistics.isEnabled())
50                  {
51                      statistics.incrementRoutedMessage(event.getMessageSourceName());
52                  }
53                  ((Service) event.getFlowConstruct()).dispatchEvent(event);
54                  return null;
55              }
56          }
57          catch (MuleException e)
58          {
59              throw new RoutingException(event, this, e);
60          }
61      }
62  }