# install.ini 
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# This file does not need to be translated.

# Required property "feature.default.id" contains id of the primary feature
# (the primary feature controls product branding, splash screens, and plug-in
# customization)
feature.default.id=org.eclipse.platform

# Required property "feature.default.application" contains id of the core
# application that gets control on startup. For products with a UI, this
# is always org.eclipse.ui.workbench; for "headless" products, this is
# product-specific.
feature.default.application=org.eclipse.ui.workbench
