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

io.fabric8.maven.docker.access.chunked.EntityStreamReaderUtil Maven / Gradle / Ivy

The newest version!
package io.fabric8.maven.docker.access.chunked;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import io.fabric8.maven.docker.access.DockerAccessException;

public class EntityStreamReaderUtil {

    private EntityStreamReaderUtil() {}

    public static void processJsonStream(JsonEntityResponseHandler handler, InputStream stream) throws IOException {
        handler.start();
        try(JsonReader json = new JsonReader(new InputStreamReader(stream))) {
            JsonParser parser = new JsonParser();

            json.setLenient(true);
            while (json.peek() != JsonToken.END_DOCUMENT) {
                JsonElement element = parser.parse(json);
                handler.process(element.getAsJsonObject());
            }
        } finally {
            handler.stop();
        }
    }

    public interface JsonEntityResponseHandler {
        void process(JsonObject toProcess) throws DockerAccessException;
        void start();
        void stop();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy