Source:
<code>protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { if (!StringUtils.hasText(element.getAttribute(CHANNEL_ATTRIBUTE))) { parserContext.getReaderContext().error( "'" + CHANNEL_ATTRIBUTE + "' attribute is required.", element); } else if (!StringUtils.hasText(element.getAttribute(CACHE_ATTRIBUTE))) { parserContext.getReaderContext().error( "'" + CACHE_ATTRIBUTE + "' attribute is required.", element); } else if (!StringUtils.hasText(element.getAttribute(CACHE_EVENTS_ATTRIBUTE))) { parserContext.getReaderContext().error( "'" + CACHE_EVENTS_ATTRIBUTE + "' attribute is required.", element); } else if (!StringUtils.hasText(element.getAttribute(CACHE_LISTENING_POLICY_ATTRIBUTE))) { parserContext.getReaderContext().error( "'" + CACHE_LISTENING_POLICY_ATTRIBUTE + "' attribute is required.", element); } Assert.isTrue(HazelcastIntegrationDefinitionValidator.validateEnumType( CacheEventType.class, element.getAttribute(CACHE_EVENTS_ATTRIBUTE))); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, CHANNEL_ATTRIBUTE, OUTPUT_CHANNEL); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, CACHE_ATTRIBUTE, DISTRIBUTED_OBJECT); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, CACHE_EVENTS_ATTRIBUTE, CACHE_EVENT_TYPES); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, CACHE_LISTENING_POLICY_ATTRIBUTE, CACHE_LISTENING_POLICY); <START> } <END></code><technical_language>Please, care SmartLifecycle too: IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, IntegrationNamespaceUtils.AUTO_STARTUP); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, IntegrationNamespaceUtils.PHASE);</technical_language>

Target:
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String channelName = element.getAttribute(CHANNEL_ATTRIBUTE); if (!StringUtils.hasText(channelName)) { channelName = IntegrationNamespaceUtils.createDirectChannel(element, parserContext); } if (!StringUtils.hasText(element.getAttribute(CACHE_ATTRIBUTE))) { parserContext.getReaderContext().error("'" + CACHE_ATTRIBUTE + "' attribute is required.", element); } else if (!StringUtils.hasText(element.getAttribute(CACHE_EVENTS_ATTRIBUTE))) { parserContext.getReaderContext().error("'" + CACHE_EVENTS_ATTRIBUTE + "' attribute is required.", element); } else if (!StringUtils.hasText(element.getAttribute(CACHE_LISTENING_POLICY_ATTRIBUTE))) { parserContext.getReaderContext().error("'" + CACHE_LISTENING_POLICY_ATTRIBUTE + "' attribute is required.", element); } builder.addPropertyReference(OUTPUT_CHANNEL, channelName); builder.addConstructorArgReference(element.getAttribute(CACHE_ATTRIBUTE)); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, CACHE_EVENTS_ATTRIBUTE, CACHE_EVENT_TYPES); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, CACHE_LISTENING_POLICY_ATTRIBUTE); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, IntegrationNamespaceUtils.AUTO_STARTUP); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, IntegrationNamespaceUtils.PHASE); }