Odd stuff are a part of Java in all levels.. But being a seasoned java guy, i can say that you don't need to bear the ugliness. You can just get the plethora of high quality libraries and all the good JVM performance and reject the weird AbstractSomethingFactoryLocatorFactoryBean shit...