I came across a nice small web request framework for Java: Spark. The API looks nice and promising, but the library bundle itself is pretty strange. Leave alone the fact that it proposes using snapshot artifacts as dependencies. Leave alone the fact that it uses log4j for logging (libraries tend to use jcl or slf4j nowadays), and System.out.println sometimes. But it bundles its own log4j.properties in spark-xxx.jar. It took me an hour to investigate why my project would complain of log4j configuration when log4j.properties is definitely present in my classpath. -Dlog4j.debug=true gave the answer, log4j confessed that it had loaded log4j.properties from spark jar.
I wonder if this (being a library and using log4j and bundling log4j.properties) has some motivation, or if it is just lame.