Ah, I see… It sure looks like we should be going DataNode-less too. Any caveats or tricks? Isn’t it just a question of deleting the datanode in the project, adding the missing configuration in my ServerRuntimeBuilder and carry on with my life?
- hugi > On 23. jan. 2016, at 17:11, Andrus Adamchik <and...@objectstyle.org> wrote: > > There's a bug that we've seen with this, just haven't got to the bottom of it > yet. > > All I know is that overriding the strategy does not if another strategy is > already present in the XML and sometimes (always?) the Modeler sticks the > default strategy in there. As I am currently in favor of DataNode-less > projects, I don't ever see it myself, but it was reported a few times by > others. Need to open a Jira I guess and create a fix. > > Andrus > > >> On Jan 23, 2016, at 5:47 PM, Michael Gentry <mgen...@masslight.net> wrote: >> >> Hi Hugi, >> >> This worked for me in 3.1: >> >> // Use a custom Cayenne server runtime. >> serverRuntime = new ServerRuntime("my cayenne model", new >> CayenneExtrasModule())); >> >> ... >> >> /** >> * Custom Cayenne DI module. >> */ >> private static class CayenneExtrasModule implements Module >> { >> @Override >> public void configure(Binder binder) >> { >> // Change the SchemaUpdateStrategy to create the DB schema for >> unit >> // testing instead of using the model's default which assumes an >> // existing schema. >> >> binder.bind(SchemaUpdateStrategy.class).to(CreateIfNoSchemaStrategy.class); >> } >> } >> >> >> On Sat, Jan 23, 2016 at 7:33 AM, Hugi Thordarson <h...@karlmenn.is> wrote: >> >>> Hi Michael, Andrus and Savva. >>> >>> Thanks a lot for all the help with this :). The arguments to the >>> ServerRuntimeBuilder are exactly what I wanted :). >>> >>> One thing though: Setting the SchemaUpdateStrategy in code (in the >>> ServerRuntimeBuilder) doesn’t work for me. Works great if I set it in the >>> cayenne modeler, but if the modeler has the default >>> “SkipSchemaUpdateStrategy” selected, changing it in the >>> ServerRuntimeBuilder doesn’t seem to do anything. Any ideas? >>> >>> This is how I’m currently initializing my server runtime >>> >>> public static ServerRuntime serverRuntime() { >>> if (_serverRuntime == null) { >>> _serverRuntime = new ServerRuntimeBuilder() >>> .addConfig("cayenne-project.xml") >>> .addModule(binder -> >>> binder.bind(SchemaUpdateStrategy.class).to(CreateIfNoSchemaStrategy.class)) >>> .jdbcDriver("org.h2.Driver") >>> .url("jdbc:h2:~/h2-testing") >>> .build(); >>> } >>> >>> return _serverRuntime; >>> } >>> >>> Cheers, >>> - hugi >