Would it be wise to add something like “public static void watch(CuratorFramework,String path,AcquisitionListener cw,…)” to each of these classes to achieve this behavior inside the library in a way that is consistent with the implementation of each recipe? I know it is an additional contract to support, but I think it would add value. I think adding methods to the various classes would be the best approach. You might be able to have a general contract via an interface that each of the recipes implements with a common listener interface.
-JZ
