package com.ibm.sbt.opensocial.domino.modules;
import org.apache.shindig.auth.SecurityTokenCodec;
import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.http.HttpFetcher;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import com.google.inject.AbstractModule;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.ibm.sbt.opensocial.domino.config.ExtensionPointContainerConfig;
import com.ibm.sbt.opensocial.domino.container.ContainerExtPointManager;
import com.ibm.sbt.opensocial.domino.container.ContainerExtPointManagerProvider;
import com.ibm.sbt.opensocial.domino.internal.DominoHttpFetcher;
import com.ibm.sbt.opensocial.domino.security.DominoSecurityTokenCodec;
/**
* Guice module the injects default bindings for Domino.
*
*/
public class DominoModule extends AbstractModule {
@Override
protected void configure() {
bind(ContainerConfig.class).to(ExtensionPointContainerConfig.class);
bind(SecurityTokenCodec.class).to(DominoSecurityTokenCodec.class);
bind(ContainerExtPointManager.class).toProvider(ContainerExtPointManagerProvider.class);
bind(IExtensionRegistry.class).toProvider(ExtensionRegistryProvider.class);
bind(HttpFetcher.class).to(DominoHttpFetcher.class);
}
/**
* Simple provider class to inject instances of {@link org.eclipse.core.runtime.IExtensionRegistry}.
*
*/
@Singleton
public static class ExtensionRegistryProvider implements Provider<IExtensionRegistry> {
@Override
public IExtensionRegistry get() {
return Platform.getExtensionRegistry();
}
}
}