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
> 

Reply via email to