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

io.mstream.trader.datafeed.handlers.RootChain Maven / Gradle / Ivy

The newest version!
package io.mstream.trader.datafeed.handlers;


import io.mstream.trader.datafeed.handlers.admin.Admin;
import io.mstream.trader.datafeed.handlers.api.Api;
import io.mstream.trader.datafeed.handlers.monitoring.Monitoring;
import org.slf4j.Logger;
import ratpack.func.Action;
import ratpack.handling.Chain;
import ratpack.handling.RequestLogger;

import javax.inject.Inject;

import static org.slf4j.LoggerFactory.getLogger;


public class RootChain
        implements Action {
    
    private static final Logger LOGGER = getLogger(RootChain.class);
    
    private final Action monitoringChain;
    
    private final Action apiChain;
    
    private final Action adminChain;
    
    @Inject
    public RootChain(
            @Monitoring
                    Action monitoringChain,
            @Api
                    Action apiChain,
            @Admin
                    Action adminChain
    ) {
    
        this.monitoringChain = monitoringChain;
        this.apiChain = apiChain;
        this.adminChain = adminChain;
    }
    
    @Override
    public void execute(Chain chain)
            throws Exception {
        
        chain
                .all(RequestLogger.ncsa(LOGGER))
                .prefix("monitoring", monitoringChain)
                .prefix("api", apiChain)
                .prefix("admin", adminChain);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy