Hi Bengt,

My comments inline:

I guess it's some kind of catch 22 going on here. I would really like to
be able to use system properties at this point. Can I create a JIRA for
this?

It should work already. Let me take a look, I will raise a Jira if the system variables are not used.


I can get it to work by using a relative path to specify where my
custom.properties file reside. However, it appears that the "current
directory" is not "karaf.home" but the "etc" directory under the Karaf
installation. Is this by design?

Yes, it's the default behavior. But it could make sense to be able to put any absolute path here. Let me think about that.


Out of curiosity I also wonder why the property is called "${includes}"
and not just "includes". I assume some "cleverness" is gong on here...

It's because it's used and populated by others scripts.


Finally, I would like to have the possibility to not have to create my
"custom" custom.properties. If I specify its location in the ${includes}
property then Karaf fails to start if the file doesn't exist. I would
like Karaf to pick up the file if it exists, otherwise, I would like
Karaf to ignore it and just continue. That would allow us to provide
custom variables if we wanted to but it wouldn't require each
installation to have a custom.properties.

It makes sense, Karaf should check if the file exists before trying to load it. Could you raise a Jira for that ?

Thanks
Regards
JB


/Bengt



2011/11/11 Bengt Rodehav <be...@rodehav.com <mailto:be...@rodehav.com>>

    Perfect!

    I didn't know about the ${includes}. Will try it out as soon as
    possible.

    Thanks a lot,

    /Bengt

    2011/11/11 Jean-Baptiste Onofré <j...@nanthrax.net
    <mailto:j...@nanthrax.net>>

        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é <j...@nanthrax.net
            <mailto:j...@nanthrax.net> <mailto:j...@nanthrax.net
            <mailto:j...@nanthrax.net>>>


                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é
            jbono...@apache.org <mailto:jbono...@apache.org>
            <mailto:jbono...@apache.org <mailto:jbono...@apache.org>>

            http://blog.nanthrax.net
                Talend - http://www.talend.com



        --
        Jean-Baptiste Onofré
        jbono...@apache.org <mailto:jbono...@apache.org>
        http://blog.nanthrax.net
        Talend - http://www.talend.com




--
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to