# Debugging options for the org.eclipse.wst.server.ui plugin

# Turn on general debugging
org.eclipse.wst.server.ui/debug=true

# Loading of extension points
org.eclipse.wst.server.ui/extension_point=false

# Performance of loading and calling delegates
org.eclipse.wst.server.ui/performance=false