public static PeerForwarderConfig buildConfig()

in data-prepper-plugins/peer-forwarder/src/main/java/com/amazon/dataprepper/plugins/prepper/peerforwarder/PeerForwarderConfig.java [57:95]


    public static PeerForwarderConfig buildConfig(final PluginSetting pluginSetting) {
        final PeerListProvider peerListProvider = new PeerListProviderFactory().createProvider(pluginSetting);
        final HashRing hashRing = new HashRing(peerListProvider, NUM_VIRTUAL_NODES);
        final PeerClientPool peerClientPool = PeerClientPool.getInstance();
        peerClientPool.setClientTimeoutSeconds(3);

        final int targetPort = pluginSetting.getIntegerOrDefault(TARGET_PORT, DEFAULT_TARGET_PORT);
        peerClientPool.setPort(targetPort);

        final boolean ssl = pluginSetting.getBooleanOrDefault(SSL, DEFAULT_SSL);
        final String sslKeyCertChainFilePath = pluginSetting.getStringOrDefault(SSL_KEY_CERT_FILE, null);
        final boolean useAcmCertForSsl = pluginSetting.getBooleanOrDefault(USE_ACM_CERT_FOR_SSL, DEFAULT_USE_ACM_CERT_FOR_SSL);

        if (ssl || useAcmCertForSsl) {
            if (ssl && StringUtils.isEmpty(sslKeyCertChainFilePath)) {
                throw new IllegalArgumentException(String.format("%s is enabled, %s can not be empty or null", SSL, SSL_KEY_CERT_FILE));
            }
            peerClientPool.setSsl(true);
            final String acmCertificateArn = pluginSetting.getStringOrDefault(ACM_CERT_ARN, null);
            final long acmCertIssueTimeOutMillis = pluginSetting.getLongOrDefault(ACM_CERT_ISSUE_TIME_OUT_MILLIS, DEFAULT_ACM_CERT_ISSUE_TIME_OUT_MILLIS);
            final String awsRegion = pluginSetting.getStringOrDefault(AWS_REGION, null);
            final CertificateProviderConfig certificateProviderConfig = new CertificateProviderConfig(
                    useAcmCertForSsl,
                    acmCertificateArn,
                    awsRegion,
                    acmCertIssueTimeOutMillis,
                    sslKeyCertChainFilePath
            );
            final CertificateProviderFactory certificateProviderFactory = new CertificateProviderFactory(certificateProviderConfig);
            peerClientPool.setCertificate(certificateProviderFactory.getCertificateProvider().getCertificate());

        }

        return new PeerForwarderConfig(
                peerClientPool,
                hashRing,
                pluginSetting.getIntegerOrDefault(TIME_OUT, DEFAULT_TIMEOUT_SECONDS),
                pluginSetting.getIntegerOrDefault(MAX_NUM_SPANS_PER_REQUEST, 48));
    }