Now that I gave it some thought, I actually like the idea of a system modular by default, but including cayenne-all.jar on top of that. It has none of the drawbacks of our old “synthetic” cayenne-server and cayenne-client. More practically, turns out that cleanly splitting the core and server classes is much more effort than I am ready to undertake now. So we ended up with these modules:
cayenne-di.jar cayenne-server.jar => cayenne-di cayenne-client.jar => cayenne-di, cayenne-server I guess I’ll leave it at that until a later time when we can cut smaller modules out of cayenne-server. Andrus On Nov 17, 2013, at 12:49 AM, Andrus Adamchik <[email protected]> wrote: > On Nov 17, 2013, at 12:27 AM, Adrian A. <[email protected]> wrote: > >>> 1. Monolithic cayenne.jar for regular apps, for ROP clients, for >>> CayenneModeler >>> 2. Partial modularity - Client/server split between the modules, with >>> separate DI and backend-indepdendent “core” : >>> ... >>> Anyways, these are our options… Feel free to comment, while I continue my >>> refactoring. >> What about offering both? The modules, but also a "cayenne-all.jar" >> (or simply "cayenne.jar") ? >> >> >> Adrian > > This will take us back to aggregation of multiple modules into one. It was > not a pretty picture, so now I am *hoping* we can align the source modules > with the binaries that we release. However this can be an option for > non-maven users I guess. > > A.
