Jonhnny,

In truth, that start script in etc/ is really a legacy thing and should probably be deleted. I think this topic was brought up before, but we never concluded what to do about it. I would vote to delete it, since typing "java -jar bin/felix.jar" is not too difficult.

The issue you are having about not finding the auto-start bundles is not really related. The auto-start properties use relative bundle paths to load the bundles from the Felix bundle/ directory, thus if you start Felix from any other directory than its install directory it cannot find its bundles.

If you edit the conf/config.properties file to use absolute paths to your bundles, then you should be able to start Felix from any directory. Since Felix doesn't currently have an installer, we don't do any post-processing of the config file to change the bundles to the precise directory...further, I am not sure we would want to because then it means you cannot relocate the directory easily.

Your idea for creating a script should work fine. I think you could also define your felix.home system property in conf/system.properties so that you don't have to specify it each time.

-> richard


Jonhnny Weslley wrote:
Hi,

In Felix 1.0.1 release a script file is available to start the felix.
However, this script is placed at 'etc' directory, when usually
scripts are placed at 'bin' directory! Why?

The script is very simple, then I did another script attached in this mail.
But when I executed my script, or when I start felix from another
directory different of the installation directory, felix isn't able to find
my auto-started bundles.

The console output is:


CONSOLE ==============================
============

[EMAIL PROTECTED]:~ $ felix

Welcome to Felix.
=================

Enter profile name: jonhnny

ERROR: Auto-properties install. (org.osgi.framework.BundleException : Unable to cache bundle: file:bundle/org.apache.felix.shell-1.0.0.jar) java.io.FileNotFoundException: bundle/org.apache.felix.shell-1.0.0.jar (No such file or directory)
...
ERROR: Auto-properties install. (org.osgi.framework.BundleException: Unable to cache bundle: file:bundle/org.apache.felix.shell.tui- 1.0.0.jar) java.io.FileNotFoundException: bundle/org.apache.felix.shell.tui-1.0.0.jar (No such file or directory)
...
and other auto-started bundles

My felix was installed at ' /usr/local/felix' directory.
However when I start felix, independently to be by shell script or directly executing java comand, it searchs the auto-start bundles configured in the config.properties at the local directory where the command was executed. Then when I execute ' java -jar /usr/local/felix/bin/felix.jar' at my home directory, it searchs my bundles at
'~/bundles/mybundlename.jar'.

I thought in a basic solution.
1. Define a system property felix.home, this value is assigned at the script file
2. Change the config.properties file to:
...
felix.auto.start.1= \
 file:${felix.home}/bundle/org.apache.felix.shell-1.0.0.jar \
 file:${felix.home}/bundle/org.apache.felix.shell.tui-1.0.0.jar \
 file:${felix.home}/bundle/org.apache.felix.bundlerepository-1.0.0.jar
...

The script assumes the follow hierarchy directory:
FELIX_HOME/
   |- bin/
   |    |- felix     (the script file)
   |- lib/
   |    |-felix.jar  (the felix jar)
   |- bundle/
   |- conf/
   |
 others

Reply via email to