protected List<ProtocolHandler> initDefaultHandlers(AbstractPassCmdHandler... authHandlers) { List<ProtocolHandler> handlers = new ArrayList<>(); // add all pass handlers Collections.addAll(handlers, authHandlers); handlers.add(new CapaCmdHandler()); handlers.add(new UserCmdHandler()); handlers.add(new ListCmdHandler()); handlers.add(new UidlCmdHandler()); handlers.add(new RsetCmdHandler()); handlers.add(new DeleCmdHandler()); handlers.add(new NoopCmdHandler()); handlers.add(new RetrCmdHandler()); handlers.add(new TopCmdHandler()); handlers.add(new StatCmdHandler()); handlers.add(new QuitCmdHandler()); handlers.add(new WelcomeMessageHandler()); handlers.add(new UnknownCmdHandler()); handlers.add(new StlsCmdHandler()); handlers.add(new CommandDispatcher<POP3Session>()); handlers.add(new CommandHandlerResultLogger()); return handlers; } }