also per-node connection params can be passed as properties:

https://cayenne.apache.org/docs/4.1/cayenne-guide/#appendix-a-configuration-properties
 
<https://cayenne.apache.org/docs/4.1/cayenne-guide/#appendix-a-configuration-properties>



> On Apr 23, 2021, at 10:58 AM, John Huss <johnth...@gmail.com> wrote:
> 
> 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