package de.skuzzle.polly.core.internal.conversations;
import de.skuzzle.polly.core.internal.ShutdownManagerImpl;
import de.skuzzle.polly.core.moduleloader.AbstractProvider;
import de.skuzzle.polly.core.moduleloader.ModuleLoader;
import de.skuzzle.polly.core.moduleloader.SetupException;
import de.skuzzle.polly.core.moduleloader.annotations.Module;
import de.skuzzle.polly.core.moduleloader.annotations.Provide;
import de.skuzzle.polly.core.moduleloader.annotations.Require;
@Module(
requires = @Require(component = ShutdownManagerImpl.class),
provides = @Provide(component = ConversationManagerImpl.class))
public class ConversationManagerProvider extends AbstractProvider {
public ConversationManagerProvider(ModuleLoader loader) {
super("CONVERSATION_MANAGER_PROVIDER", loader, true); //$NON-NLS-1$
}
@Override
public void setup() throws SetupException {
ConversationManagerImpl conversationManager = new ConversationManagerImpl();
this.provideComponent(conversationManager);
ShutdownManagerImpl shutdownManager = this.requireNow(
ShutdownManagerImpl.class, true);
shutdownManager.addDisposable(conversationManager);
}
}