On Sun, 2020-05-17 at 14:32 +0900, David Leangen wrote: > Hello, > >
[...] > Why are there two frameworks (both Guice AND Spring) instead of just > one? Don’t they basically accomplish the same thing? Of course, they even share annotations with `javax.inject`. It's two implementations for a same goal. > 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. Because Spring in its xml version allows to customize heavily the server by changing any class, something we want to get rid of with Guice. However, we did't want to remove Spring until we offer our users a way to implement their business requirements using the new system. For example it's still complex to include a JDBC driver in Guice version for now. > > Should I even bother learnings about Spring? No. > 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? Yes. > Would not knowing Spring hinder my ability to use James and wire up > my own server? No. > 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.) > We still lack some customizations capabilities. @Benoit can you list them? Cheers, -- Matthieu Baechler --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org