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

Reply via email to