Skip to content

Commit

Permalink
JAMES-2340 Rely on generic listener registration for SpamAssassinList…
Browse files Browse the repository at this point in the history
…ener
  • Loading branch information
chibenwa committed Mar 28, 2018
1 parent b0cb406 commit fa7bd96
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,19 @@
package org.apache.james.modules.spamassassin;

import java.io.FileNotFoundException;
import java.util.List;

import javax.inject.Singleton;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.spamassassin.SpamAssassinConfiguration;
import org.apache.james.mailbox.spamassassin.SpamAssassinListener;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.utils.ConfigurationPerformer;
import org.apache.james.utils.PropertiesProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;
Expand All @@ -54,35 +46,7 @@ public class SpamAssassinListenerModule extends AbstractModule {
protected void configure() {
bind(SpamAssassinListener.class).in(Scopes.SINGLETON);

Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(SpamAssassinListenerConfigurationPerformer.class);
}

@Singleton
public static class SpamAssassinListenerConfigurationPerformer implements ConfigurationPerformer {
private final SpamAssassinListener spamAssassinListener;
private final StoreMailboxManager storeMailboxManager;

@Inject
public SpamAssassinListenerConfigurationPerformer(SpamAssassinListener spamAssassinListener,
StoreMailboxManager storeMailboxManager) {
this.spamAssassinListener = spamAssassinListener;
this.storeMailboxManager = storeMailboxManager;
}

@Override
public void initModule() {
try {
MailboxSession session = null;
storeMailboxManager.addGlobalListener(spamAssassinListener, session);
} catch (MailboxException e) {
Throwables.propagate(e);
}
}

@Override
public List<Class<? extends Configurable>> forClasses() {
return ImmutableList.of();
}
Multibinder.newSetBinder(binder(), MailboxListener.class).addBinding().to(SpamAssassinListener.class);
}

@Provides
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import java.util.List;
import java.util.Set;

import javax.inject.Named;

import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
Expand All @@ -42,7 +44,6 @@
import com.google.inject.Scopes;
import com.google.inject.Singleton;
import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Named;

public class DefaultEventModule extends AbstractModule {

Expand Down

0 comments on commit fa7bd96

Please sign in to comment.