package com.netflix.fabricator.archaius;

import javax.inject.Singleton;

import com.google.inject.AbstractModule;
import com.google.inject.multibindings.MapBinder;
import com.netflix.fabricator.ComponentConfigurationResolver;
import com.netflix.fabricator.TypeConfigurationResolver;

@Singleton
public class ArchaiusConfigurationModule extends AbstractModule {
    @Override
    protected void configure() {
        MapBinder.newMapBinder(binder(), String.class, ComponentConfigurationResolver.class);
        bind(TypeConfigurationResolver.class).to(ArchaiusTypeConfigurationResolver.class);
    }
}

@@ -593,10 +593,339 @@
 ;%0A    %7D%0A
+    %0A    // These implementations of hashCode and equals guarantee that Guice will dedup modules that installed multiple times%0A    @Override%0A    public int hashCode() %7B%0A        return getClass().hashCode();%0A    %7D%0A %0A    @Override%0A    public boolean equals(Object other) %7B%0A        return getClass().equals(other.getClass());%0A    %7D%0A
 %7D%0A

Make ArchaiusConfigurationModule dedupable