Default implementation of IPropertiesFactory is quite useful. But it would be a great improvement, for developers who extend this class, to make the loading of properties more customizable.
Now, for one little adaptation of algorithm (e.g. custom custom retrieving ValueMap from resourceStream, or making additional operation while adding to watcher), developer needs to essentially copy all 3 methods:
and adapt them.
If would be good idea, to make last 2 methods (laodFromLoader and addToWatcher) protected, instead of private.