lviggiano/owner — pull request #70 by pgaschuetz (2014-02-24 16:35:58+00:00)
Title: Support arbitrary sources for loading properties from

Hi,

in reference to #14

I would like to propose the attached pull request to support loading properties from arbitrary sources.
In detail, the pull request:
* changed all internal occurrences of java.net.URL to java.net.URI
* refactored some logic from org.aeonbits.owner.loaders.Loader into a new [AbstractFileBasedLoader](https://github.com/pgaschuetz/owner/blob/9c8a05589691254075169aadc43d2067d842605c/owner/src/main/java/org/aeonbits/owner/loaders/AbstractFileBasedLoader.java)
* Introduced [AbstractNamedCustomLoader](https://github.com/pgaschuetz/owner/blob/9c8a05589691254075169aadc43d2067d842605c/owner/src/main/java/org/aeonbits/owner/loaders/AbstractNamedCustomLoader.java), which can be easily extended to support pretty much any source of configurations

see [CustomNamedLoaderTest](https://github.com/pgaschuetz/owner/blob/9c8a05589691254075169aadc43d2067d842605c/owner/src/test/java/org/aeonbits/owner/customloader/CustomNamedLoaderTest.java) for a demonstration

There is definitely room for improvement, especially HotReloading is not implemented yet, but this should be relatively trivial by moving the WatchableFile logic into Loader

Apart from some minor internal API changes, this pull request should not change any existing functionality. All tests run fine.

Please let me know what you think.