summaryrefslogtreecommitdiff
path: root/src/mongo/embedded/embedded.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/embedded/embedded.cpp')
-rw-r--r--src/mongo/embedded/embedded.cpp21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/mongo/embedded/embedded.cpp b/src/mongo/embedded/embedded.cpp
index 9849aa0a151..f712e3a749b 100644
--- a/src/mongo/embedded/embedded.cpp
+++ b/src/mongo/embedded/embedded.cpp
@@ -51,7 +51,6 @@
#include "mongo/db/op_observer_registry.h"
#include "mongo/db/repair_database_and_check_version.h"
#include "mongo/db/repl/storage_interface_impl.h"
-#include "mongo/db/service_context_registrar.h"
#include "mongo/db/session_catalog.h"
#include "mongo/db/session_killer.h"
#include "mongo/db/storage/encryption_hooks.h"
@@ -59,7 +58,6 @@
#include "mongo/db/ttl.h"
#include "mongo/embedded/periodic_runner_embedded.h"
#include "mongo/embedded/replication_coordinator_embedded.h"
-#include "mongo/embedded/service_context_embedded.h"
#include "mongo/embedded/service_entry_point_embedded.h"
#include "mongo/logger/log_component.h"
#include "mongo/scripting/dbdirectclient_factory.h"
@@ -100,11 +98,10 @@ MONGO_INITIALIZER_GENERAL(ForkServer, ("EndStartupOptionHandling"), ("default"))
// Create a minimalistic replication coordinator to provide a limited interface for users. Not
// functional to provide any replication logic.
-GlobalInitializerRegisterer replicationManagerInitializer(
+ServiceContext::ConstructorActionRegisterer replicationManagerInitializer(
"CreateReplicationManager",
- {"SSLManager", "ServiceContext", "default"},
- [](InitializerContext* context) {
- auto serviceContext = getGlobalServiceContext();
+ {"SSLManager", "default"},
+ [](ServiceContext* serviceContext) {
repl::StorageInterface::set(serviceContext, std::make_unique<repl::StorageInterfaceImpl>());
auto logicalClock = stdx::make_unique<LogicalClock>(serviceContext);
@@ -113,16 +110,6 @@ GlobalInitializerRegisterer replicationManagerInitializer(
auto replCoord = std::make_unique<ReplicationCoordinatorEmbedded>(serviceContext);
repl::ReplicationCoordinator::set(serviceContext, std::move(replCoord));
repl::setOplogCollectionName(serviceContext);
- return Status::OK();
- },
- [](DeinitializerContext* context) {
- auto serviceContext = getGlobalServiceContext();
-
- repl::ReplicationCoordinator::set(serviceContext, nullptr);
- LogicalClock::set(serviceContext, nullptr);
- repl::StorageInterface::set(serviceContext, nullptr);
-
- return Status::OK();
});
MONGO_INITIALIZER(fsyncLockedForWriting)(InitializerContext* context) {
@@ -197,12 +184,14 @@ ServiceContext* initialize(const char* yaml_config) {
Status status = mongo::runGlobalInitializers(yaml_config ? 1 : 0, argv, nullptr);
uassertStatusOKWithContext(status, "Global initilization failed");
+ setGlobalServiceContext(ServiceContext::make());
Client::initThread("initandlisten");
initWireSpec();
auto serviceContext = getGlobalServiceContext();
+ serviceContext->setServiceEntryPoint(std::make_unique<ServiceEntryPointEmbedded>());
auto opObserverRegistry = std::make_unique<OpObserverRegistry>();
opObserverRegistry->addObserver(std::make_unique<OpObserverImpl>());