Hi all, I'm really looking forward to drop old modules as I don't really sure if they are still really usable after all major changes to the core we had for the past years. So this is more than welcomed changed for me. Id like to add OSGi support to that removal list as well.
I have some concerns however regarding points 0 and 7. - requiring JDK 17 version may limit adoption, as I believe there are many projects that can't update to Java 17 yet and there are no immediate benefits that I could see for Cayenne (though I like the idea of using fresh Java). But upgrading to 11 could be good as it will allow to drop some ugly hacks at least in the Modeler. - dropping callbacks will require substantial effort for the end users to update their code, so at least we'll need to think how to automate this process. Another idea I got is that having these callback in the model could give more synergy with the code generation, especially after we push it's usability a bit in the modeler (I've got some prototypes already for this). On Sun, Jul 3, 2022 at 2:17 PM Andrus Adamchik <aadamc...@gmail.com> wrote: > > 8. Modeler DataNode configuration should be drastically simplified: > > * Password encoder should be externalized. If you need a custom password > storage mechanism, use your own DataSource, such as Hikari, and write your > own code to obtain the password outside Cayenne. E.g. we don't support (nor > should we support it) the most common way of modern password resolving - > cloud secrets managers. > * Adapter seclection can probably be moved to the main (and only) tab > * Get rid of JNDI DataSource (let the users provide it as a custom factory) > * Only leave the selection of "Provided by Cayenne" and "Custom DataSource" > > This is in line with our long-term direction towards CayenneModeler being an > OR mapping tool, maximally free of deployment details. > > Andrus > > > On Jul 1, 2022, at 6:11 PM, Andrus Adamchik <aadamc...@gmail.com> wrote: > > > > Hi folks, > > > > So with 4.2 being almost GA, it is about time to start discussing the next > > major release. I think it should be 5.0 (not 4.3), and we would modernize > > things across the board. Let me start with a list of things we can clean > > up, and I'll follow up with new feature ideas in a separate thread. So... > > > > 0. Switch to Java 17. About time... > > > > 1. [Done by Nikita] Remove OpenBaseAdapter > > > > 2. [Done by Nikita] Remove cayenne-dbcp2, cayenne-joda > > > > 3. Remove ROP (cayenne-client, cayenne-client-jetty, cayenne-protostuff, > > cayenne-rop-server, ROP modeler pieces, docs). It is untenable to support > > it anymore, and is a constant source of CVE's. Most importantly, from what > > I can tell, there are no users left for this particular technology. > > Removing it would allow us to collapse ObjectContext inheritance hierarchy > > among other things. > > > > 4. Remove object clustering transports (cayenne-jgroups, cayenne-jms, > > cayenne-xmpp). I don't think anyone uses them. Also these transport > > protocols are not particularly popular these days. Whoever needs them, can > > easily maintain their own fork. > > > > 5. Remove cayenne-web. It provides a very specific recipe for integration > > with servlets via ThreadLocals. Kinda old-school. I'd rather see a > > SpringBoot example as a separate project somewhere. (And of course we > > already have Bootique examples available). > > > > 6. Remove deprecated SelectQuery. ObjectSelect is a full replacement. There > > are more query improvements that I have in mind, but this one is a no > > brainer. > > > > 7. Remove entity callbacks from the Modeler and XML. Only annotated > > callbacks will be supported. > > > > Comments? > > > > Andrus > -- Best regards, Nikita Timofeev