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

net.dongliu.cute.http.json.JsonMarshallers Maven / Gradle / Ivy

The newest version!
package net.dongliu.cute.http.json;

import net.dongliu.commons.Lazy;

import java.util.Optional;
import java.util.ServiceLoader;

/**
 * Utils for get JsonMarshaller
 */
public class JsonMarshallers {

    /**
     * Get JsonMarshaller instance by SPI.
     */
    public static Optional getJsonMarshaller() {
        return jsonMarshaller.get();
    }

    private static final Lazy> jsonMarshaller = Lazy.of(JsonMarshallers::loadJsonMarshaller);

    private static Optional loadJsonMarshaller() {
        var iterator = ServiceLoader.load(JsonMarshaller.class).iterator();
        if (!iterator.hasNext()) {
            return Optional.empty();
        }
        var marshaller = iterator.next();
        if (iterator.hasNext()) {
            System.err.println("CuteHttp: multi json marshaller implementation found, ignore others. ");
        }
        return Optional.of(marshaller);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy