makes the files closer to the svn original so easier to track changes

This commit is contained in:
Timothy Prepscius 2013-09-01 23:45:17 -04:00
parent 30a7aca7ad
commit 1f6c3968aa
4 changed files with 152 additions and 179 deletions

View File

@ -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>

View File

@ -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();
} }

View File

@ -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;
} }
/** /**

View File

@ -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"); }
}
} }