It appears that only the Felix framework itself doesn't use system
properties but it will pass system properties to bundles.
This is actually good news since I then only have to check for the names
of framework properties in the system properties and copy them to the
framework properties if they exist.
Having said that, I think that all of the framework property names are
defined in
framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java
and org.osgi.core/src/main/java/org/osgi/framework/Constants.java. All
but two in the second file appear to be read-only, based on the
implementation of the framework.
So the list of framework properties to look for appears to be:
felix.log.level
felix.auto.install
felix.auto.start
felix.embeded.execution
felix.strict.osgi
felix.startlevel.framework
felix.startlevel.bundle
felix.service.urlhandlers
org.osgi.framework.system.packages
org.osgi.framework.bootdelegation
This list mostly aligns with the properties listed in
main/conf/config.properties.
I noticed two things in main/conf/config.properties that I think need to
be corrected.
- "obr.shell.telnet" doesn't appear to be used by anything under the
felix trunk. Is it old and should it be removed?
- frameworks.service.urlhandlers is only referred to in the comments of
Felix.java. Is it old and does it need to be renamed to
felix.service.urlhandlers?
Am I on the right path?
Tim
Richard S. Hall wrote:
Felix does not use system properties for its configuration, since this
is problematic in scenarios where you have multiple instances of Felix
in the same VM.
However, it could be possible to have Main.java look both in the
config properties and the system properties just for launching
purposes. If the system property was set it could be converted into a
config property. But if you were going to change this, then for
consistency it would probably make sense to have Main look for the
other configuration properties as system properties and convert them
into config properties too.
-> richard
Tim Moloney wrote:
I can automatically start a profile named "foo" by setting
"felix.cache.profile" to "foo" in main/conf/config.properties.
Shouldn't I be able to do the same thing from the command line by
using "-Dfelix.cache.profile=foo"? I've tried the following command
and Felix still prompts me for the profile.
java -Dfelix.cache.profile=foo bin/felix.jar
Forgive me for the java newbie question.
Tim