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



Reply via email to