cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Huss <johnth...@gmail.com>
Subject Re: Cayenne 4.1M1-snapshot upgrade experience
Date Wed, 13 Sep 2017 14:13:07 GMT
On Wed, Sep 13, 2017 at 3:27 AM Nikita Timofeev <ntimofeev@objectstyle.com>
wrote:

> Hi John,
>
> Where exactly do you see this detection failure, is it Modeler DB
> migration tool?
>

This is in tomcat after the ServerRuntime is created from the builder.
Here's a minimal example:

ServerRuntime runtime = ServerRuntime.builder()

.addConfigs("cayenne-MyProject.xml").build();


MergerTokenFactory factory = runtime
.getInjector().getInstance(MergerTokenFactory.class);

assert factory instanceof MySQLMergerTokenFactory;



> And how do you define your data source (via AutoAdapter or MySQLAdapter)?
>

I have custom DataSourceFactory specified in the cayenne project, but no
override of the adapter (for MySQL), so it is using AutoAdapter.


>
> On Tue, Sep 12, 2017 at 11:45 PM, John Huss <johnthuss@gmail.com> 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 <johnthuss@gmail.com> 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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message