summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-27 00:21:44 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-27 11:56:09 +0000
commit39d00826c3e7e30d59e6ca6d88eb3f36fb8358fd (patch)
treea7c3158fd574ec67ab32e66d7cd3ab58ebbdb2cc /documentapi
parent989b8b5afa58dcbfa03e3999d75802ac6c70aa94 (diff)
GC LoadTypeSet
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/CMakeLists.txt1
-rw-r--r--documentapi/src/tests/loadtypes/.gitignore3
-rw-r--r--documentapi/src/tests/loadtypes/CMakeLists.txt10
-rw-r--r--documentapi/src/tests/loadtypes/loadtypetest.cpp74
-rw-r--r--documentapi/src/tests/messagebus/messagebus_test.cpp9
-rw-r--r--documentapi/src/tests/messages/testbase.cpp4
-rw-r--r--documentapi/src/tests/messages/testbase.h5
-rw-r--r--documentapi/src/tests/policies/policies_test.cpp31
-rw-r--r--documentapi/src/tests/policies/testframe.cpp3
-rw-r--r--documentapi/src/tests/policies/testframe.h2
-rw-r--r--documentapi/src/tests/policyfactory/policyfactory.cpp4
-rw-r--r--documentapi/src/tests/routablefactory/routablefactory.cpp7
-rw-r--r--documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt1
-rw-r--r--documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp84
-rw-r--r--documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h69
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp6
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/documentprotocol.h5
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp6
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories60.h4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp9
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablerepository.h5
22 files changed, 37 insertions, 309 deletions
diff --git a/documentapi/CMakeLists.txt b/documentapi/CMakeLists.txt
index 86d29732399..3a6ce0e3a8d 100644
--- a/documentapi/CMakeLists.txt
+++ b/documentapi/CMakeLists.txt
@@ -24,7 +24,6 @@ vespa_define_module(
messagebus_messagebus-test
TESTS
- src/tests/loadtypes
src/tests/messagebus
src/tests/messages
src/tests/policies
diff --git a/documentapi/src/tests/loadtypes/.gitignore b/documentapi/src/tests/loadtypes/.gitignore
deleted file mode 100644
index 497fe4d4b3f..00000000000
--- a/documentapi/src/tests/loadtypes/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.depend
-Makefile
-documentapi_loadtype_test_app
diff --git a/documentapi/src/tests/loadtypes/CMakeLists.txt b/documentapi/src/tests/loadtypes/CMakeLists.txt
deleted file mode 100644
index bac42f9a27e..00000000000
--- a/documentapi/src/tests/loadtypes/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_executable(documentapi_loadtype_test_app TEST
- SOURCES
- loadtypetest.cpp
- DEPENDS
- documentapi
- vdstestlib
- GTest::GTest
-)
-vespa_add_test(NAME documentapi_loadtype_test_app COMMAND documentapi_loadtype_test_app)
diff --git a/documentapi/src/tests/loadtypes/loadtypetest.cpp b/documentapi/src/tests/loadtypes/loadtypetest.cpp
deleted file mode 100644
index 178b9f9227b..00000000000
--- a/documentapi/src/tests/loadtypes/loadtypetest.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
-#include <vespa/config/config.h>
-#include <vespa/config/common/exceptions.h>
-#include <vespa/vespalib/gtest/gtest.h>
-
-namespace documentapi {
-
-void
-assertConfigFailure(const vespalib::string &configId, const vespalib::string &expError)
-{
- try {
- LoadTypeSet createdFromConfigId(configId);
- FAIL() << "Config was expected to fail with error: " << expError;
- } catch (config::InvalidConfigException &e) {
- EXPECT_TRUE(e.getMessage().find(expError) != std::string::npos);
- }
-}
-
-TEST(LoadTypeTest, testConfig)
-{
- // Using id 0 is illegal. Reserved for default type.
- assertConfigFailure(
- "raw:"
- "type[1]\n"
- "type[0].id 0\n"
- "type[0].name \"foo\"\n"
- "type[0].priority \"\"",
- "Load type identifiers need to be");
- // Using name "default" is illegal. Reserved for default type.
- assertConfigFailure(
- "raw:"
- "type[1]\n"
- "type[0].id 1\n"
- "type[0].name \"default\"\n"
- "type[0].priority \"\"", "Load type names need to be");
- // Identifiers need to be unique.
- assertConfigFailure(
- "raw:"
- "type[2]\n"
- "type[0].id 1\n"
- "type[0].name \"test\"\n"
- "type[0].priority \"\"\n"
- "type[1].id 1\n"
- "type[1].name \"testa\"\n"
- "type[1].priority \"\"", "Load type identifiers need to be");
- // Names need to be unique.
- assertConfigFailure(
- "raw:"
- "type[2]\n"
- "type[0].id 1\n"
- "type[0].name \"test\"\n"
- "type[0].priority \"\"\n"
- "type[1].id 2\n"
- "type[1].name \"test\"\n"
- "type[1].priority \"\"" , "Load type names need to be");
- LoadTypeSet set("raw:"
- "type[3]\n"
- "type[0].id 1\n"
- "type[0].name \"user\"\n"
- "type[0].priority \"\"\n"
- "type[1].id 2\n"
- "type[1].name \"maintenance\"\n"
- "type[1].priority \"\"\n"
- "type[2].id 3\n"
- "type[2].name \"put\"\n"
- "type[2].priority \"\""
- );
-}
-
-} // documentapi
-
-GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/documentapi/src/tests/messagebus/messagebus_test.cpp b/documentapi/src/tests/messagebus/messagebus_test.cpp
index 3406db966f0..8f60bbc78e4 100644
--- a/documentapi/src/tests/messagebus/messagebus_test.cpp
+++ b/documentapi/src/tests/messagebus/messagebus_test.cpp
@@ -2,12 +2,9 @@
#include <vespa/document/base/testdocrepo.h>
#include <vespa/document/datatype/documenttype.h>
-#include <vespa/document/fieldvalue/document.h>
#include <vespa/document/repo/documenttyperepo.h>
#include <vespa/document/update/documentupdate.h>
#include <vespa/documentapi/documentapi.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
-#include <vespa/vdslib/state/clusterstate.h>
#include <vespa/vespalib/testkit/testapp.h>
using document::DocumentTypeRepo;
@@ -66,8 +63,7 @@ void Test::testMessage() {
EXPECT_TRUE(upd1.getType() == DocumentProtocol::MESSAGE_UPDATEDOCUMENT);
EXPECT_TRUE(upd1.getProtocol() == "document");
- LoadTypeSet set;
- DocumentProtocol protocol(set, _repo);
+ DocumentProtocol protocol(_repo);
Blob blob = protocol.encode(vespalib::Version(6,221), upd1);
EXPECT_TRUE(blob.size() > 0);
@@ -89,8 +85,7 @@ void Test::testMessage() {
}
void Test::testProtocol() {
- LoadTypeSet set;
- DocumentProtocol protocol(set, _repo);
+ DocumentProtocol protocol(_repo);
EXPECT_TRUE(protocol.getName() == "document");
IRoutingPolicy::UP policy = protocol.createPolicy(string("DocumentRouteSelector"), string("file:documentrouteselectorpolicy.cfg"));
diff --git a/documentapi/src/tests/messages/testbase.cpp b/documentapi/src/tests/messages/testbase.cpp
index 18902cb39a7..967c9990800 100644
--- a/documentapi/src/tests/messages/testbase.cpp
+++ b/documentapi/src/tests/messages/testbase.cpp
@@ -19,11 +19,9 @@ TestBase::TestBase() :
_repo(new DocumentTypeRepo(readDocumenttypesConfig(
TEST_PATH("../../../test/cfg/testdoctypes.cfg")))),
_dataPath(TEST_PATH("../../../test/crosslanguagefiles")),
- _loadTypes(),
- _protocol(_loadTypes, _repo),
+ _protocol(_repo),
_tests()
{
- _loadTypes.addLoadType(34, "foo", Priority::PRI_NORMAL_2);
}
int
diff --git a/documentapi/src/tests/messages/testbase.h b/documentapi/src/tests/messages/testbase.h
index e87f9104189..89398552f63 100644
--- a/documentapi/src/tests/messages/testbase.h
+++ b/documentapi/src/tests/messages/testbase.h
@@ -2,10 +2,10 @@
#pragma once
#include <vespa/documentapi/messagebus/documentprotocol.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
#include <vespa/messagebus/routable.h>
#include <vespa/vespalib/component/version.h>
#include <vespa/vespalib/testkit/testapp.h>
+#include <map>
using namespace documentapi;
@@ -24,8 +24,7 @@ typedef bool (TestBase::*TEST_METHOD_PT)();
class TestBase : public vespalib::TestApp {
std::shared_ptr<const document::DocumentTypeRepo> _repo;
protected:
- const string _dataPath;
- LoadTypeSet _loadTypes;
+ const string _dataPath;
DocumentProtocol _protocol;
std::map<uint32_t, TEST_METHOD_PT> _tests;
diff --git a/documentapi/src/tests/policies/policies_test.cpp b/documentapi/src/tests/policies/policies_test.cpp
index a4eaf54c1dc..0c659f589d6 100644
--- a/documentapi/src/tests/policies/policies_test.cpp
+++ b/documentapi/src/tests/policies/policies_test.cpp
@@ -45,7 +45,6 @@ using namespace std::chrono_literals;
class Test : public vespalib::TestApp {
private:
- LoadTypeSet _loadTypes;
std::shared_ptr<const DocumentTypeRepo> _repo;
const DataType *_docType;
@@ -140,7 +139,7 @@ Test::Main() {
void
Test::testProtocol()
{
- mbus::IProtocol::SP protocol(new DocumentProtocol(_loadTypes, _repo));
+ mbus::IProtocol::SP protocol(new DocumentProtocol(_repo));
mbus::IRoutingPolicy::UP policy = protocol->createPolicy("AND", "");
ASSERT_TRUE(dynamic_cast<ANDPolicy*>(policy.get()) != nullptr);
@@ -220,7 +219,7 @@ Test::requireThatExternPolicySelectsFromExternSlobrok()
for (uint32_t i = 0; i < 10; ++i) {
mbus::TestServer *server = new mbus::TestServer(
mbus::Identity(make_string("docproc/cluster.default/%d", i)), mbus::RoutingSpec(), slobrok,
- mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo)));
+ mbus::IProtocol::SP(new DocumentProtocol(_repo)));
servers.push_back(server);
server->net.registerSession("chain.default");
}
@@ -247,7 +246,7 @@ Test::requireThatExternPolicyMergesOneReplyAsProtocol()
frame.setMessage(newPutDocumentMessage("id:ns:testdoc::"));
mbus::Slobrok slobrok;
mbus::TestServer server(mbus::Identity("docproc/cluster.default/0"), mbus::RoutingSpec(), slobrok,
- mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo)));
+ mbus::IProtocol::SP(new DocumentProtocol(_repo)));
server.net.registerSession("chain.default");
setupExternPolicy(frame, slobrok, "docproc/cluster.default/0/chain.default", 1);
EXPECT_TRUE(frame.testMergeOneReply(server.net.getConnectionSpec() + "/chain.default"));
@@ -310,7 +309,7 @@ Test::testExternSend()
// Setup local source node.
mbus::Slobrok local;
mbus::TestServer src(mbus::Identity("src"), mbus::RoutingSpec(), local,
- std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ std::make_shared<DocumentProtocol>(_repo));
mbus::Receptor sr;
mbus::SourceSession::UP ss = src.mb.createSourceSession(sr, mbus::SourceSessionParams().setTimeout(60s));
@@ -319,12 +318,12 @@ Test::testExternSend()
.addTable(mbus::RoutingTableSpec(DocumentProtocol::NAME)
.addRoute(mbus::RouteSpec("default").addHop("dst"))
.addHop(mbus::HopSpec("dst", "dst/session"))),
- slobrok, std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ slobrok, std::make_shared<DocumentProtocol>(_repo));
mbus::Receptor ir;
mbus::IntermediateSession::UP is = itr.mb.createIntermediateSession("session", true, ir, ir);
mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), slobrok,
- std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ std::make_shared<DocumentProtocol>(_repo));
mbus::Receptor dr;
mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr);
@@ -351,7 +350,7 @@ Test::testExternMultipleSlobroks()
{
mbus::Slobrok local;
mbus::TestServer src(mbus::Identity("src"), mbus::RoutingSpec(), local,
- std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ std::make_shared<DocumentProtocol>(_repo));
mbus::Receptor sr;
mbus::SourceSession::UP ss = src.mb.createSourceSession(sr, mbus::SourceSessionParams().setTimeout(60s));
@@ -362,7 +361,7 @@ Test::testExternMultipleSlobroks()
spec.append(vespalib::make_string("tcp/localhost:%d", ext.port()));
mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), ext,
- std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ std::make_shared<DocumentProtocol>(_repo));
mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr);
mbus::Message::UP msg = std::make_unique<GetDocumentMessage>(DocumentId("id:ns:testdoc::"));
@@ -378,7 +377,7 @@ Test::testExternMultipleSlobroks()
spec.append(vespalib::make_string(",tcp/localhost:%d", ext.port()));
mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), ext,
- std::make_shared<DocumentProtocol>(_loadTypes, _repo));
+ std::make_shared<DocumentProtocol>(_repo));
mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr);
mbus::Message::UP msg = std::make_unique<GetDocumentMessage>(DocumentId("id:ns:testdoc::"));
@@ -592,12 +591,12 @@ Test::testDocumentRouteSelector()
"route[0].selector \"foo bar\"\n"
"route[0].feed \"baz\"\n";
{
- DocumentProtocol protocol(_loadTypes, _repo, okConfig);
+ DocumentProtocol protocol(_repo, okConfig);
EXPECT_TRUE(dynamic_cast<DocumentRouteSelectorPolicy*>(protocol.createPolicy("DocumentRouteSelector", "").get()) != nullptr);
EXPECT_TRUE(dynamic_cast<ErrorPolicy*>(protocol.createPolicy("DocumentRouteSelector", errConfig).get()) != nullptr);
}
{
- DocumentProtocol protocol(_loadTypes, _repo, errConfig);
+ DocumentProtocol protocol(_repo, errConfig);
EXPECT_TRUE(dynamic_cast<ErrorPolicy*>(protocol.createPolicy("DocumentRouteSelector", "").get()) != nullptr);
EXPECT_TRUE(dynamic_cast<DocumentRouteSelectorPolicy*>(protocol.createPolicy("DocumentRouteSelector", okConfig).get()) != nullptr);
}
@@ -802,7 +801,7 @@ Test::requireThatStoragePolicyIsRandomWithoutState()
mbus::TestServer *srv = new mbus::TestServer(
mbus::Identity(vespalib::make_string("storage/cluster.mycluster/distributor/%d", i)),
mbus::RoutingSpec(), slobrok,
- mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo)));
+ mbus::IProtocol::SP(new DocumentProtocol(_repo)));
servers.push_back(srv);
srv->net.registerSession("default");
}
@@ -857,7 +856,7 @@ Test::requireThatStoragePolicyIsTargetedWithState()
mbus::TestServer *srv = new mbus::TestServer(
mbus::Identity(vespalib::make_string("storage/cluster.mycluster/distributor/%d", i)),
mbus::RoutingSpec(), slobrok,
- make_shared<DocumentProtocol>(_loadTypes, _repo));
+ make_shared<DocumentProtocol>(_repo));
servers.push_back(srv);
srv->net.registerSession("default");
}
@@ -897,7 +896,7 @@ Test::requireThatStoragePolicyCombinesSystemAndSlobrokState()
mbus::Slobrok slobrok;
mbus::TestServer server(mbus::Identity("storage/cluster.mycluster/distributor/0"),
mbus::RoutingSpec(), slobrok,
- make_shared<DocumentProtocol>(_loadTypes, _repo));
+ make_shared<DocumentProtocol>(_repo));
server.net.registerSession("default");
string param = vespalib::make_string(
@@ -1053,7 +1052,7 @@ Test::trySelect(TestFrame &frame, uint32_t numSelects, const std::vector<string>
bool
Test::isErrorPolicy(const string &name, const string &param)
{
- DocumentProtocol protocol(_loadTypes, _repo);
+ DocumentProtocol protocol(_repo);
mbus::IRoutingPolicy::UP policy = protocol.createPolicy(name, param);
return policy && dynamic_cast<ErrorPolicy*>(policy.get()) != nullptr;
diff --git a/documentapi/src/tests/policies/testframe.cpp b/documentapi/src/tests/policies/testframe.cpp
index 585885b7c4b..16ee97ce7f4 100644
--- a/documentapi/src/tests/policies/testframe.cpp
+++ b/documentapi/src/tests/policies/testframe.cpp
@@ -60,9 +60,8 @@ public:
TestFrame::TestFrame(const std::shared_ptr<const DocumentTypeRepo> &repo, const string &ident) :
_identity(ident),
_slobrok(std::make_shared<mbus::Slobrok>()),
- _set(),
_net(std::make_shared<MyNetwork>(mbus::RPCNetworkParams(_slobrok->config()).setIdentity(mbus::Identity(ident)))),
- _mbus(std::make_shared<mbus::MessageBus>(*_net, mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(_set, repo)))),
+ _mbus(std::make_shared<mbus::MessageBus>(*_net, mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(repo)))),
_msg(),
_hop(mbus::HopSpec("foo", "bar")),
_handler()
diff --git a/documentapi/src/tests/policies/testframe.h b/documentapi/src/tests/policies/testframe.h
index d85cde129c0..41f953922f9 100644
--- a/documentapi/src/tests/policies/testframe.h
+++ b/documentapi/src/tests/policies/testframe.h
@@ -7,7 +7,6 @@
#include <vespa/messagebus/network/inetwork.h>
#include <vespa/messagebus/testlib/receptor.h>
#include <vespa/messagebus/testlib/slobrok.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
using documentapi::string;
@@ -15,7 +14,6 @@ class TestFrame : public mbus::IReplyHandler {
private:
string _identity;
std::shared_ptr<mbus::Slobrok> _slobrok;
- documentapi::LoadTypeSet _set;
std::shared_ptr<mbus::INetwork> _net;
std::shared_ptr<mbus::MessageBus> _mbus;
mbus::Message::UP _msg;
diff --git a/documentapi/src/tests/policyfactory/policyfactory.cpp b/documentapi/src/tests/policyfactory/policyfactory.cpp
index 729818c5c4a..8c38e93e659 100644
--- a/documentapi/src/tests/policyfactory/policyfactory.cpp
+++ b/documentapi/src/tests/policyfactory/policyfactory.cpp
@@ -2,7 +2,6 @@
#include <vespa/documentapi/messagebus/iroutingpolicyfactory.h>
#include <vespa/document/repo/documenttyperepo.h>
#include <vespa/documentapi/messagebus/documentprotocol.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
#include <vespa/documentapi/messagebus/messages/removedocumentmessage.h>
#include <vespa/messagebus/testlib/receptor.h>
#include <vespa/messagebus/testlib/slobrok.h>
@@ -82,9 +81,8 @@ Test::Main()
std::shared_ptr<const DocumentTypeRepo> repo(new DocumentTypeRepo);
mbus::Slobrok slobrok;
- LoadTypeSet loadTypes;
mbus::TestServer
- srv(mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(loadTypes, repo)),
+ srv(mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(repo)),
mbus::RPCNetworkParams(slobrok.config()));
mbus::Receptor handler;
mbus::SourceSession::UP src = srv.mb.createSourceSession(mbus::SourceSessionParams().setReplyHandler(handler));
diff --git a/documentapi/src/tests/routablefactory/routablefactory.cpp b/documentapi/src/tests/routablefactory/routablefactory.cpp
index 32a36ef0b59..92e982b2be4 100644
--- a/documentapi/src/tests/routablefactory/routablefactory.cpp
+++ b/documentapi/src/tests/routablefactory/routablefactory.cpp
@@ -6,7 +6,6 @@
#include <vespa/messagebus/testlib/slobrok.h>
#include <vespa/messagebus/testlib/testserver.h>
#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
using document::DocumentTypeRepo;
using namespace documentapi;
@@ -87,7 +86,6 @@ class TestData {
public:
mbus::Slobrok _slobrok;
- LoadTypeSet _loadTypes;
DocumentProtocol::SP _srcProtocol;
mbus::TestServer _srcServer;
mbus::SourceSession::UP _srcSession;
@@ -116,13 +114,12 @@ TEST_APPHOOK(Test);
TestData::TestData() :
_repo(std::make_shared<DocumentTypeRepo>()),
_slobrok(),
- _loadTypes(),
- _srcProtocol(std::make_shared<DocumentProtocol>(_loadTypes, _repo)),
+ _srcProtocol(std::make_shared<DocumentProtocol>(_repo)),
_srcServer(mbus::MessageBusParams().addProtocol(_srcProtocol),
mbus::RPCNetworkParams(_slobrok.config())),
_srcSession(),
_srcHandler(),
- _dstProtocol(std::make_shared<DocumentProtocol>(_loadTypes, _repo)),
+ _dstProtocol(std::make_shared<DocumentProtocol>(_repo)),
_dstServer(mbus::MessageBusParams().addProtocol(_dstProtocol),
mbus::RPCNetworkParams(_slobrok.config()).setIdentity(mbus::Identity("dst"))),
_dstSession(),
diff --git a/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt b/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt
index 42f4d66af07..84bc871b452 100644
--- a/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt
+++ b/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt
@@ -2,6 +2,5 @@
vespa_add_library(documentapi_documentapiloadtypes OBJECT
SOURCES
loadtype.cpp
- loadtypeset.cpp
DEPENDS
)
diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp b/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp
deleted file mode 100644
index 42aa79332db..00000000000
--- a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "loadtypeset.h"
-#include <vespa/config-load-type.h>
-#include <vespa/config/config.h>
-#include <vespa/config/common/exceptions.h>
-#include <vespa/vespalib/util/stringfmt.h>
-#include <vespa/vespalib/stllike/hash_map.hpp>
-#include <vespa/config/helper/configgetter.hpp>
-
-
-namespace documentapi {
-
-void LoadTypeSet::configure(const LoadTypeConfig& config) {
- // This configure does not support live reconfig
- if (!_types.empty()) return;
-
- addLoadType(0, LoadType::DEFAULT.getName(), LoadType::DEFAULT.getPriority());
-
- for (uint32_t i=0; i<config.type.size(); ++i) {
- addLoadType(config.type[i].id, config.type[i].name, Priority::getPriority(config.type[i].priority));
- }
-}
-
-LoadTypeSet::LoadTypeSet()
-{
- addLoadType(0, LoadType::DEFAULT.getName(), LoadType::DEFAULT.getPriority());
-}
-
-LoadTypeSet::LoadTypeSet(const config::ConfigUri & configUri)
-{
- std::unique_ptr<LoadTypeConfig> cfg = config::ConfigGetter<LoadTypeConfig>::getConfig(configUri.getConfigId(), configUri.getContext());
- configure(*cfg);
-}
-
-LoadTypeSet::LoadTypeSet(const LoadTypeConfig& config)
-{
- configure(config);
-}
-
-LoadTypeSet::~LoadTypeSet() = default;
-
-void
-LoadTypeSet::addLoadType(uint32_t id, const string& name, Priority::Value priority) {
- auto it(_types.find(id));
- if (it != _types.end()) {
- throw config::InvalidConfigException("Load type identifiers need to be non-overlapping, 1+ and without gaps.\n", VESPA_STRLOC);
- }
- if (_nameMap.find(name) != _nameMap.end()) {
- throw config::InvalidConfigException("Load type names need to be unique and different from the reserved name \"default\".", VESPA_STRLOC);
- }
- _types[id] = std::make_unique<LoadType>(id, name, priority);
- _nameMap[name] = _types[id].get();
-}
-
-metrics::LoadTypeSet
-LoadTypeSet::getMetricLoadTypes() const {
- metrics::LoadTypeSet result;
- for (const auto & entry : _types) {
- result.push_back(metrics::LoadType(entry.first, entry.second->getName()));
- }
- return result;
-}
-
-const LoadType&
-LoadTypeSet::operator[](uint32_t id) const {
- auto it(_types.find(id));
- return (it == _types.end() ? LoadType::DEFAULT : *it->second);
-}
-
-const LoadType&
-LoadTypeSet::operator[](const string& name) const {
- auto it(_nameMap.find(name));
-
- return (it == _nameMap.end() ? LoadType::DEFAULT : *it->second);
-}
-
-const LoadType*
-LoadTypeSet::findLoadType(const string& name) const {
- auto it(_nameMap.find(name));
- return (it == _nameMap.end() ? 0 : it->second);
-}
-
-}
diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h b/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h
deleted file mode 100644
index f593935e8b3..00000000000
--- a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-/**
- * \class LoadTypeSet
- * \ingroup loadtype
- *
- * \brief Class containing all the various load types that have been configured.
- *
- * The load type set makes configured load types available in an easy way for
- * different parts of Vespa to access it.
- */
-#pragma once
-
-#include "loadtype.h"
-#include <vespa/vespalib/stllike/hash_map.h>
-#include <map>
-
-namespace config {
- class ConfigUri;
-}
-
-namespace vespa {
-namespace config {
-namespace content {
-namespace internal {
- class InternalLoadTypeType;
-}
-}
-}
-}
-
-namespace documentapi {
-
-class LoadTypeSet
-{
- using LoadTypeConfig = const vespa::config::content::internal::InternalLoadTypeType;
- vespalib::hash_map<uint32_t, std::unique_ptr<LoadType>> _types;
- // Want order to be ~ alphabetical.
- std::map<string, LoadType*> _nameMap;
-
- void configure(const LoadTypeConfig& config);
-public:
- typedef std::unique_ptr<LoadTypeSet> UP;
- typedef std::shared_ptr<LoadTypeSet> SP;
-
- LoadTypeSet(const LoadTypeSet&) = delete;
- LoadTypeSet& operator=(const LoadTypeSet&) = delete;
-
- LoadTypeSet();
- LoadTypeSet(const config::ConfigUri & configUri);
- LoadTypeSet(const LoadTypeConfig& config);
- ~LoadTypeSet();
-
- void addLoadType(uint32_t id, const string& name, Priority::Value priority);
-
- const std::map<string, LoadType*>& getLoadTypes() const { return _nameMap; }
- metrics::LoadTypeSet getMetricLoadTypes() const;
-
- const LoadType& operator[](uint32_t id) const;
- const LoadType& operator[](const string& name) const;
- uint32_t size() const { return uint32_t(_types.size()); }
-
- /**
- * Attempts to locate a load type with given name. Returns 0 if none found.
- */
- const LoadType* findLoadType(const string& name) const;
-};
-
-} // documentapi
-
diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
index a957ce5e4ff..560f2f28f0e 100644
--- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
@@ -21,11 +21,9 @@ namespace documentapi {
const mbus::string DocumentProtocol::NAME = "document";
-DocumentProtocol::DocumentProtocol(const LoadTypeSet& loadTypes,
- std::shared_ptr<const DocumentTypeRepo> repo,
- const string &configId) :
+DocumentProtocol::DocumentProtocol(std::shared_ptr<const DocumentTypeRepo> repo, const string &configId) :
_routingPolicyRepository(std::make_unique<RoutingPolicyRepository>()),
- _routableRepository(std::make_unique<RoutableRepository>(loadTypes)),
+ _routableRepository(std::make_unique<RoutableRepository>()),
_repo(std::move(repo))
{
// Prepare config string for routing policy factories.
diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h
index eeae4553b3b..f35c6dd0810 100644
--- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h
+++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h
@@ -17,7 +17,6 @@ namespace document {
namespace documentapi {
-class LoadTypeSet;
class RoutingPolicyRepository;
class RoutableRepository;
class IRoutingPolicyFactory;
@@ -194,9 +193,7 @@ public:
*
* @param configId The id to use when subscribing to config.
*/
- DocumentProtocol(const LoadTypeSet& loadTypes,
- std::shared_ptr<const document::DocumentTypeRepo> repo,
- const string &configId = "");
+ DocumentProtocol(std::shared_ptr<const document::DocumentTypeRepo> repo, const string &configId = "");
~DocumentProtocol() override;
/**
diff --git a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h
index 2b492dea240..9a41960b852 100644
--- a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h
+++ b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h
@@ -8,8 +8,6 @@
namespace documentapi {
-class LoadTypeSet;
-
/**
* This interface defines the necessary methods of a routable factory that can be plugged into a {@link
* DocumentProtocol} using the {@link DocumentProtocol#putRoutableFactory(int, RoutableFactory,
@@ -59,7 +57,7 @@ public:
* @param loadTypes The set of configured load types.
* @return The decoded routable.
*/
- virtual mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const = 0;
+ virtual mbus::Routable::UP decode(document::ByteBuffer &in) const = 0;
};
}
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp
index 26e609c79fa..3af4e6ee23d 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp
@@ -7,7 +7,7 @@
#include <vespa/document/select/parser.h>
#include <vespa/document/update/documentupdate.h>
#include <vespa/documentapi/documentapi.h>
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
+#include <vespa/documentapi/loadtypes/loadtype.h>
#include <vespa/vespalib/objects/nbostream.h>
using document::FixedBucketSpaces;
@@ -27,7 +27,7 @@ RoutableFactories60::DocumentMessageFactory::encode(const mbus::Routable &obj, v
}
mbus::Routable::UP
-RoutableFactories60::DocumentMessageFactory::decode(document::ByteBuffer &in, const LoadTypeSet&) const
+RoutableFactories60::DocumentMessageFactory::decode(document::ByteBuffer &in) const
{
uint8_t pri;
in.getByte(pri);
@@ -50,7 +50,7 @@ RoutableFactories60::DocumentReplyFactory::encode(const mbus::Routable &obj, ves
}
mbus::Routable::UP
-RoutableFactories60::DocumentReplyFactory::decode(document::ByteBuffer &in, const LoadTypeSet&) const
+RoutableFactories60::DocumentReplyFactory::decode(document::ByteBuffer &in) const
{
uint8_t pri;
in.getByte(pri);
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
index 579abbda291..7e8156ee071 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
+++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
@@ -87,7 +87,7 @@ public:
public:
bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override;
- mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override;
+ mbus::Routable::UP decode(document::ByteBuffer &in) const override;
};
/**
@@ -121,7 +121,7 @@ public:
public:
bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override;
- mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override;
+ mbus::Routable::UP decode(document::ByteBuffer &in) const override;
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp b/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp
index 6ed33cda060..60cdbb3a5e8 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp
@@ -1,9 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "routablerepository.h"
-#include <vespa/documentapi/loadtypes/loadtypeset.h>
#include <vespa/document/util/stringutil.h>
-#include <vespa/vespalib/util/exceptions.h>
#include <sstream>
#include <algorithm>
@@ -44,11 +42,10 @@ RoutableRepository::VersionMap::getFactory(const vespalib::Version &version) con
[](auto & lhs, auto & rhs) { return lhs.first.compareTo(rhs.first) <= 0; })->second;
}
-RoutableRepository::RoutableRepository(const LoadTypeSet& loadTypes) :
+RoutableRepository::RoutableRepository() :
_lock(),
_factoryTypes(),
- _cache(),
- _loadTypes(loadTypes)
+ _cache()
{
}
@@ -69,7 +66,7 @@ RoutableRepository::decode(const vespalib::Version &version, mbus::BlobRef data)
type, version.toString().c_str());
return mbus::Routable::UP();
}
- mbus::Routable::UP ret = factory->decode(in, _loadTypes);
+ mbus::Routable::UP ret = factory->decode(in);
if (!ret) {
LOG(error, "Routable factory failed to deserialize routable of type %d (version %s).",
type, version.toString().c_str());
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h
index 7e73f3929b8..04240b99bd7 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h
+++ b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h
@@ -9,8 +9,6 @@
namespace documentapi {
-class LoadTypeSet;
-
/**
* This class encapsulates the logic required to map routable type and version to a corresponding {@link
* RoutableFactory}. It is owned and accessed through a {@link DocumentProtocol} instance. This class uses a
@@ -40,7 +38,6 @@ private:
mutable std::mutex _lock;
TypeMap _factoryTypes;
mutable FactoryCache _cache;
- const LoadTypeSet& _loadTypes;
public:
RoutableRepository(const RoutableRepository &) = delete;
@@ -48,7 +45,7 @@ public:
/**
* Constructs a new routable repository.
*/
- explicit RoutableRepository(const LoadTypeSet& loadTypes);
+ explicit RoutableRepository();
/**
* Decodes a {@link Routable} from the given byte array. This uses the content of the byte array to