On Wed, Sep 13, 2017 at 3:27 AM Nikita Timofeev <ntimof...@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 <johnth...@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 <johnth...@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 >