package com.aol.micro.server.auto.discovery; import java.util.Map; import javax.servlet.Servlet; import cyclops.control.Xor; import org.pcollections.HashTreePMap; /* * If creating a Plugin, create a ServletConfiguration Spring Bean rather than a Servlet Spring Bean * This is because Spring Boot may also create a Servlet based of any Filter Beans (but exposed on all URLS) */ public interface ServletConfiguration { /** * @return An array of URL mapping this servlet should target */ public String[] getMapping(); default String getName(){ return null; } default Map<String,String> getInitParameters(){ return HashTreePMap.empty(); } /** * Xor is an eXclusive Or type. It holds one of two types, and one (and only one) must * be returned. In this case either a Servlet class or a Servlet Object. * * {@code * <pre> * return Xor.secondary(MyServlet.class); * * </pre> * } * * {@code * <pre> * return Xor.primary(new MyServlet()); * * </pre> * } * */ Xor<Class<? extends Servlet>,Servlet> getServlet(); }