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

se.hiq.oss.spring.nats.config.java.NatsJacksonConfiguration Maven / Gradle / Ivy

The newest version!
package se.hiq.oss.spring.nats.config.java;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.fasterxml.jackson.databind.ObjectMapper;
import static se.hiq.oss.spring.nats.config.NatsBeans.SER_DE_FACTORY;
import se.hiq.oss.spring.nats.message.serde.json.NatsJacksonMessageSerDeFactory;
import se.hiq.oss.spring.nats.message.validation.JsonSchemaValidator;
import se.hiq.oss.spring.nats.message.validation.MessageObjectValidator;

@Configuration
public class NatsJacksonConfiguration {

    @Autowired
    private ObjectMapper objectMapper;

    @Autowired
    private Optional validator;

    @Autowired
    private Optional jsonSchemaValidator;


    @Bean(name = SER_DE_FACTORY)
    public NatsJacksonMessageSerDeFactory natsJacksonMessageSerDeFactory() {
        NatsJacksonMessageSerDeFactory natsJacksonMessageSerDeFactory = new NatsJacksonMessageSerDeFactory();

        natsJacksonMessageSerDeFactory.setObjectMapper(objectMapper);
        jsonSchemaValidator.ifPresent(v -> natsJacksonMessageSerDeFactory.setSchemaValidator(v));
        validator.ifPresent(v -> natsJacksonMessageSerDeFactory.setValidator(v));

        return natsJacksonMessageSerDeFactory;
    }




}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy