page1
Mime4J
MimeStreamParser
MimeTokenStream
Inicialmente avaliamos a possibilidade de persistir diretamente o DOM retornado pelo Mime4J.
Abandonamos a ideia porque o DOM nativo do Mime4J não foi otimizado para persistência final em um modelo relacional (redundância excessiva).
Implementamos nosso próprio modelo de objetos da mensagem utilizando o parser push
(MimeStreamParser).
Já tinhamos experiência prévia com esse parser que foi utilizado na ferramenta de importação de mensagens do Thunderbird para o Gears.
Parser push. Observer (listener) pattern.
Parser pull. Iterable pattern.
while (hasNext()) {next(); … }
MailArchiver DOM