Congratulations on the release!

Being an extremely lacking contributor to Cayenne in the code sense, I decided 
this time I could at least contribute a little testing so I've been running 5.0 
in production on a couple of projects for a few weeks (mostly personal projects 
where no one dies if anything bad happens but still a few hundred active users, 
quite some traffic/load and a few million DB records to play with). Didn't 
mention this sooner since, well, it's kind of stupid — and I didn't want to 
accidentally cause you any unnecessary subconscious second thoughts about 
moving fast and breaking stuff. But now I can at least claim I'll be sticking 
with M1 :p.

The migration to 5.0 was easy, mostly just upgrade model and class templates 
and then a little manual find/replace to accommodate the new class/interface 
structure. The systems have been running great (on JDK 22) with nothing to 
report, really. And as someone that's far too long stuck with 4.1 (for…reasons) 
the new Property APIs, and just all the added query/expression/SQL function 
features in general, are an absolute joy to have and use (and have allowed me 
to throw out more than a few SQLSelects). I've been working through the 4.2 and 
5 release notes trying out new features/improvements and using them to rewrite 
older stuff, and I've had quite a few "oh, this is nice"-moments. Having the 
well written, detailed release notes really is a great help during a process 
like this so thanks for that.

I'll do a more detailed writeup at some point. But in short; 5.0 is really 
making me all re-excited about Cayenne. Thanks for all the work you're doing 
and again, congrats!

- hugi



> On 27 Sep 2024, at 21:23, Andrus Adamchik <aadamc...@gmail.com> wrote:
> 
> A belated, but nonetheless exciting announcement. Our team recently released 
> the first milestone of Cayenne 5.0.
> 
> There are more than a hundred Jiras in the release notes, so it is easy to 
> get lost 🙃 But the main direction is simplifying the structure of the 
> framework, now that we removed the previously deprecated ROP piece (the 
> multi-tier stack). Suddenly, we could switch to sane module and class naming, 
> flatten inheritance hierarchies of the core classes, and so on. Some examples:
> 
> - "cayenne-server" is now "cayenne"
> - CayenneDataObject is PersistentObject (and a generic variant - 
> GenericPersistentObject)
> - ServerRuntime is CayenneRuntime
> 
> Other notable changes and new features:
> 
> * Min Java version supported is 11 (should've probably gone with 21 :))
> * SELF property in class generation templates
> * Unified class generation UI (also a result of ROP removal)
> * Direct support for "(not) exists" expressions (it was somewhat confusing in 
> 4.2)
> * ANY, ALL subqueries and "case when" expressions
> * Per-project disabling of validation rules
> 
> .. and a number of other smaller things. 
> 
> Enjoy!
> 
> Andrus
> 
> https://cayenne.apache.org/download/
> https://cayenne.apache.org/2024/09/cayenne-50m1-released/
> 
> 
> 

Reply via email to