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

io.grpc.netty.LogIdAttachListener Maven / Gradle / Ivy

There is a newer version: 3.0.0
Show newest version
package io.grpc.netty;

import com.navercorp.pinpoint.grpc.server.MetadataServerTransportFilter;
import io.grpc.Attributes;
import io.grpc.Metadata;
import io.grpc.internal.ServerStream;
import io.grpc.internal.ServerTransportListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Objects;

public class LogIdAttachListener implements ServerTransportListener {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    private final ServerTransportListener delegate;
    private final Long logId;

    public LogIdAttachListener(ServerTransportListener delegate, Long logId) {
        this.delegate = Objects.requireNonNull(delegate, "delegate");
        this.logId = Objects.requireNonNull(logId, "logId");
    }

    @Override
    public void streamCreated(ServerStream stream, String method, Metadata headers) {
        delegate.streamCreated(stream, method, headers);
    }

    @Override
    public Attributes transportReady(Attributes attributes) {
        Attributes.Builder builder = attributes.toBuilder();
        builder.set(MetadataServerTransportFilter.LOG_ID, logId);
        Attributes build = builder.build();
        if (logger.isDebugEnabled()) {
            logger.debug("logId:{} transportReady:{} ", logId, attributes);
        }
        return delegate.transportReady(build);
    }

    @Override
    public void transportTerminated() {
        delegate.transportTerminated();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy