#
# ServletContextListeners for VIVO, to be instantiated and run by the StartupManager.
#
# For more information,
#     https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager
#

# This listener must be run before any other code that uses resource bundles, 
# otherwise there will be problems with i18n-support.
org.vivoweb.webapp.startup.i18nSetup

edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests

edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup

edu.cornell.mannlib.vitro.webapp.config.ConfigurationPropertiesSetup

edu.cornell.mannlib.vitro.webapp.config.ConfigurationPropertiesSmokeTests

edu.cornell.mannlib.vitro.webapp.utils.developer.DeveloperSettings$Setup

edu.cornell.mannlib.vitro.webapp.application.ApplicationImpl$ComponentsSetup

edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup

edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup

# For multiple language support
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup

edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup

edu.cornell.mannlib.vitro.webapp.i18n.I18nContextListener

edu.cornell.mannlib.vitro.webapp.web.images.PlaceholderUtil$Setup

edu.cornell.mannlib.vitro.webapp.servlet.setup.FileGraphSetup

# Invokes process to perform updates to align with ontology changes if needed -->
# edu.cornell.mannlib.vitro.webapp.migration.rel16.Release16Migrator
# edu.cornell.mannlib.vitro.webapp.migration.rel17.Release17Migrator
edu.cornell.mannlib.vitro.webapp.migration.rel18.Release18Migrator

edu.cornell.mannlib.vitro.webapp.application.ApplicationImpl$ReasonersSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.SimpleReasonerSetup

# Must run after JenaDataSourceSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.ThemeInfoSetup

edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionRegistry$Setup

edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionSetsSmokeTest

edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionBean$Setup

edu.cornell.mannlib.vitro.webapp.auth.policy.setup.CommonPolicyFamilySetup

edu.cornell.mannlib.vitro.webapp.auth.policy.RootUserPolicy$Setup

edu.cornell.mannlib.vivo.auth.policy.SelfEditorRelationshipPolicy$Setup

edu.cornell.mannlib.vitro.webapp.auth.policy.RestrictHomeMenuItemEditingPolicy$Setup

edu.cornell.mannlib.vitro.webapp.services.shortview.ShortViewServiceSetup

edu.cornell.mannlib.vitro.webapp.visualization.setup.VisualizationSetup

org.vivoweb.webapp.startup.DataGetterN3Setup
org.vivoweb.webapp.startup.GeneratorSetup
org.vivoweb.webapp.startup.JSONWrapperSetup
org.vivoweb.webapp.startup.MenuManagementSetup
org.vivoweb.webapp.startup.SiteAdminSetup
org.vivoweb.webapp.startup.TemplateModelSetup
org.vivoweb.webapp.startup.SearchResultTemplateModelSetup

edu.ucsf.vitro.opensocial.OpenSocialSmokeTests

# The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper
#   and the PermissionRegistry must already be set up.
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup

edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerSetup
edu.cornell.mannlib.vitro.webapp.freemarker.config.FreemarkerConfiguration$Setup

# On shutdown, this will kill the background thread started by Apache Commons File Upload
org.apache.commons.fileupload.servlet.FileCleanerCleanup

# The VClassGroupCache index uses a "public" permission, so the PropertyRestrictionPolicyHelper
#   and the PermissionRegistry must already be set up.
edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache$Setup

edu.cornell.mannlib.vivo.orcid.OrcidContextSetup

# Register the extensions to the IndividualResponseBuilder (e.g. alt metric, plum analytics)
edu.cornell.mannlib.vitro.webapp.controller.individual.VIVOIndividualResponseBuilderExtension$Setup

# This should be near the end, because it will issue a warning if the connection to the SearchEngine times out.
edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest
