docs: public static void combineWlpAndRaXmls(final String adapterName, RaConnector raConnector, WlpRaConnector wlpRaConnector) throws InvalidPropertyException, UnavailableException {
          raConnector.copyWlpSettings(wlpRaConnector);
  
          WlpRaResourceAdapter wlpResourceAdapter = wlpRaConnector.getResourceAdapter();
          RaResourceAdapter raResourceAdapter = raConnector.getResourceAdapter();
  
          if (wlpResourceAdapter != null) {
              raResourceAdapter.copyWlpSettings(wlpResourceAdapter);
              // process resourceadapter level config-property
              if (wlpResourceAdapter.getConfigProperties() != null) {
                  List<WlpRaConfigProperty> wlpConfigProperties = wlpResourceAdapter.getConfigProperties();
                  for (WlpRaConfigProperty wlpConfigProperty : wlpConfigProperties) {
                      if (wlpConfigProperty.addWlpPropertyToMetatype()) {
                          if (raResourceAdapter.isConfigPropertyAlreadyDefined(wlpConfigProperty.getWlpPropertyName()))
                              throw new InvalidPropertyException(Tr.formatMessage(tc, "J2CA9908.duplicate.copy", wlpConfigProperty.getWlpPropertyName(), adapterName));
                          else {
                              RaConfigProperty property = new RaConfigProperty();
                              property.copyWlpSettings(wlpConfigProperty);
                              raResourceAdapter.getConfigProperties().add(property);
                          }
                      } else {
                          RaConfigProperty raConfigProperty = raResourceAdapter.getConfigPropertyById(wlpConfigProperty.getWlpPropertyName());
                          if (raConfigProperty == null)
                              throw new UnavailableException(Tr.formatMessage(tc, "J2CA9909.missing.matching.config.prop", wlpConfigProperty.getWlpPropertyName(), adapterName));
                          else
                              raConfigProperty.copyWlpSettings(wlpConfigProperty);
                      }
                  }
              }
  
              // process resourceadapter level adminobject
              List<WlpRaAdminObject> wlpAdminObjects = wlpResourceAdapter.getAdminObjects();
              if (wlpAdminObjects != null) {
                  for (WlpRaAdminObject wlpAdminObject : wlpAdminObjects) {
                      RaAdminObject raAdminObject = raResourceAdapter.getAdminObject(wlpAdminObject.getAdminObjectInterface(), wlpAdminObject.getAdminObjectClass());
                      if (raAdminObject == null)
                          throw new UnavailableException(Tr.formatMessage(tc, "J2CA9910.missing.matching.adminobject",
                                                                          wlpAdminObject.getAdminObjectInterface(), wlpAdminObject.getAdminObjectClass(), adapterName));
                      else {
                          raAdminObject.copyWlpSettings(wlpAdminObject);
                          if (wlpAdminObject.getConfigProperties() != null) {
                              List<WlpRaConfigProperty> wlpConfigProperties = wlpAdminObject.getConfigProperties();
                              for (WlpRaConfigProperty wlpConfigProperty : wlpConfigProperties) {
                                  if (wlpConfigProperty.addWlpPropertyToMetatype()) {
                                      if (raAdminObject.isConfigPropertyAlreadyDefined(wlpConfigProperty.getWlpPropertyName()))
                                          throw new InvalidPropertyException(Tr.formatMessage(tc, "J2CA9908.duplicate.copy", wlpConfigProperty.getWlpPropertyName(), adapterName));
                                      else {
                                          RaConfigProperty property = new RaConfigProperty();
                                          property.copyWlpSettings(wlpConfigProperty);
                                          raAdminObject.getConfigProperties().add(property);
                                      }
                                  } else {
                                      RaConfigProperty raConfigProperty = raAdminObject.getConfigPropertyById(wlpConfigProperty.getWlpPropertyName());
                                      if (raConfigProperty == null)
                                          throw new UnavailableException(Tr.formatMessage(tc, "J2CA9909.missing.matching.config.prop", wlpConfigProperty.getWlpPropertyName(),
                                                                                          adapterName));
                                      else
                                          raConfigProperty.copyWlpSettings(wlpConfigProperty);
                                  }
                              }
                          }
                      }
                  }
              }
  
              // process outbound-resourceadapter
              WlpRaOutboundResourceAdapter wlpOutboundAdapter = wlpResourceAdapter.getOutboundResourceAdapter();
              if (wlpOutboundAdapter != null) {
                  RaOutboundResourceAdapter raOutboundAdapter = raResourceAdapter.getOutboundResourceAdapter();
                  if (wlpOutboundAdapter.getConnectionDefinitions() != null) {
                      List<WlpRaConnectionDefinition> wlpConnectionDefinitions = wlpOutboundAdapter.getConnectionDefinitions();
                      for (WlpRaConnectionDefinition wlpConnectionDefinition : wlpConnectionDefinitions) {
                          RaConnectionDefinition raConnectionDefinition = raOutboundAdapter.getConnectionDefinitionByInterface(wlpConnectionDefinition.getConnectionFactoryInterface());
                          if (raConnectionDefinition == null)
                              throw new UnavailableException(Tr.formatMessage(tc, "J2CA9911.missing.matching.type",
                                                                              "connection-definition", wlpConnectionDefinition.getConnectionFactoryInterface(),
                                                                              ConnectionDefinition.class.getSimpleName(), adapterName));
                          else {
                              raConnectionDefinition.copyWlpSettings(wlpConnectionDefinition);
                              if (wlpConnectionDefinition.getConfigProperties() != null) {
                                  List<WlpRaConfigProperty> wlpConfigProperties = wlpConnectionDefinition.getConfigProperties();
                                  // process connection-definition config-property
                                  for (WlpRaConfigProperty wlpConfigProperty : wlpConfigProperties) {
                                      if (wlpConfigProperty.addWlpPropertyToMetatype()) {
                                          if (raConnectionDefinition.isConfigPropertyAlreadyDefined(wlpConfigProperty.getWlpPropertyName()))
                                              throw new InvalidPropertyException(Tr.formatMessage(tc, "J2CA9908.duplicate.copy", wlpConfigProperty.getWlpPropertyName(),
                                                                                                  adapterName));
                                          else {
                                              RaConfigProperty property = new RaConfigProperty();
                                              property.copyWlpSettings(wlpConfigProperty);
                                              raConnectionDefinition.getConfigProperties().add(property);
                                          }
                                      } else {
                                          RaConfigProperty raConfigProperty = raConnectionDefinition.getConfigPropertyById(wlpConfigProperty.getWlpPropertyName());
                                          if (raConfigProperty == null)
                                              throw new UnavailableException(Tr.formatMessage(tc, "J2CA9909.missing.matching.config.prop", wlpConfigProperty.getWlpPropertyName(),
                                                                                              adapterName));
                                          else
                                              raConfigProperty.copyWlpSettings(wlpConfigProperty);
                                      }
                                  }
                              }
                          }
                      }
                  }
              }
  
              // process inbound-resourceadapter
              WlpRaInboundResourceAdapter wlpInboundAdapter = wlpResourceAdapter.getInboundResourceAdapter();
              if (wlpInboundAdapter != null) {
                  RaInboundResourceAdapter raInboundAdapter = raResourceAdapter.getInboundResourceAdapter();
                  // process messageadapter
                  WlpRaMessageAdapter wlpMessageAdapter = wlpInboundAdapter.getMessageAdapter();
                  if (wlpMessageAdapter != null) {
                      if (wlpMessageAdapter.getMessageListeners() != null) {
                          RaMessageAdapter raMessageAdapter = raInboundAdapter.getMessageAdapter();
                          List<WlpRaMessageListener> wlpMessageListeners = wlpMessageAdapter.getMessageListeners();
                          for (WlpRaMessageListener wlpMessageListener : wlpMessageListeners) {
                              RaMessageListener raMessageListener = raMessageAdapter == null ? null : raMessageAdapter.getMessageListenerByType(wlpMessageListener.getMessageListenerType());
                              if (raMessageListener == null)
                                  throw new UnavailableException(Tr.formatMessage(tc, "J2CA9911.missing.matching.type",
                                                                                  "messagelistener", wlpMessageListener.getMessageListenerType(),
                                                                                  Activation.class.getSimpleName(), adapterName));
                              else {
                                  raMessageListener.copyWlpSettings(wlpMessageListener);
                                  if (wlpMessageListener.getActivationSpec() != null) {
                                      WlpRaActivationSpec wlpActivationSpec = wlpMessageListener.getActivationSpec();
                                      RaActivationSpec raActivationSpec = raMessageListener.getActivationSpec();
                                      if (raActivationSpec == null)
                                          throw new UnavailableException(Tr.formatMessage(tc, "J2CA9911.missing.matching.type",
                                                                                          "activationspec", raMessageListener.getMessageListenerType(),
                                                                                          Activation.class.getSimpleName(), adapterName));
                                      else if (wlpActivationSpec.getConfigProperties() != null) {
                                          List<WlpRaConfigProperty> wlpConfigProperties = wlpActivationSpec.getConfigProperties();
                                          for (WlpRaConfigProperty wlpConfigProperty : wlpConfigProperties) {
                                              if (wlpConfigProperty.addWlpPropertyToMetatype())
                                                  if (raActivationSpec.isConfigPropertyAlreadyDefined(wlpConfigProperty.getWlpPropertyName()))
                                                      throw new InvalidPropertyException(Tr.formatMessage(tc, "J2CA9908.duplicate.copy", wlpConfigProperty.getWlpPropertyName(),
                                                                                                          adapterName));
                                                  else {
                                                      RaConfigProperty property = new RaConfigProperty();
                                                      property.copyWlpSettings(wlpConfigProperty);
                                                      raActivationSpec.getConfigProperties().add(property);
                                                  }
                                              else {
                                                  RaConfigProperty raConfigProperty = raActivationSpec.getConfigPropertyById(wlpConfigProperty.getWlpPropertyName());
                                                  if (raConfigProperty == null)
                                                      throw new UnavailableException(Tr.formatMessage(tc, "J2CA9909.missing.matching.config.prop",
                                                                                                      wlpConfigProperty.getWlpPropertyName(),
                                                                                                      adapterName));
                                                  else
                                                      raConfigProperty.copyWlpSettings(wlpConfigProperty);
                                              }
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  }
              }
          }
      }