code: protected BeanDefinitionHolder parseInternal(Element element, ParserContext parserContext, String exportedBeanReference) {
          BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(REMOTING_DESTINATION_EXPORTER_CLASS_NAME);
          builder.getRawBeanDefinition().setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
  
          validateRemotingDestination(element, parserContext);
  
          String destinationId = element.getAttribute(DESTINATION_ID_ATTR);
          String brokerId = element.getAttribute(MESSAGE_BROKER_ATTR);
  
          builder.addPropertyValue(SERVICE_PROPERTY, exportedBeanReference);
          builder.addDependsOn(exportedBeanReference);
  
          destinationId = StringUtils.hasText(destinationId) ? destinationId : exportedBeanReference;
          builder.addPropertyValue(DESTINATION_ID_PROPERTY, destinationId);
  
          brokerId = StringUtils.hasText(brokerId) ? brokerId : BeanIds.MESSAGE_BROKER;
          builder.addPropertyReference(MESSAGE_BROKER_PROPERTY, brokerId);
  
          ParsingUtils.mapOptionalAttributes(element, parserContext, builder, CHANNELS_ATTR, INCLUDE_METHODS_ATTR, EXCLUDE_METHODS_ATTR, SERVICE_ADAPTER_ATTR);
  
          String beanName = ParsingUtils.registerInfrastructureComponent(element, parserContext, builder);
  
          return new BeanDefinitionHolder(builder.getBeanDefinition(), beanName);
      }
docs: The main parsing algorithm for the <code>remoting-destination</code> tag.
  
  @param element the element being parsed
  @param parserContext the current parser context
  @param exportedBeanReference reference to the bean being exported as a remoting destination
  @return a bean definition holder for the {@link RemotingDestinationExporter} bean