View Javadoc

1   /*
2    * $Id: ServiceOverridesDefinitionParser.java 12259 2008-07-09 14:18:28Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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  package org.mule.config.spring.parsers.specific;
11  
12  import org.mule.api.config.MuleProperties;
13  import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
14  import org.mule.util.StringUtils;
15  
16  import java.util.HashMap;
17  import java.util.Map;
18  
19  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
20  import org.springframework.beans.factory.xml.ParserContext;
21  import org.w3c.dom.Element;
22  
23  /**
24   * Sets a Map of service overrides on the parent connector
25   */
26  public class ServiceOverridesDefinitionParser extends ChildDefinitionParser
27  {
28  
29      public ServiceOverridesDefinitionParser()
30      {
31          super("serviceOverrides", HashMap.class);
32      }
33  
34      protected void parseChild(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
35      {
36          Map overrides = new HashMap();
37          addOverride(overrides, element, "messageReceiver", MuleProperties.CONNECTOR_MESSAGE_RECEIVER_CLASS);
38          addOverride(overrides, element, "transactedMessageReceiver", MuleProperties.CONNECTOR_TRANSACTED_MESSAGE_RECEIVER_CLASS);
39          addOverride(overrides, element, "dispatcherFactory", MuleProperties.CONNECTOR_DISPATCHER_FACTORY);
40          addOverride(overrides, element, "messageAdapter", MuleProperties.CONNECTOR_MESSAGE_ADAPTER);
41          addOverride(overrides, element, "inboundTransformer", MuleProperties.CONNECTOR_INBOUND_TRANSFORMER);
42          addOverride(overrides, element, "outboundTransformer", MuleProperties.CONNECTOR_OUTBOUND_TRANSFORMER);
43          addOverride(overrides, element, "responseTransformer", MuleProperties.CONNECTOR_RESPONSE_TRANSFORMER);
44          addOverride(overrides, element, "endpointBuilder", MuleProperties.CONNECTOR_ENDPOINT_BUILDER);
45          addOverride(overrides, element, "serviceFinder", MuleProperties.SERVICE_FINDER);
46          addOverride(overrides, element, "sessionHandler", MuleProperties.CONNECTOR_SESSION_HANDLER);
47          builder.getRawBeanDefinition().setSource(overrides);
48  
49          getBeanAssembler(element, builder).extendTarget(getPropertyName(element), overrides, false);
50      }
51  
52      protected void addOverride(Map overrides, Element e, String attributeName, String overrideName)
53      {
54          String value = e.getAttribute(attributeName);
55          if (!StringUtils.isBlank(value))
56          {
57              overrides.put(overrideName, value);
58          }
59      }
60  }