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 <[email protected]> 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.
>