package com.firefly.server.http2.router.handler.error;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ServiceLoader;
/**
* @author Pengtao Qiu
*/
public class DefaultErrorResponseHandlerLoader {
private static final Logger log = LoggerFactory.getLogger("firefly-system");
private static DefaultErrorResponseHandlerLoader ourInstance = new DefaultErrorResponseHandlerLoader();
public static DefaultErrorResponseHandlerLoader getInstance() {
return ourInstance;
}
private AbstractErrorResponseHandler handler;
private DefaultErrorResponseHandlerLoader() {
ServiceLoader<AbstractErrorResponseHandler> serviceLoader = ServiceLoader.load(AbstractErrorResponseHandler.class);
for (AbstractErrorResponseHandler h : serviceLoader) {
handler = h;
log.info("load AbstractErrorResponseHandler, implement class -> {}", h.getClass().getName());
}
if (handler == null) {
handler = new DefaultErrorResponseHandler();
}
log.info("load AbstractErrorResponseHandler, selected -> {}", handler.getClass().getName());
}
public AbstractErrorResponseHandler getHandler() {
return handler;
}
}