123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- /*
- * SonarQube
- * Copyright (C) 2009-2019 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- package org.sonar.server.platform.platformlevel;
-
- import java.util.List;
- import org.sonar.api.profiles.AnnotationProfileParser;
- import org.sonar.api.profiles.XMLProfileParser;
- import org.sonar.api.profiles.XMLProfileSerializer;
- import org.sonar.api.resources.Languages;
- import org.sonar.api.resources.ResourceTypes;
- import org.sonar.api.rules.AnnotationRuleParser;
- import org.sonar.api.rules.XMLRuleParser;
- import org.sonar.api.server.rule.RulesDefinitionXmlLoader;
- import org.sonar.ce.task.projectanalysis.notification.ReportAnalysisFailureNotificationModule;
- import org.sonar.core.component.DefaultResourceTypes;
- import org.sonar.core.extension.CoreExtensionsInstaller;
- import org.sonar.core.platform.ComponentContainer;
- import org.sonar.core.platform.PlatformEditionProvider;
- import org.sonar.core.timemachine.Periods;
- import org.sonar.server.authentication.AuthenticationModule;
- import org.sonar.server.authentication.LogOAuthWarning;
- import org.sonar.server.badge.ws.ProjectBadgesWsModule;
- import org.sonar.server.batch.BatchWsModule;
- import org.sonar.server.branch.BranchFeatureProxyImpl;
- import org.sonar.server.branch.pr.ws.PullRequestWsModule;
- import org.sonar.server.branch.ws.BranchWsModule;
- import org.sonar.server.ce.CeModule;
- import org.sonar.server.ce.ws.CeWsModule;
- import org.sonar.server.component.ComponentCleanerService;
- import org.sonar.server.component.ComponentFinder;
- import org.sonar.server.component.ComponentService;
- import org.sonar.server.component.ComponentUpdater;
- import org.sonar.server.component.index.ComponentIndex;
- import org.sonar.server.component.index.ComponentIndexDefinition;
- import org.sonar.server.component.index.ComponentIndexer;
- import org.sonar.server.component.ws.ComponentsWsModule;
- import org.sonar.server.debt.DebtModelPluginRepository;
- import org.sonar.server.debt.DebtModelXMLExporter;
- import org.sonar.server.debt.DebtRulesXMLImporter;
- import org.sonar.server.duplication.ws.DuplicationsParser;
- import org.sonar.server.duplication.ws.DuplicationsWs;
- import org.sonar.server.duplication.ws.ShowResponseBuilder;
- import org.sonar.server.email.ws.EmailsWsModule;
- import org.sonar.server.es.IndexCreator;
- import org.sonar.server.es.IndexDefinitions;
- import org.sonar.server.es.ProjectIndexersImpl;
- import org.sonar.server.es.RecoveryIndexer;
- import org.sonar.server.es.metadata.EsDbCompatibilityImpl;
- import org.sonar.server.es.metadata.MetadataIndex;
- import org.sonar.server.es.metadata.MetadataIndexDefinition;
- import org.sonar.server.event.NewAlerts;
- import org.sonar.server.extension.CoreExtensionBootstraper;
- import org.sonar.server.extension.CoreExtensionStopper;
- import org.sonar.server.favorite.FavoriteModule;
- import org.sonar.server.health.NodeHealthModule;
- import org.sonar.server.issue.AddTagsAction;
- import org.sonar.server.issue.AssignAction;
- import org.sonar.server.issue.CommentAction;
- import org.sonar.server.issue.IssueChangePostProcessorImpl;
- import org.sonar.server.issue.RemoveTagsAction;
- import org.sonar.server.issue.SetSeverityAction;
- import org.sonar.server.issue.SetTypeAction;
- import org.sonar.server.issue.TransitionAction;
- import org.sonar.server.issue.index.IssueIndexDefinition;
- import org.sonar.server.issue.index.IssueIndexer;
- import org.sonar.server.issue.index.IssueIteratorFactory;
- import org.sonar.server.issue.notification.ChangesOnMyIssueNotificationDispatcher;
- import org.sonar.server.issue.notification.DoNotFixNotificationDispatcher;
- import org.sonar.server.issue.notification.IssueChangesEmailTemplate;
- import org.sonar.server.issue.notification.MyNewIssuesEmailTemplate;
- import org.sonar.server.issue.notification.MyNewIssuesNotificationDispatcher;
- import org.sonar.server.issue.notification.NewIssuesEmailTemplate;
- import org.sonar.server.issue.notification.NewIssuesNotificationDispatcher;
- import org.sonar.server.issue.notification.NewIssuesNotificationFactory;
- import org.sonar.server.issue.ws.IssueWsModule;
- import org.sonar.server.language.ws.LanguageWs;
- import org.sonar.server.log.ServerLogging;
- import org.sonar.server.measure.custom.ws.CustomMeasuresWsModule;
- import org.sonar.server.measure.index.ProjectsEsModule;
- import org.sonar.server.measure.live.LiveMeasureModule;
- import org.sonar.server.measure.ws.MeasuresWsModule;
- import org.sonar.server.measure.ws.TimeMachineWs;
- import org.sonar.server.metric.CoreCustomMetrics;
- import org.sonar.server.metric.DefaultMetricFinder;
- import org.sonar.server.metric.ws.MetricsWsModule;
- import org.sonar.server.notification.NotificationModule;
- import org.sonar.server.notification.ws.NotificationWsModule;
- import org.sonar.server.organization.BillingValidationsProxyImpl;
- import org.sonar.server.organization.OrganizationUpdaterImpl;
- import org.sonar.server.organization.OrganizationValidationImpl;
- import org.sonar.server.organization.ws.OrganizationsWsModule;
- import org.sonar.server.permission.GroupPermissionChanger;
- import org.sonar.server.permission.PermissionTemplateService;
- import org.sonar.server.permission.PermissionUpdater;
- import org.sonar.server.permission.UserPermissionChanger;
- import org.sonar.server.permission.index.PermissionIndexer;
- import org.sonar.server.permission.ws.PermissionsWsModule;
- import org.sonar.server.permission.ws.template.DefaultTemplatesResolverImpl;
- import org.sonar.server.platform.BackendCleanup;
- import org.sonar.server.platform.ClusterVerification;
- import org.sonar.server.platform.PersistentSettings;
- import org.sonar.server.platform.SettingsChangeNotifier;
- import org.sonar.server.platform.WebCoreExtensionsInstaller;
- import org.sonar.server.platform.monitoring.WebSystemInfoModule;
- import org.sonar.server.platform.web.WebPagesFilter;
- import org.sonar.server.platform.web.requestid.HttpRequestIdModule;
- import org.sonar.server.platform.ws.ChangeLogLevelActionModule;
- import org.sonar.server.platform.ws.DbMigrationStatusAction;
- import org.sonar.server.platform.ws.HealthActionModule;
- import org.sonar.server.platform.ws.L10nWs;
- import org.sonar.server.platform.ws.LogsAction;
- import org.sonar.server.platform.ws.MigrateDbAction;
- import org.sonar.server.platform.ws.PingAction;
- import org.sonar.server.platform.ws.RestartAction;
- import org.sonar.server.platform.ws.ServerWs;
- import org.sonar.server.platform.ws.StatusAction;
- import org.sonar.server.platform.ws.SystemWs;
- import org.sonar.server.platform.ws.UpgradesAction;
- import org.sonar.server.plugins.PluginDownloader;
- import org.sonar.server.plugins.PluginUninstaller;
- import org.sonar.server.plugins.ServerExtensionInstaller;
- import org.sonar.server.plugins.ws.AvailableAction;
- import org.sonar.server.plugins.ws.CancelAllAction;
- import org.sonar.server.plugins.ws.DownloadAction;
- import org.sonar.server.plugins.ws.InstallAction;
- import org.sonar.server.plugins.ws.InstalledAction;
- import org.sonar.server.plugins.ws.PendingAction;
- import org.sonar.server.plugins.ws.PluginUpdateAggregator;
- import org.sonar.server.plugins.ws.PluginsWs;
- import org.sonar.server.plugins.ws.UninstallAction;
- import org.sonar.server.plugins.ws.UpdatesAction;
- import org.sonar.server.project.ws.ProjectsWsModule;
- import org.sonar.server.projectanalysis.ProjectAnalysisModule;
- import org.sonar.server.projectlink.ws.ProjectLinksModule;
- import org.sonar.server.projecttag.ws.ProjectTagsWsModule;
- import org.sonar.server.property.InternalPropertiesImpl;
- import org.sonar.server.property.ws.PropertiesWs;
- import org.sonar.server.qualitygate.QualityGateModule;
- import org.sonar.server.qualityprofile.BuiltInQProfileDefinitionsBridge;
- import org.sonar.server.qualityprofile.BuiltInQProfileRepositoryImpl;
- import org.sonar.server.qualityprofile.BuiltInQualityProfilesNotificationDispatcher;
- import org.sonar.server.qualityprofile.BuiltInQualityProfilesNotificationTemplate;
- import org.sonar.server.qualityprofile.QProfileBackuperImpl;
- import org.sonar.server.qualityprofile.QProfileComparison;
- import org.sonar.server.qualityprofile.QProfileCopier;
- import org.sonar.server.qualityprofile.QProfileExporters;
- import org.sonar.server.qualityprofile.QProfileFactoryImpl;
- import org.sonar.server.qualityprofile.QProfileResetImpl;
- import org.sonar.server.qualityprofile.QProfileRulesImpl;
- import org.sonar.server.qualityprofile.QProfileTreeImpl;
- import org.sonar.server.qualityprofile.RuleActivator;
- import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
- import org.sonar.server.qualityprofile.ws.ProfilesWs;
- import org.sonar.server.qualityprofile.ws.QProfilesWsModule;
- import org.sonar.server.root.ws.RootWsModule;
- import org.sonar.server.rule.CommonRuleDefinitionsImpl;
- import org.sonar.server.rule.DeprecatedRulesDefinitionLoader;
- import org.sonar.server.rule.RuleCreator;
- import org.sonar.server.rule.RuleDefinitionsLoader;
- import org.sonar.server.rule.RuleUpdater;
- import org.sonar.server.rule.WebServerRuleFinderImpl;
- import org.sonar.server.rule.index.RuleIndexDefinition;
- import org.sonar.server.rule.index.RuleIndexer;
- import org.sonar.server.rule.ws.ActiveRuleCompleter;
- import org.sonar.server.rule.ws.RepositoriesAction;
- import org.sonar.server.rule.ws.RuleMapper;
- import org.sonar.server.rule.ws.RuleQueryFactory;
- import org.sonar.server.rule.ws.RuleWsSupport;
- import org.sonar.server.rule.ws.RulesWs;
- import org.sonar.server.rule.ws.TagsAction;
- import org.sonar.server.securityreport.ws.SecurityReportsWsModule;
- import org.sonar.server.setting.ws.SettingsWsModule;
- import org.sonar.server.source.HtmlSourceDecorator;
- import org.sonar.server.source.SourceService;
- import org.sonar.server.source.ws.HashAction;
- import org.sonar.server.source.ws.IndexAction;
- import org.sonar.server.source.ws.LinesAction;
- import org.sonar.server.source.ws.RawAction;
- import org.sonar.server.source.ws.ScmAction;
- import org.sonar.server.source.ws.SourcesWs;
- import org.sonar.server.startup.LogServerId;
- import org.sonar.server.telemetry.TelemetryClient;
- import org.sonar.server.telemetry.TelemetryDaemon;
- import org.sonar.server.telemetry.TelemetryDataLoader;
- import org.sonar.server.test.index.TestIndexDefinition;
- import org.sonar.server.test.ws.TestsWs;
- import org.sonar.server.text.MacroInterpreter;
- import org.sonar.server.ui.DeprecatedViews;
- import org.sonar.server.ui.PageDecorations;
- import org.sonar.server.ui.PageRepository;
- import org.sonar.server.ui.ws.NavigationWsModule;
- import org.sonar.server.updatecenter.UpdateCenterModule;
- import org.sonar.server.user.NewUserNotifier;
- import org.sonar.server.user.SecurityRealmFactory;
- import org.sonar.server.user.UserSessionFactoryImpl;
- import org.sonar.server.user.UserUpdater;
- import org.sonar.server.user.index.UserIndex;
- import org.sonar.server.user.index.UserIndexDefinition;
- import org.sonar.server.user.index.UserIndexer;
- import org.sonar.server.user.ws.UsersWsModule;
- import org.sonar.server.usergroups.DefaultGroupCreatorImpl;
- import org.sonar.server.usergroups.DefaultGroupFinder;
- import org.sonar.server.usergroups.ws.UserGroupsModule;
- import org.sonar.server.usertoken.UserTokenModule;
- import org.sonar.server.util.TypeValidationModule;
- import org.sonar.server.view.index.ViewIndex;
- import org.sonar.server.view.index.ViewIndexDefinition;
- import org.sonar.server.view.index.ViewIndexer;
- import org.sonar.server.webhook.WebhookModule;
- import org.sonar.server.webhook.ws.WebhooksWsModule;
- import org.sonar.server.ws.DeprecatedPropertiesWsFilter;
- import org.sonar.server.ws.WebServiceEngine;
- import org.sonar.server.ws.WebServiceFilter;
- import org.sonar.server.ws.WebServiceReroutingFilter;
- import org.sonar.server.ws.ws.WebServicesWsModule;
-
- import static org.sonar.core.extension.CoreExtensionsInstaller.noAdditionalSideFilter;
- import static org.sonar.core.extension.PlatformLevelPredicates.hasPlatformLevel4OrNone;
-
- public class PlatformLevel4 extends PlatformLevel {
-
- private final List<Object> level4AddedComponents;
-
- public PlatformLevel4(PlatformLevel parent, List<Object> level4AddedComponents) {
- super("level4", parent);
- this.level4AddedComponents = level4AddedComponents;
- }
-
- @Override
- protected void configureLevel() {
- addIfStartupLeader(
- IndexCreator.class,
- MetadataIndexDefinition.class,
- MetadataIndex.class,
- EsDbCompatibilityImpl.class);
-
- addIfCluster(NodeHealthModule.class);
-
- add(
- ClusterVerification.class,
- LogServerId.class,
- LogOAuthWarning.class,
- PluginDownloader.class,
- PluginUninstaller.class,
- DeprecatedViews.class,
- PageRepository.class,
- ResourceTypes.class,
- DefaultResourceTypes.get(),
- SettingsChangeNotifier.class,
- PageDecorations.class,
- Periods.class,
- ServerWs.class,
- BackendCleanup.class,
- IndexDefinitions.class,
- WebPagesFilter.class,
-
- // batch
- BatchWsModule.class,
-
- // update center
- UpdateCenterModule.class,
-
- // organizations
- OrganizationValidationImpl.class,
- OrganizationUpdaterImpl.class,
- OrganizationsWsModule.class,
- BillingValidationsProxyImpl.class,
-
- // quality profile
- BuiltInQProfileDefinitionsBridge.class,
- BuiltInQProfileRepositoryImpl.class,
- ActiveRuleIndexer.class,
- XMLProfileParser.class,
- XMLProfileSerializer.class,
- AnnotationProfileParser.class,
- QProfileComparison.class,
- ProfilesWs.class,
- QProfileTreeImpl.class,
- QProfileRulesImpl.class,
- RuleActivator.class,
- QProfileExporters.class,
- QProfileFactoryImpl.class,
- QProfileCopier.class,
- QProfileBackuperImpl.class,
- QProfileResetImpl.class,
- QProfilesWsModule.class,
-
- // rule
- RuleIndexDefinition.class,
- RuleIndexer.class,
- AnnotationRuleParser.class,
- XMLRuleParser.class,
- WebServerRuleFinderImpl.class,
- DeprecatedRulesDefinitionLoader.class,
- RuleDefinitionsLoader.class,
- CommonRuleDefinitionsImpl.class,
- RulesDefinitionXmlLoader.class,
- RuleUpdater.class,
- RuleCreator.class,
- org.sonar.server.rule.ws.UpdateAction.class,
- RulesWs.class,
- RuleWsSupport.class,
- org.sonar.server.rule.ws.SearchAction.class,
- org.sonar.server.rule.ws.ShowAction.class,
- org.sonar.server.rule.ws.CreateAction.class,
- org.sonar.server.rule.ws.DeleteAction.class,
- org.sonar.server.rule.ws.ListAction.class,
- TagsAction.class,
- RuleMapper.class,
- ActiveRuleCompleter.class,
- RepositoriesAction.class,
- RuleQueryFactory.class,
- org.sonar.server.rule.ws.AppAction.class,
-
- // languages
- Languages.class,
- LanguageWs.class,
- org.sonar.server.language.ws.ListAction.class,
-
- // measure
- MetricsWsModule.class,
- MeasuresWsModule.class,
- CustomMeasuresWsModule.class,
- CoreCustomMetrics.class,
- DefaultMetricFinder.class,
- TimeMachineWs.class,
-
- QualityGateModule.class,
-
- // web services
- WebServiceEngine.class,
- WebServicesWsModule.class,
- WebServiceFilter.class,
- DeprecatedPropertiesWsFilter.class,
- WebServiceReroutingFilter.class,
-
- // localization
- L10nWs.class,
- org.sonar.server.platform.ws.IndexAction.class,
-
- // authentication
- AuthenticationModule.class,
-
- // users
- UserSessionFactoryImpl.class,
- SecurityRealmFactory.class,
- NewUserNotifier.class,
- UserIndexDefinition.class,
- UserIndexer.class,
- UserIndex.class,
- UserUpdater.class,
- UsersWsModule.class,
- UserTokenModule.class,
-
- // groups
- UserGroupsModule.class,
- DefaultGroupCreatorImpl.class,
- DefaultGroupFinder.class,
-
- // permissions
- DefaultTemplatesResolverImpl.class,
- PermissionsWsModule.class,
- PermissionTemplateService.class,
- PermissionUpdater.class,
- UserPermissionChanger.class,
- GroupPermissionChanger.class,
-
- // components
- BranchWsModule.class,
- PullRequestWsModule.class,
- ProjectsWsModule.class,
- ProjectsEsModule.class,
- ProjectTagsWsModule.class,
- ComponentsWsModule.class,
- ComponentService.class,
- ComponentUpdater.class,
- ComponentFinder.class,
- NewAlerts.class,
- NewAlerts.newMetadata(),
- ComponentCleanerService.class,
- ComponentIndexDefinition.class,
- ComponentIndex.class,
- ComponentIndexer.class,
- LiveMeasureModule.class,
-
- FavoriteModule.class,
-
- // views
- ViewIndexDefinition.class,
- ViewIndexer.class,
- ViewIndex.class,
-
- // issues
- IssueIndexDefinition.class,
- IssueIndexer.class,
- IssueIteratorFactory.class,
- PermissionIndexer.class,
- IssueWsModule.class,
- NewIssuesEmailTemplate.class,
- MyNewIssuesEmailTemplate.class,
- IssueChangesEmailTemplate.class,
- ChangesOnMyIssueNotificationDispatcher.class,
- ChangesOnMyIssueNotificationDispatcher.newMetadata(),
- NewIssuesNotificationDispatcher.class,
- NewIssuesNotificationDispatcher.newMetadata(),
- MyNewIssuesNotificationDispatcher.class,
- MyNewIssuesNotificationDispatcher.newMetadata(),
- DoNotFixNotificationDispatcher.class,
- DoNotFixNotificationDispatcher.newMetadata(),
- NewIssuesNotificationFactory.class,
-
- // Security reports
- SecurityReportsWsModule.class,
-
- // issues actions
- AssignAction.class,
- SetTypeAction.class,
- SetSeverityAction.class,
- CommentAction.class,
- TransitionAction.class,
- AddTagsAction.class,
- RemoveTagsAction.class,
- IssueChangePostProcessorImpl.class,
-
- // technical debt
- DebtModelPluginRepository.class,
- DebtModelXMLExporter.class,
- DebtRulesXMLImporter.class,
-
- // source
- HtmlSourceDecorator.class,
- SourceService.class,
- SourcesWs.class,
- org.sonar.server.source.ws.ShowAction.class,
- LinesAction.class,
- HashAction.class,
- RawAction.class,
- IndexAction.class,
- ScmAction.class,
-
- // Duplications
- DuplicationsParser.class,
- DuplicationsWs.class,
- ShowResponseBuilder.class,
- org.sonar.server.duplication.ws.ShowAction.class,
-
- // text
- MacroInterpreter.class,
-
- // Notifications
- // Those class are required in order to be able to send emails during startup
- // Without having two NotificationModule (one in StartupLevel and one in Level4)
- BuiltInQualityProfilesNotificationTemplate.class,
- BuiltInQualityProfilesNotificationDispatcher.class,
-
- NotificationModule.class,
- NotificationWsModule.class,
- EmailsWsModule.class,
-
- // Tests
- TestsWs.class,
- TestIndexDefinition.class,
-
- // Settings
- PersistentSettings.class,
- PropertiesWs.class,
- org.sonar.server.property.ws.IndexAction.class,
- SettingsWsModule.class,
-
- TypeValidationModule.class,
-
- // Project Links
- ProjectLinksModule.class,
-
- // Project Analyses
- ProjectAnalysisModule.class,
-
- // System
- ServerLogging.class,
- RestartAction.class,
- PingAction.class,
- UpgradesAction.class,
- StatusAction.class,
- MigrateDbAction.class,
- LogsAction.class,
- ChangeLogLevelActionModule.class,
- DbMigrationStatusAction.class,
- HealthActionModule.class,
- SystemWs.class,
-
- // Plugins WS
- PluginUpdateAggregator.class,
- InstalledAction.class,
- AvailableAction.class,
- DownloadAction.class,
- UpdatesAction.class,
- PendingAction.class,
- InstallAction.class,
- org.sonar.server.plugins.ws.UpdateAction.class,
- UninstallAction.class,
- CancelAllAction.class,
- PluginsWs.class,
-
- // Branch
- BranchFeatureProxyImpl.class,
-
- // Project badges
- ProjectBadgesWsModule.class,
-
- // Core Extensions
- CoreExtensionBootstraper.class,
- CoreExtensionStopper.class,
-
- // Compute engine (must be after Views and Developer Cockpit)
- ReportAnalysisFailureNotificationModule.class,
- CeModule.class,
- CeWsModule.class,
-
- // SonarSource editions
- PlatformEditionProvider.class,
-
- InternalPropertiesImpl.class,
-
- // UI
- NavigationWsModule.class,
-
- // root
- RootWsModule.class,
-
- // webhooks
- WebhookModule.class,
- WebhooksWsModule.class,
-
- // Http Request ID
- HttpRequestIdModule.class,
-
- RecoveryIndexer.class,
- ProjectIndexersImpl.class);
-
- // telemetry
- add(TelemetryDataLoader.class);
- addIfStartupLeader(TelemetryDaemon.class, TelemetryClient.class);
-
- // system info
- add(WebSystemInfoModule.class);
-
- addAll(level4AddedComponents);
- }
-
- @Override
- public PlatformLevel start() {
- ComponentContainer container = getContainer();
- CoreExtensionsInstaller coreExtensionsInstaller = get(WebCoreExtensionsInstaller.class);
- coreExtensionsInstaller.install(container, hasPlatformLevel4OrNone(), noAdditionalSideFilter());
- ServerExtensionInstaller extensionInstaller = get(ServerExtensionInstaller.class);
- extensionInstaller.installExtensions(container);
-
- super.start();
-
- return this;
- }
- }
|