When you create your ServerRuntime you need to supply a custom DI module to
pass the DB connection parameters, something like this:

*import* org.apache.cayenne.configuration.Constants;

*import* org.apache.cayenne.di.Binder;

*import* org.apache.cayenne.di.MapBuilder;

*import* org.apache.cayenne.di.Module;


*public* *class* MyModule *implements* Module {

*public* *void* configure(Binder binder) {

MapBuilder<String> mapBuilder = binder.bindMap(String.*class*, Constants.
*PROPERTIES_MAP*);

mapBuilder.put(Constants.*JDBC_URL_PROPERTY* +
".YourDataDomainName.YourDataNodeName", System.*getenv*("url"));

...

}

}

On Fri, Apr 23, 2021 at 9:32 AM Tony Giaccone <t...@giaccone.org> wrote:

> I have a datadomain with two datamaps, and two datasource each talking to a
> different database.
>
> Right now, I have had the datasource configured in the config file, but I
> need to remove that and set it programmatically, from an environment
> variable.  Simple enough to do with a defauldata source, unclear how to do
> when you have multiple data sources and data nodes.
>
> After browsing through the code and the app as it's running, it's unclear
> to me how to do this.
>
> Does anyone know the secret sauce?
>
>
>
> Tony
>

Reply via email to