diff --git a/src/main/java/dslab/Message.java b/src/main/java/dslab/Message.java index 004646a..cf99d2e 100644 --- a/src/main/java/dslab/Message.java +++ b/src/main/java/dslab/Message.java @@ -11,6 +11,7 @@ public class Message { private Email from; private String subject; private String data; + private Integer id; public Message() { } @@ -71,6 +72,14 @@ public class Message { this.data = data; } + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + @Override public String toString() { return "from " + getFrom().toString() + "\n" + diff --git a/src/main/java/dslab/mailbox/DMTPConnection.java b/src/main/java/dslab/mailbox/DMTPConnection.java index 6fec0e4..2d66542 100644 --- a/src/main/java/dslab/mailbox/DMTPConnection.java +++ b/src/main/java/dslab/mailbox/DMTPConnection.java @@ -110,6 +110,7 @@ public class DMTPConnection implements Runnable { private synchronized void storeMessage() throws UnknownRecipientException { logger.info("Storing message " + msg.toString()); + this.msg.setId(MailboxServer.id++); String errorUnknownRecipient = ""; for (Email recipient : this.msg.getTo()) { if (this.messageStorage.containsKey(recipient)) { diff --git a/src/main/java/dslab/mailbox/MailboxServer.java b/src/main/java/dslab/mailbox/MailboxServer.java index 615c3f2..2b56922 100644 --- a/src/main/java/dslab/mailbox/MailboxServer.java +++ b/src/main/java/dslab/mailbox/MailboxServer.java @@ -29,6 +29,8 @@ public class MailboxServer implements IMailboxServer, Runnable { private final ConcurrentHashMap> messageStorage = new ConcurrentHashMap<>(); private final ConcurrentHashMap userStorage = new ConcurrentHashMap<>(); + public static volatile Integer id; + /** * Creates a new server instance. * @@ -51,6 +53,8 @@ public class MailboxServer implements IMailboxServer, Runnable { messageStorage.put(current, new LinkedList<>()); } + id = 0; + this.shell = new Shell(in, out); this.shell.register(this); this.shell.setPrompt("Mailboxserver> "); @@ -78,7 +82,6 @@ public class MailboxServer implements IMailboxServer, Runnable { @Command @Override public void shutdown() { - // TODO shutdown DMTPListener // TODO shutdown DMAPListener try { if (dmtpServerSocket != null)