Re: UI toolkit for the future Modeler

Aristedes Maniatis <[email protected]>
Newsgroups gmane.comp.java.cayenne.devel
Message-ID <[email protected]>
On 21/12/21 4:11am, Andrus Adamchik wrote:
>> Is it worth examining DBeaver to see whether Cayenne functionality could be added on top of the existing ERD features?https://dbeaver.com/docs/wiki/ER-Diagrams
> While I use DBeaver almost daily and appreciate all the work that went into it and shared at no cost, the UI is horrible (esp on the Mac). The Eclipse-style widgets, bad responsiveness and modality everywhere are driving me crazy. E.g. you reopen DBeaver with 5 tabs from a previous session, that are connected to a DB that is no longer there, and you get exactly 5 modal error popups that you need to dismiss manually.


I think its important to target what people will find useful, rather 
than UI details which will one day be fixed. It is good to go to where 
the users are... and right now they are using tools like Intellij or 
DBeaver.

An Intellij plugin need not reproduce the entire Cayenne modeler. Even a 
few cgen integrations or annotation helpers could expand the visibility 
of Cayenne. Could Cayenne modeler be split into a set of services which 
could then be exposed in different front-ends?


Let me start by asking a basic question. Do we see Modeler as just a 
tool which parses and writes an XML file, or does it do more? What is 
its relationship (as a product, not technically) with cgen, mvn/gradle 
plugins? Could it import Hibernate annotations so that users have an 
easier path to try Cayenne? How should it interact with a DB?

DBeaver can already read a DB schema and output it to sql, json, etc. 
Would a Cayenne 'plugin' just allow it to output that schema to Cayenne XML?

What utility could we give Intellij understanding Cayenne better? Could 
it understand our annotations and allow users to click through to entity 
events from the entities themselves?


So first let's agree on what Modeler is today and what it should be in 
the future.



>
>> If Modeler changed to another language or UI library, could it leverage that to better integrate with other tooling?
> I may have one such integration scenario I care about myself - integration with Liquibase... I no longer use a permanent local DB to run my code. My APIs and jobs are tested via JUnit, Testcontainers, and a Docker-based transitory DB, and I never ever check them manually. But I still forced to maintain a semi-permanent local DB to do "DB Import" for Cayenne, and this creates extra friction. Allowing CayenneModeler to create its own transitory schema with Docker/Testcontainers/Liquibase for the purpose of DB Import would be extremely cool.


Phabricator has a really nice feature. When you run a new version in 
production it compares the real database with the model it has, and 
automatically fixes the production database to look the way it should. 
Sure that's not possible when you need to migrate data to a new schema, 
but for verifying and adding indexes or simply adding or dropping 
columns, its quite nice.

Liquibase is great, but its only good for applying a set of rules and 
not for getting the database into a known state. Some integration 
between liquibase (transition rules) and cayenne (a known db state) 
would be great.



Ari
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.