public RealizationResult create(GatewayReceiverConfig config, InternalCache cache) {
    GatewayReceiverFactory gatewayReceiverFactory = cache.createGatewayReceiverFactory();

    String startPort = config.getStartPort();
    if (startPort != null) {
      gatewayReceiverFactory.setStartPort(Integer.parseInt(startPort));
    }

    String endPort = config.getEndPort();
    if (endPort != null) {
      gatewayReceiverFactory.setEndPort(Integer.parseInt(endPort));
    }

    String bindAddress = config.getBindAddress();
    if (bindAddress != null) {
      gatewayReceiverFactory.setBindAddress(bindAddress);
    }

    String hostnameForSenders = config.getHostnameForSenders();
    if (hostnameForSenders != null) {
      gatewayReceiverFactory.setHostnameForSenders(hostnameForSenders);
    }

    String maxTimeBetweenPings = config.getMaximumTimeBetweenPings();
    if (maxTimeBetweenPings != null) {
      gatewayReceiverFactory.setMaximumTimeBetweenPings(Integer.parseInt(maxTimeBetweenPings));
    }

    String socketBufferSize = config.getSocketBufferSize();
    if (socketBufferSize != null) {
      gatewayReceiverFactory.setSocketBufferSize(Integer.parseInt(socketBufferSize));
    }

    Boolean manualStart = config.isManualStart();
    if (manualStart != null) {
      gatewayReceiverFactory.setManualStart(manualStart);
    }

    List<DeclarableType> gatewayTransportFilters = config.getGatewayTransportFilters();
    if (gatewayTransportFilters != null) {
      for (DeclarableType gatewayTransportFilter : gatewayTransportFilters) {
        gatewayReceiverFactory
            .addGatewayTransportFilter(newInstance(gatewayTransportFilter, cache));
      }
    }

    gatewayReceiverFactory.create();
    return new RealizationResult().setSuccess(true);
  }
Need to keep this method since we are using the realizer in the GatewayReceiverFunction
geode-core/src/main/java/org/apache/geode/management/internal/configuration/realizers/GatewayReceiverRealizer.java