(From my email response)
Ok, i'll try one last time to explain...
Client client = ClientBuilder.newBuilder().register(MyFeature.class).build();
Next this happens:
1) client.getConfiguration().getInstances() will return an instance MyFilter
2) MyFeature is enabled.
So, if you implement withConfig() with no special implementation specific code, just using the Configuration interface, there is no way for it to know that MyFilter was registered by MyFeature. So withConfig() would do:
And you'd have myFilterInstance registered twice. MyFeature may be written with the assumption that instances it creates and registered are not shared and the above scenario may create unforseen problems and bugs.
I'm fine with having to write a proprietary, implementation specific interface to solve this problem. I just thought I'd make it clear that Configuration as-is, cannot be solely used to implement withConfig().