@Override
    @SuppressWarnings("unchecked")
    public <T> T getFeature(final Class<T> type, final Distribution.Method method) {
        if(type == Purge.class) {
            return (T) new SwiftDistributionPurgeFeature(session, regionService);
        }
        if(type == Index.class) {
            return (T) this;
        }
        if(type == DistributionLogging.class) {
            return (T) this;
        }
        return null;
    }
@Test
    public void testFeatures() throws Exception {
        final DistributionConfiguration configuration = new SwiftDistributionConfiguration(session);
        assertNotNull(configuration.getFeature(Purge.class, Distribution.DOWNLOAD));
        assertNotNull(configuration.getFeature(Index.class, Distribution.DOWNLOAD));
        assertNotNull(configuration.getFeature(DistributionLogging.class, Distribution.DOWNLOAD));
        assertNull(configuration.getFeature(Cname.class, Distribution.DOWNLOAD));
    }