01 /*
02 * Copyright (C) 2006 exedio GmbH (www.exedio.com)
03 *
04 * This library is free software; you can redistribute it and/or
05 * modify it under the terms of the GNU Lesser General Public
06 * License as published by the Free Software Foundation; either
07 * version 2.1 of the License, or (at your option) any later version.
08 *
09 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18 package com.exedio.pop3serv.log4j;
19
20 import com.exedio.pop3serv.Mail;
21 import com.exedio.pop3serv.MailDrop;
22 import com.exedio.pop3serv.MailDropManager;
23 import com.exedio.pop3serv.SingleAccountManager;
24 import java.io.UnsupportedEncodingException;
25 import java.util.ArrayList;
26 import java.util.List;
27 import org.apache.log4j.spi.LoggingEvent;
28
29 /**
30 * This is the account manager for the {@link MailAppender}.
31 * @author ebert
32 */
33 public class LogMailDropManager extends SingleAccountManager
34 {
35 private List<Mail> theMails;
36
37 public LogMailDropManager(String userName, String password)
38 {
39 super(userName, password);
40 theMails = new ArrayList<Mail>();
41 }
42
43 protected MailDrop createMailDrop()
44 {
45 return new LogMailDrop(new ArrayList<Mail>(theMails));
46 }
47
48 protected void remove(LogMail mail)
49 {
50 theMails.remove(mail);
51 }
52
53 protected void append(String appenderName, LoggingEvent loggingEvent) throws UnsupportedEncodingException
54 {
55 theMails.add(new LogMail(this, appenderName, loggingEvent));
56 }
57 }
|