You could add a node at runtime:

DataNode node = *new* DataNode("node");

... // configure node

runtime.getDataDomain().addNode(node);

runtime.getDataDomain().setDefaultNode(node);

On Wed, Oct 28, 2020 at 2:52 PM Tony Giaccone <t...@giaccone.org> wrote:

> So I have a project which is running in Bootique, but the data model is
> used in several different apps. To facilitate this, we created a jar file
> that includes the generated classes, and the code and the
> cayenne-project.xml file in one jar file.  The result of this is tests run
> for this jar, don't have access to the bootique runtime, as they are part
> of a jar that's going to be included in other apps.
>
> We're using an older version of Bootique and so the version of Cayenne is
> 4.0.B2
>
> The cayenne project, only has a datamap there is no datanode defined in the
> xml.
>
> So I'm trying to spin up a cayenne runtime, using this code.
>
> runtime = ServerRuntime.builder()
>         .addConfig("cayenne-CohortManager.xml")
>         .addModule(binder -> {
>             ServerModule.contributeProperties(binder)
>                     .put("cayenne.jdbc.driver", "org.h2.Driver")
>                     .put("cayenne.jdbc.url", "jdbc:h2:mem:CohortDB");
>         })
>         .build();
>
>
> The problem is that later, when I try to commit changes, I get this error:
>
> org.apache.cayenne.CayenneRuntimeException: [v.4.0.B2 Sep 26 2017
> 10:05:06] No DataNode configured for DataMap 'datamap' and no default
> DataNode set
>
> I'm successfully able to run other tests, because they never do a
> commitobjects.
>
>
> Any suggestions on how to resolve my problem.
>

Reply via email to