Interposed a main dir under src, and modified build.xml to track, without apparent issue.
First pass at Build.scala. Updated .gitignore to ignore target.
Added dependencies. The library now builds.
Segregated tests into src/test/java, and updated build to run JUnit. Concurrent running of tests revealed classloading deadlocks between config and log packages. Enforced hiding of log behind MConfig facade [BREAKS OLD API!] to prevent these. Added a delayed static initialization to MLog, that I will try to back-out (I think hiding everything behind MConfig will be sufficient to prevent these never-observed-in-the-wild deadlocks).
Renamed a config test case (which had already been modified to use the MConfig facade. Backed-off on the non-publication of MultiPropertiesConfig; will have to refactor a bit. Undid the delayed initialization of MLog. Use of a static initializer is simple, and should be deadlock free if (non-log) clients stick to the MConfig facade.
Refactored MultiPropertiesConfig into an interface (that keeps the name) and a package-visibility-only utility class (ConfigUtils), with a small hole punched in for the log package via MLogConfigSource.
In a rare concession to practicality, backed off on conversion of MultiPropertiesConfig to interface, reverted it to abstract class and put enough interface to support old (common) users via now deprecated methods.
Removed old ant build.xml / build.properties