Hi Bengt,

it's exactly the purpose of custom.properties.

Basically:
- system.properties is "reserved" for Karaf itself.
- config.properties is "reserved" for "application"
- custom.properties is "reserved" for your usage

You can put the custom.properties where you want. You just need to update the ${includes} property in the etc/system.properties.

Regards
JB

On 11/11/2011 05:15 PM, Bengt Rodehav wrote:
Thanks for your reply JB,

Yes, if I put the variables in custom.properties they can reference each
other directly. Given these lines in custom.properties:

/MyRootDir=C:/Temp/
/MySubDir=${MyRootDir}/Sub/

Gives the value "C:/Temp/Sub" for the variable "MySubDir".

Thanks!

I guess then that best practice is to use custom.properties for this?
This is good since it doesn't (should not) contain any configuration
out-of-the-box. I noticed that the karaf.systemBundlesStartLevel is
defined there. I think that should be removed.

Now if there was a way to specify that the custom.properties file should
reside somewhere else then I would be very happy. The reason is that we
do not want to put installation specific configuration in the Karaf
installation. Do you have an update regarding this?

/Bengt


2011/11/11 Jean-Baptiste Onofré <[email protected] <mailto:[email protected]>>

    Hi Bengt,

    the system.properties is not directly evaluate.

    Could you try to define your variable in the custom.properties ?

    Regards
    JB


    On 11/11/2011 03:51 PM, Bengt Rodehav wrote:

        Hi,

        I'm using Karaf 2.2.3. We're using Karaf+Camel as the basis for an
        integration platform. We use config admin extensively in order
        to define
        camel routes. As a convenience we define variables (in
        system.properties) that can be used in the different
        configurations. E g
        defining a "dataRoot" variable that the specifies a root
        directory in
        the file system that routes can relate to.

        If I, in system.properties specify the following:

        dataRoot = D:/data
        customer1Root = ${dataRoot}/customer1

        Then the value of "customer1Root" will be "/customer1". The
        "${dataRoot}" evaluates to an empty string. Why is that? If I
        instead
        define "dataRoot" as a real system property (using the -D option
        to the
        JVM) then it works.

        In my configuration files (parsed by fileinstall) it works to
        use the
        ${...} notation to refer to variables in system.properties. What
        then
        does not seem to work is if I in system.properties try to refer to
        another variable defined in system.properties.

        This seems like a bug to me.

        I would also like to find out what the status is on the redesign of
        system.properties. I would very much like the possibility to add my
        specific variables outside of the Karaf installation. I already
        create a
        custom distribution but the variables need to be added on a per
        installation basis. The customer himself decides what convenience
        variables are needed and I don't want the customer to fiddle
        with the
        Karaf installation.

        The functionality I'm looking for is something like this:
        Somewhere in
        the Karaf configuration I would like to specify that Karaf
        should read
        variable definitions from a file (or list of files) that I
        specify. I
        can then separate my, installation specific, variables from the
        standard
        Karaf installation. I have brought this up before and was under the
        impression that something like this was in scope for Karaf 3 (or
        even
        earlier). What is the status of this kind of customisation?

        /Bengt


    --
    Jean-Baptiste Onofré
    [email protected] <mailto:[email protected]>
    http://blog.nanthrax.net
    Talend - http://www.talend.com



--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to