This folder contains the profiles tied to the folders in the load folder.

To activate a profile, you must copy it in the profile-enabled folder (or create a symbolic link).

To create a new profile, you just have to create a file named : org.apache.felix.fileinstall-<pid>.cfg where <pid> must be an unique identification. This file must be created in the profile-available folder and may contain:

felix.fileinstall.poll=2000
felix.fileinstall.dir=./load/nom_du_dossier_à_charger
felix.fileinstall.debug=-1
felix.fileinstall.bundles.new.start=false|true

See the Apache Felix - File Install documentation for further information: https://felix.apache.org/site/apache-felix-file-install.html
