[ 
https://issues.apache.org/jira/browse/KARAF-4361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Serge Huber updated KARAF-4361:
-------------------------------
    Attachment: 
KARAF_4361_Allow_dynamic_config_customization_when_embedding_Karaf_using_the_Main_class.patch

I've attached a patch I generated against the Karaf 4.0.x that implements the 
getter and setter for the config variable and also modified the launch method 
to check if the variable is null and only set it up when it is null. 

In effect this shouldn't change the contract for existing uses, but should make 
it possible to access and modify the config properties setup before the launch 
is called.

> 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
>         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.
> 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)

Reply via email to