All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.riptide.spring.TestRiptideRegistrar Maven / Gradle / Ivy

package org.zalando.riptide.spring;

import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.http.client.AsyncClientHttpRequestFactory;

import static org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition;

@Slf4j
@AllArgsConstructor
class TestRiptideRegistrar implements RiptideRegistrar {

    private final Registry registry;
    private final RiptideProperties properties;

    @Override
    public void register() {
        properties.getClients().forEach((id, client) ->
                registerAsyncClientHttpRequestFactory(id));
    }

    private void registerAsyncClientHttpRequestFactory(final String id) {
        registry.registerIfAbsent(id, AsyncClientHttpRequestFactory.class, () -> {
            log.debug("Client [{}]: Registering mocked AsyncClientHttpRequestFactory", id);
            final BeanDefinitionBuilder factory = genericBeanDefinition(AsyncClientHttpRequestFactory.class);
            factory.addDependsOn(RiptideTestAutoConfiguration.SERVER_BEAN_NAME);
            factory.setFactoryMethodOnBean("getAsyncRequestFactory", RiptideTestAutoConfiguration.TEMPLATE_BEAN_NAME);
            return factory;
        });
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy