[ https://issues.apache.org/jira/browse/KARAF-4361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste Onofré updated KARAF-4361: ---------------------------------------- Fix Version/s: (was: 4.0.7) 4.0.8 > Allow dynamic config customization when embedding Karaf using the Main class > ---------------------------------------------------------------------------- > > Key: KARAF-4361 > URL: https://issues.apache.org/jira/browse/KARAF-4361 > Project: Karaf > Issue Type: Improvement > Components: karaf-core > Affects Versions: 4.1.0, 4.0.4 > Reporter: Serge Huber > Assignee: Jean-Baptiste Onofré > Fix For: 4.1.0, 4.0.8 > > Attachments: > KARAF_4361_Allow_dynamic_config_customization_when_embedding_Karaf_using_the_Main_class.patch > > > We are using Karaf by embedding it and basically starting it like this : > {code} > // code to setup System properties > main = new Main(new String[0]); > main.launch(); > {code} > The problem is that the ConfigProperties that are used to startup Karaf are > directly created in the main.launch() method, like this: > {code} > public void launch() throws Exception { > config = new ConfigProperties(); > {code} > Ideally it would be great if we could either have a setter to provide the > config value, so that we could manipulate it before launching. In an embedded > environment this quickly becomes a necessity. For example we would like to > make it possible to have retrieve properties coming from another framework > such as Spring and use those to override config.properties settings in a > dynamic way, without needing to dump them to a file at Karaf startup. I'm > aware of the ${includes} and ${optionals} but those require files to be read > from the disk where here I'm talking about being able to dynamically > manipulate the properties once loaded. > Basically something like this would be fantastic > {code} > // code to setup System properties > main = new Main(new String[0]); > ConfigProperties config = main.getConfig(); > if (config == null) { > config = new ConfigProperties(); > } > // manipulate config in any way desired > main.setConfig(config) > main.launch(); > {code} > The main.launch could then simply be modified to something like this : > {code} > public void launch() throws Exception { > if (config == null) { > config = new ConfigProperties(); > } > {code} > Btw we are using Karaf 4.0.x so having this in both Karaf 4.1.0 and Karaf 4.0 > would be fantastic. -- This message was sent by Atlassian JIRA (v6.3.4#6332)