cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikita Timofeev <>
Subject Re: Cayenne 4.1M1-snapshot upgrade experience
Date Wed, 13 Sep 2017 08:26:54 GMT
Hi John,

Where exactly do you see this detection failure, is it Modeler DB
migration tool?
And how do you define your data source (via AutoAdapter or MySQLAdapter)?

On Tue, Sep 12, 2017 at 11:45 PM, John Huss <> wrote:
> Also, the correct MergerTokenFactory for my DbAdapter is not longer
> automatically detected (both for Postgres and MySQL).  I had to add this to
> my ServerRuntime module to fix it.
> binder.bind(MergerTokenFactory.class).to(PostgresMergerTokenFactory.class);
> On Thu, Aug 17, 2017 at 9:21 AM John Huss <> wrote:
>> I just got done upgrading several projects to use the latest from
>> master. I am very excited about the memory usage improvements in this
>> version.
>> I wanted to relay my experience along with some of the problems I had in
>> case it would be helpful to others or allow this process to be smoothed
>> out.  We were previously on a version of master from about two years back.
>> I think most of these issues are fairly recent however.
>> - Can't build without running the tests (mvn clean install
>> -Dmaven.test.skip=true) at least once successfully due to missing maven
>> dependency for cayenne.project (which is the second thing built). I don't
>> know why this depends on the tests.
>> - Can't successfully run tests without a newer Java 1.8 SDK. I had a JDK
>> 1.8.0 from 2014 (the first release?) that didn't work (mockito errors).
>> Upgrading to the newest JDK fixed the problem.
>> - new ServerRuntime(...) no longer works because my custom DbAdapter
>> subclass would not get the new ValueObjectTypeRegistry parameter injected
>> automatically. Switching to ServerRuntime.builder() fixed the problem.
>> - CayenneFilter chooses a different name for the DataDomain when you load
>> multiple projects now (is the name the constant "cayenne"?). I use this
>> name in a lot of places to set DB connection information so I don't want to
>> change it. Unfortunately CayenneFilter does not provide a way to override
>> the DataDomain's name, so I had to just stop using CayenneFilter. Using
>> runtime.getDataDomain.setName("abc") doesn't work because the DB has
>> already been connected to at that point. CayenneFilter should take an
>> init-param to set the name instead.
>> - Cayenne project .xml files need to be upgraded by running the Modeler
>> and re-saving them first.
>> - I had previously set the PK attribute's generation method to Generated
>> for me (using Postgres). Since Postgres didn't used to support this with
>> Cayenne, this used to fall back to the default behavior
>> "Cayenne-generated". Now that this IS supported everything fails since my
>> database isn't set up to do this yet. I switched these back to the default
>> "Cayenne-generated" method of generating PKs. Not a Cayenne problem, but
>> something to be aware of.
>> - The SQL logger's name has changed from CommonsJdbcEventLogger to just
>> JdbcEventLogger, so I had to update places where I was changing the logging
>> level (mostly in properties files).
>> John

Best regards,
Nikita Timofeev

View raw message