You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Serge Huber (JIRA)" <ji...@apache.org> on 2017/03/15 09:26:41 UTC
[jira] [Comment Edited] (KARAF-4361) Allow dynamic config
customization when embedding Karaf using the Main class
[ https://issues.apache.org/jira/browse/KARAF-4361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15925793#comment-15925793 ]
Serge Huber edited comment on KARAF-4361 at 3/15/17 9:25 AM:
-------------------------------------------------------------
I just checked the status of the master branch and it seems this patch was not completely applied or was lost somehow ? It's missing the check in the launch method but the setConfig() method is present.
The karaf-4.0.x branch seems ok though.
was (Author: shuber):
I just checked the status of the master branch and it seems this patch was not applied correctly or was lost somehow ? It's missing the check in the launch method.
The karaf-4.0.x branch seems ok though.
> 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: Guillaume Nodet
> Fix For: 4.0.9, 4.1.1
>
> 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.15#6346)