mirror of
https://github.com/moparisthebest/mailiverse
synced 2024-11-21 08:25:00 -05:00
makes the files closer to the svn original so easier to track changes
This commit is contained in:
parent
30a7aca7ad
commit
1f6c3968aa
@ -66,16 +66,12 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.james</groupId>
|
<groupId>org.apache.james</groupId>
|
||||||
<artifactId>apache-mailet</artifactId>
|
<artifactId>apache-james-mailbox-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>${javax.mail.groupId}</groupId>
|
<groupId>${javax.mail.groupId}</groupId>
|
||||||
<artifactId>${javax.mail.artifactId}</artifactId>
|
<artifactId>${javax.mail.artifactId}</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.james</groupId>
|
|
||||||
<artifactId>apache-james-mailbox-api</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.james</groupId>
|
<groupId>org.apache.james</groupId>
|
||||||
<artifactId>apache-james-mailbox-store</artifactId>
|
<artifactId>apache-james-mailbox-store</artifactId>
|
||||||
|
@ -30,7 +30,6 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
|
|||||||
import org.apache.james.mailbox.store.mail.MailboxMapper;
|
import org.apache.james.mailbox.store.mail.MailboxMapper;
|
||||||
import org.apache.james.mailbox.store.mail.MessageMapper;
|
import org.apache.james.mailbox.store.mail.MessageMapper;
|
||||||
import org.apache.james.mailbox.store.user.SubscriptionMapper;
|
import org.apache.james.mailbox.store.user.SubscriptionMapper;
|
||||||
import org.apache.mailet.MailetContext;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -43,24 +42,23 @@ import java.net.InetSocketAddress;
|
|||||||
|
|
||||||
public class InMemoryMailboxSessionMapperFactory extends MailboxSessionMapperFactory<Long> {
|
public class InMemoryMailboxSessionMapperFactory extends MailboxSessionMapperFactory<Long> {
|
||||||
|
|
||||||
private MailetContext mailetContext;
|
|
||||||
private MailboxMapper<Long> mailboxMapper;
|
private MailboxMapper<Long> mailboxMapper;
|
||||||
private MessageMapper<Long> messageMapper;
|
private MessageMapper<Long> messageMapper;
|
||||||
private SubscriptionMapper subscriptionMapper;
|
private SubscriptionMapper subscriptionMapper;
|
||||||
|
|
||||||
static Logger log = LoggerFactory.getLogger(InMemoryMailboxSessionMapperFactory.class);
|
static Logger log = LoggerFactory.getLogger(InMemoryMailboxSessionMapperFactory.class);
|
||||||
|
|
||||||
public InMemoryMailboxSessionMapperFactory() throws MailboxException
|
public InMemoryMailboxSessionMapperFactory() throws MailboxException
|
||||||
{
|
{
|
||||||
log.info("Installing proxy");
|
log.info("Installing proxy");
|
||||||
ProxySelectorRegex proxySelector = new ProxySelectorRegex();
|
ProxySelectorRegex proxySelector = new ProxySelectorRegex();
|
||||||
proxySelector.excludeHosts(ProxySelectorRegex.DEFAULT_EXCLUDED_HOSTS);
|
proxySelector.excludeHosts(ProxySelectorRegex.DEFAULT_EXCLUDED_HOSTS);
|
||||||
proxySelector.addProxy ("socket", new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 23232)));
|
proxySelector.addProxy ("socket", new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 23232)));
|
||||||
proxySelector.install();
|
proxySelector.install();
|
||||||
log.info("Finished Installing proxy");
|
log.info("Finished Installing proxy");
|
||||||
|
|
||||||
mailboxMapper = new InMemoryMailboxMapper(mailetContext);
|
mailboxMapper = new InMemoryMailboxMapper();
|
||||||
messageMapper = new InMemoryMessageMapper(mailetContext, null, new InMemoryUidProvider(), new InMemoryModSeqProvider());
|
messageMapper = new InMemoryMessageMapper(null, new InMemoryUidProvider(), new InMemoryModSeqProvider());
|
||||||
subscriptionMapper = new InMemorySubscriptionMapper();
|
subscriptionMapper = new InMemorySubscriptionMapper();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,15 +30,10 @@ import org.apache.james.mailbox.model.MailboxPath;
|
|||||||
import org.apache.james.mailbox.store.mail.MailboxMapper;
|
import org.apache.james.mailbox.store.mail.MailboxMapper;
|
||||||
import org.apache.james.mailbox.store.mail.model.Mailbox;
|
import org.apache.james.mailbox.store.mail.model.Mailbox;
|
||||||
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
|
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
|
||||||
import org.apache.mailet.MailetContext;
|
|
||||||
|
|
||||||
public class InMemoryMailboxMapper implements MailboxMapper<Long> {
|
public class InMemoryMailboxMapper implements MailboxMapper<Long> {
|
||||||
|
|
||||||
MailetContext mailetContext;
|
public InMemoryMailboxMapper() {
|
||||||
|
|
||||||
public InMemoryMailboxMapper(MailetContext mailetContext)
|
|
||||||
{
|
|
||||||
this.mailetContext = mailetContext;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,7 +44,6 @@ import org.apache.james.mailbox.store.mail.UidProvider;
|
|||||||
import org.apache.james.mailbox.store.mail.model.Mailbox;
|
import org.apache.james.mailbox.store.mail.model.Mailbox;
|
||||||
import org.apache.james.mailbox.store.mail.model.Message;
|
import org.apache.james.mailbox.store.mail.model.Message;
|
||||||
import org.apache.james.mailbox.store.mail.model.impl.SimpleMessage;
|
import org.apache.james.mailbox.store.mail.model.impl.SimpleMessage;
|
||||||
import org.apache.mailet.MailetContext;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -55,186 +54,171 @@ import core.util.Streams;
|
|||||||
|
|
||||||
public class InMemoryMessageMapper extends AbstractMessageMapper<Long>
|
public class InMemoryMessageMapper extends AbstractMessageMapper<Long>
|
||||||
{
|
{
|
||||||
private static final int INITIAL_SIZE = 8;
|
private static final int INITIAL_SIZE = 8;
|
||||||
Logger log = LoggerFactory.getLogger(InMemoryMessageMapper.class);
|
Logger log = LoggerFactory.getLogger(InMemoryMessageMapper.class);
|
||||||
MailetContext mailetContext;
|
|
||||||
|
|
||||||
public InMemoryMessageMapper(
|
public InMemoryMessageMapper(MailboxSession session, UidProvider<Long> uidProvider,
|
||||||
MailetContext mailetContext,
|
ModSeqProvider<Long> modSeqProvider) {
|
||||||
MailboxSession session, UidProvider<Long> uidProvider,
|
super(session, uidProvider, modSeqProvider);
|
||||||
ModSeqProvider<Long> modSeqProvider
|
}
|
||||||
)
|
|
||||||
{
|
|
||||||
super(session, uidProvider, modSeqProvider);
|
|
||||||
this.mailetContext = mailetContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<Long, Message<Long>> getMembershipByUidForMailbox(
|
private Map<Long, Message<Long>> getMembershipByUidForMailbox(Mailbox<Long> mailbox) {
|
||||||
Mailbox<Long> mailbox)
|
return new ConcurrentHashMap<Long, Message<Long>>(INITIAL_SIZE);
|
||||||
{
|
}
|
||||||
return new ConcurrentHashMap<Long, Message<Long>>(INITIAL_SIZE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#countMessagesInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#countMessagesInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
||||||
*/
|
*/
|
||||||
public long countMessagesInMailbox(Mailbox<Long> mailbox)
|
public long countMessagesInMailbox(Mailbox<Long> mailbox) throws MailboxException {
|
||||||
throws MailboxException
|
throw new MailboxException("not supported");
|
||||||
{
|
}
|
||||||
throw new MailboxException("not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#countUnseenMessagesInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#countUnseenMessagesInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
||||||
*/
|
*/
|
||||||
public long countUnseenMessagesInMailbox(Mailbox<Long> mailbox)
|
public long countUnseenMessagesInMailbox(Mailbox<Long> mailbox) throws MailboxException {
|
||||||
throws MailboxException
|
throw new MailboxException("not supported");
|
||||||
{
|
}
|
||||||
throw new MailboxException("not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#delete(org.apache.james.mailbox.store.mail.model.Mailbox,
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#delete(org.apache.james.mailbox.store.mail.model.Mailbox,
|
||||||
* org.apache.james.mailbox.store.mail.model.Message)
|
* org.apache.james.mailbox.store.mail.model.Message)
|
||||||
*/
|
*/
|
||||||
public void delete(Mailbox<Long> mailbox, Message<Long> message)
|
public void delete(Mailbox<Long> mailbox, Message<Long> message) throws MailboxException {
|
||||||
throws MailboxException
|
throw new MailboxException("not supported");
|
||||||
{
|
}
|
||||||
throw new MailboxException("not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#findInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox,
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#findInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox,
|
||||||
* org.apache.james.mailbox.model.MessageRange,
|
* org.apache.james.mailbox.model.MessageRange,
|
||||||
* org.apache.james.mailbox.store.mail.MessageMapper.FetchType, int)
|
* org.apache.james.mailbox.store.mail.MessageMapper.FetchType, int)
|
||||||
*/
|
*/
|
||||||
public Iterator<Message<Long>> findInMailbox(Mailbox<Long> mailbox,
|
public Iterator<Message<Long>> findInMailbox(Mailbox<Long> mailbox, MessageRange set, FetchType ftype, int max)
|
||||||
MessageRange set, FetchType ftype, int max) throws MailboxException
|
throws MailboxException
|
||||||
{
|
{
|
||||||
throw new MailboxException("not supported");
|
throw new MailboxException("not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessageUidsInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessageUidsInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
|
||||||
*/
|
*/
|
||||||
public List<Long> findRecentMessageUidsInMailbox(Mailbox<Long> mailbox)
|
public List<Long> findRecentMessageUidsInMailbox(Mailbox<Long> mailbox) throws MailboxException {
|
||||||
throws MailboxException
|
throw new MailboxException("not supported");
|
||||||
{
|
}
|
||||||
throw new MailboxException("not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.MessageMapper#findFirstUnseenMessageUid(org.apache.james.mailbox.store.mail.model.Mailbox)
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#findFirstUnseenMessageUid(org.apache.james.mailbox.store.mail.model.Mailbox)
|
||||||
*/
|
*/
|
||||||
public Long findFirstUnseenMessageUid(Mailbox<Long> mailbox)
|
public Long findFirstUnseenMessageUid(Mailbox<Long> mailbox) throws MailboxException {
|
||||||
throws MailboxException
|
throw new MailboxException("not supported");
|
||||||
{
|
}
|
||||||
throw new MailboxException("not supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deleteAll()
|
public void deleteAll() {
|
||||||
{
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing
|
* Do nothing
|
||||||
*/
|
*/
|
||||||
public void endRequest()
|
public void endRequest() {
|
||||||
{
|
// Do nothing
|
||||||
// Do nothing
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.AbstractMessageMapper#copy(org.apache.james.mailbox.store.mail.model.Mailbox,
|
* (non-Javadoc)
|
||||||
* long, long, org.apache.james.mailbox.store.mail.model.Message)
|
*
|
||||||
*/
|
* @see org.apache.james.mailbox.store.mail.MessageMapper#move(org.apache.james.mailbox.store.mail.model.Mailbox,
|
||||||
protected MessageMetaData copy(Mailbox<Long> mailbox, long uid,
|
* org.apache.james.mailbox.store.mail.model.Message)
|
||||||
long modSeq, Message<Long> original) throws MailboxException
|
*/
|
||||||
{
|
@Override
|
||||||
throw new MailboxException("not supported");
|
public MessageMetaData move(Mailbox<Long> mailbox, Message<Long> original) throws MailboxException {
|
||||||
}
|
throw new UnsupportedOperationException("Not implemented - see https://issues.apache.org/jira/browse/IMAP-370");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.james.mailbox.store.mail.AbstractMessageMapper#save(org.apache.james.mailbox.store.mail.model.Mailbox,
|
* @see org.apache.james.mailbox.store.mail.AbstractMessageMapper#copy(org.apache.james.mailbox.store.mail.model.Mailbox,
|
||||||
* org.apache.james.mailbox.store.mail.model.Message)
|
* long, long, org.apache.james.mailbox.store.mail.model.Message)
|
||||||
*/
|
*/
|
||||||
protected MessageMetaData save(Mailbox<Long> mailbox, Message<Long> message)
|
protected MessageMetaData copy(Mailbox<Long> mailbox, long uid, long modSeq, Message<Long> original)
|
||||||
throws MailboxException
|
throws MailboxException
|
||||||
{
|
{
|
||||||
|
throw new MailboxException("not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.apache.james.mailbox.store.mail.AbstractMessageMapper#save(org.apache.james.mailbox.store.mail.model.Mailbox,
|
||||||
|
* org.apache.james.mailbox.store.mail.model.Message)
|
||||||
|
*/
|
||||||
|
protected MessageMetaData save(Mailbox<Long> mailbox, Message<Long> message) throws MailboxException {
|
||||||
// if (new Random().nextInt() % 3 == 0)
|
// if (new Random().nextInt() % 3 == 0)
|
||||||
// throw new MailboxException("Artificially simulating save failure");
|
// throw new MailboxException("Artificially simulating save failure");
|
||||||
|
|
||||||
SimpleMessage<Long> copy = new SimpleMessage<Long>(mailbox, message);
|
SimpleMessage<Long> copy = new SimpleMessage<Long>(mailbox, message);
|
||||||
|
|
||||||
copy.setUid(message.getUid());
|
copy.setUid(message.getUid());
|
||||||
copy.setModSeq(message.getModSeq());
|
copy.setModSeq(message.getModSeq());
|
||||||
getMembershipByUidForMailbox(mailbox).put(message.getUid(), copy);
|
getMembershipByUidForMailbox(mailbox).put(message.getUid(), copy);
|
||||||
|
|
||||||
log.info("save message begin");
|
log.info("save message begin");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UserInformation user =
|
UserInformation user =
|
||||||
UserInformationFactory.getInstance().getUserInformation(mailbox.getUser());
|
UserInformationFactory.getInstance().getUserInformation(mailbox.getUser());
|
||||||
|
|
||||||
if (mailbox.getName().equalsIgnoreCase("INBOX"))
|
if (mailbox.getName().equalsIgnoreCase("INBOX"))
|
||||||
user.handleIn(copy.getFullContent());
|
user.handleIn(copy.getFullContent());
|
||||||
else
|
else
|
||||||
if (mailbox.getName().equalsIgnoreCase("SENT"))
|
if (mailbox.getName().equalsIgnoreCase("SENT"))
|
||||||
user.handleOut(copy.getFullContent());
|
user.handleOut(copy.getFullContent());
|
||||||
}
|
}
|
||||||
catch (Throwable e)
|
catch (Throwable e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UserInformationFactory.getInstance().recordFailure(
|
UserInformationFactory.getInstance().recordFailure(
|
||||||
mailbox.getUser(), e);
|
mailbox.getUser(), e);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// total failure to log the exception
|
// total failure to log the exception
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
log.info("user information factory failure." + ex.toString()
|
log.info("user information factory failure." + ex.toString()
|
||||||
+ " originating from " + e.toString());
|
+ " originating from " + e.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new MailboxException("Failed to deliver message");
|
throw new MailboxException("Failed to deliver message");
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
log.info("save message end");
|
log.info("save message end");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SimpleMessageMetaData(message);
|
return new SimpleMessageMetaData(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing
|
* Do nothing
|
||||||
*/
|
*/
|
||||||
protected void begin() throws MailboxException
|
protected void begin() throws MailboxException {
|
||||||
{
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing
|
* Do nothing
|
||||||
*/
|
*/
|
||||||
protected void commit() throws MailboxException
|
protected void commit() throws MailboxException {
|
||||||
{
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do nothing
|
* Do nothing
|
||||||
*/
|
*/
|
||||||
protected void rollback() throws MailboxException
|
protected void rollback() throws MailboxException {
|
||||||
{
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Long, MessageMetaData> expungeMarkedForDeletionInMailbox(
|
public Map<Long, MessageMetaData> expungeMarkedForDeletionInMailbox(
|
||||||
final Mailbox<Long> mailbox, MessageRange set)
|
final Mailbox<Long> mailbox, MessageRange set)
|
||||||
throws MailboxException
|
throws MailboxException {
|
||||||
{
|
throw new MailboxException("not supported");
|
||||||
throw new MailboxException("not supported");
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user