public boolean initialise(final String config) {
    if (ActiveMQXARecoveryLogger.LOGGER.isTraceEnabled()) {
      ActiveMQXARecoveryLogger.LOGGER.trace(this + " intialise: " + config);
    }

    String[] configs = config.split(";");
    XARecoveryConfig[] xaRecoveryConfigs = new XARecoveryConfig[configs.length];
    for (int i = 0, configsLength = configs.length; i < configsLength; i++) {
      String s = configs[i];
      ConfigParser parser = new ConfigParser(s);
      String connectorFactoryClassName = parser.getConnectorFactoryClassName();
      Map<String, Object> connectorParams = parser.getConnectorParameters();
      String username = parser.getUsername();
      String password = parser.getPassword();
      TransportConfiguration transportConfiguration =
          new TransportConfiguration(connectorFactoryClassName, connectorParams);
      xaRecoveryConfigs[i] =
          new XARecoveryConfig(
              false,
              new TransportConfiguration[] {transportConfiguration},
              username,
              password,
              null,
              null);
    }

    res = new ActiveMQXAResourceWrapper(xaRecoveryConfigs);

    if (ActiveMQXARecoveryLogger.LOGGER.isTraceEnabled()) {
      ActiveMQXARecoveryLogger.LOGGER.trace(this + " initialised");
    }

    return true;
  }