public MultiLangDaemonConfiguration()

in amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfiguration.java [198:261]


    public MultiLangDaemonConfiguration(BeanUtilsBean utilsBean, ConvertUtilsBean convertUtilsBean) {
        this.utilsBean = utilsBean;
        this.convertUtilsBean = convertUtilsBean;

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(Class<T> type, Object value) {
                Date date = new Date(Long.parseLong(value.toString()) * 1000L);
                return type.cast(InitialPositionInStreamExtended.newInitialPositionAtTimestamp(date));
            }
        }, InitialPositionInStreamExtended.class);

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(Class<T> type, Object value) {
                return type.cast(MetricsLevel.valueOf(value.toString().toUpperCase()));
            }
        }, MetricsLevel.class);

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(Class<T> type, Object value) {
                return type.cast(InitialPositionInStream.valueOf(value.toString().toUpperCase()));
            }
        }, InitialPositionInStream.class);

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(Class<T> type, Object value) {
                return type.cast(URI.create(value.toString()));
            }
        }, URI.class);

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(Class<T> type, Object value) {
                return type.cast(RetrievalMode.from(value.toString()));
            }
        }, RetrievalMode.class);

        convertUtilsBean.register(new Converter() {
            @Override
            public <T> T convert(final Class<T> type, final Object value) {
                return type.cast(Region.of(value.toString()));
            }
        }, Region.class);

        ArrayConverter arrayConverter = new ArrayConverter(String[].class, new StringConverter());
        arrayConverter.setDelimiter(',');
        convertUtilsBean.register(arrayConverter, String[].class);
        AWSCredentialsProviderPropertyValueDecoder oldCredentialsDecoder = new AWSCredentialsProviderPropertyValueDecoder();
        Function<String, ?> converter = s -> new V2CredentialWrapper(oldCredentialsDecoder.decodeValue(s));

        this.kinesisCredentialsProvider = new BuilderDynaBean(AwsCredentialsProvider.class, convertUtilsBean,
                converter, CREDENTIALS_DEFAULT_SEARCH_PATH);
        this.dynamoDBCredentialsProvider = new BuilderDynaBean(AwsCredentialsProvider.class, convertUtilsBean,
                converter, CREDENTIALS_DEFAULT_SEARCH_PATH);
        this.cloudWatchCredentialsProvider = new BuilderDynaBean(AwsCredentialsProvider.class, convertUtilsBean,
                converter, CREDENTIALS_DEFAULT_SEARCH_PATH);

        this.kinesisClient = new BuilderDynaBean(KinesisAsyncClient.class, convertUtilsBean);
        this.dynamoDbClient = new BuilderDynaBean(DynamoDbAsyncClient.class, convertUtilsBean);
        this.cloudWatchClient = new BuilderDynaBean(CloudWatchAsyncClient.class, convertUtilsBean);
    }