# Debugging options for the org.eclipse.equinox.ds plugin

# Turns on/off debugging of SCR
org.eclipse.equinox.ds/debug=false
# Specifies that logged entries should be printed to the framework runtime console 
org.eclipse.equinox.ds/print_on_console=false
# Enables generating and printing logs about the time performance of the operations executed by the SCR
org.eclipse.equinox.ds/performance=false
# Makes instance of each component nevertheless components are "immediate" or not
org.eclipse.equinox.ds/instantiate_all=false

#Advanced options 
# Enables caching of the parsed XML documents of the component descriptions
#org.eclipse.equinox.ds/cache_descriptions=false
# Specifies the maximum time in milliseconds, which is allowed to a user component's activate or bind method to take. If the method invocation has not finished, a new dispatcher thread will be launched to process the pending work of SCR 
#org.eclipse.equinox.ds/block_timeout=30000
