void addComponents(Collection components) {
this.level4AddedComponents.addAll(components);
}
public void executeStartupTasks(ComponentContainer pico) {
final ComponentContainer startupContainer = pico.createChild();
startupContainer.addSingleton(IndexSynchronizer.class);
startupContainer.addSingleton(RegisterMetrics.class);
startupContainer.addSingleton(RegisterQualityGates.class);
startupContainer.addSingleton(RegisterRules.class);
startupContainer.addSingleton(RegisterQualityProfiles.class);
startupContainer.addSingleton(JdbcDriverDeployer.class);
startupContainer.addSingleton(RegisterDebtModel.class);
startupContainer.addSingleton(GeneratePluginIndex.class);
startupContainer.addSingleton(RegisterNewMeasureFilters.class);
startupContainer.addSingleton(RegisterDashboards.class);
startupContainer.addSingleton(RegisterPermissionTemplates.class);
startupContainer.addSingleton(RenameDeprecatedPropertyKeys.class);
startupContainer.addSingleton(LogServerId.class);
startupContainer.addSingleton(RegisterServletFilters.class);
startupContainer.addSingleton(CleanPreviewAnalysisCache.class);
startupContainer.addSingleton(CopyRequirementsFromCharacteristicsToRules.class);
startupContainer.addSingleton(AnalysisReportTaskCleaner.class);
DoPrivileged.execute(new DoPrivileged.Task() {
@Override
protected void doPrivileged() {
startupContainer.getComponentsByType(IndexSynchronizer.class).get(0).execute();
startupContainer.startComponents();
startupContainer.getComponentByType(ServerLifecycleNotifier.class).notifyStart();
}
});
// Do not put the following statements in a finally block.
// It would hide the possible exception raised during startup
// See SONAR-3107
startupContainer.stopComponents();
pico.getComponentByType(DatabaseSessionFactory.class).clear();
}