Hello,
As part of my documentation project, I am starting to turn my attention towards the code itself. I am trying to understand how the system works. I’ll be honest: it’s not an easy task! I think it ought to be made a lot easier thanks to some refactoring, but I’ll save that for another email. To understand the system better, I need to take a step back and understand Guice. I am learning about it now. So far, it looks quite easy to understand and use (at least for me because as a long-time OSGi user I understand very well the concepts of DI, api/impl separation, services, etc.). I can understand very well the motivation for using a framework like Guice, and I think it should help me to understand what is going on in the system. But again, I digress, so I’ll leave this for another email. For now, my questions are, in the context of Apache James, about Guice vs. Spring. Why are there two frameworks (both Guice AND Spring) instead of just one? Don’t they basically accomplish the same thing? My understanding is that James started out with just Spring. Then along the way it was decided to switch to Guice. So why wasn’t Spring removed? It seems overly complex and unnecessary to me to use two DI frameworks simultaneously. Should I even bother learnings about Spring? I would rather not have to spend the time to learn Spring just to understand James. (I have quite happily avoided Spring all these years, and ideally would like to remain ignorant.) Would it be safe for me to avoid this? Would not knowing Spring hinder my ability to use James and wire up my own server? I think Guice is easy enough that it would be worthwhile for me to learn it, even if it’s just for James. On that note, what are the plans going forward regarding this topic? Is there any intention to remove Spring? (It seems to me that Guice is now the “preferred” way to use James.) Thanks! =David --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org