diff options
author | Andrew Stitcher <astitcher@apache.org> | 2014-07-01 19:12:38 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2014-07-01 19:12:38 +0000 |
commit | c1ed3d54c1132c2810e907d87ecec7f5491b118b (patch) | |
tree | 54f088a87c705374737f477a4160853b352dcbd4 | |
parent | b2bd2715e9b15271fb051e594f8bd141cf4b073a (diff) | |
download | qpid-python-c1ed3d54c1132c2810e907d87ecec7f5491b118b.tar.gz |
QPID-3921: Refactored Broker::Options into its own independent class
- Now called BrokerOptions
- Added extra getters to Broker so that nothing else needs to know
about BrokerOptions
- Significantly reduces header coupling as lots of files include
Broker.h, but now don't need Options.h
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1607166 13f79535-47bb-0310-9956-ffa450edef68
29 files changed, 265 insertions, 154 deletions
diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp index 7bb93fc1c4..b981a6d0fe 100644 --- a/qpid/cpp/src/qpid/broker/Broker.cpp +++ b/qpid/cpp/src/qpid/broker/Broker.cpp @@ -22,6 +22,7 @@ #include "qpid/broker/Broker.h" #include "qpid/broker/AclModule.h" +#include "qpid/broker/BrokerOptions.h" #include "qpid/broker/Connection.h" #include "qpid/broker/DirectExchange.h" #include "qpid/broker/FanOutExchange.h" @@ -119,7 +120,7 @@ const std::string amq_match("amq.match"); const std::string qpid_management("qpid.management"); const std::string knownHostsNone("none"); -Broker::Options::Options(const std::string& name) : +BrokerOptions::BrokerOptions(const std::string& name) : qpid::Options(name), noDataDir(0), port(DEFAULT_PORT), @@ -208,25 +209,25 @@ framing::FieldTable noReplicateArgs() { } } -Broker::Broker(const Broker::Options& conf) : +Broker::Broker(const BrokerOptions& conf) : poller(new Poller), timer(new qpid::sys::Timer), config(conf), managementAgent(conf.enableMgmt ? new ManagementAgent(conf.qmf1Support, conf.qmf2Support) : 0), - disabledListeningTransports(config.listenDisabled.begin(), config.listenDisabled.end()), + disabledListeningTransports(conf.listenDisabled.begin(), conf.listenDisabled.end()), store(new NullMessageStore), acl(0), dataDir(conf.noDataDir ? std::string() : conf.dataDir), pagingDir(!conf.pagingDir.empty() ? conf.pagingDir : - dataDir.isEnabled() ? dataDir.getPath() + Options::DEFAULT_PAGED_QUEUE_DIR : + dataDir.isEnabled() ? dataDir.getPath() + BrokerOptions::DEFAULT_PAGED_QUEUE_DIR : std::string() ), queues(this), exchanges(this), links(this), factory(new SecureConnectionFactory(*this)), - dtxManager(*timer.get(), getOptions().dtxDefaultTimeout), + dtxManager(*timer.get(), conf.dtxDefaultTimeout), sessionManager( qpid::SessionState::Configuration( conf.replayFlushLimit*1024, // convert kb to bytes. @@ -234,6 +235,7 @@ Broker::Broker(const Broker::Options& conf) : *this), queueCleaner(queues, poller, timer.get()), recoveryInProgress(false), + timestampRcvMsgs(conf.timestampRcvMsgs), getKnownBrokers(boost::bind(&Broker::getKnownBrokersImpl, this)) { if (!dataDir.isEnabled()) { @@ -400,15 +402,79 @@ void Broker::declareStandardExchange(const std::string& name, const std::string& } } +bool Broker::isAuthenticating() const +{ + return config.auth; +} + +bool Broker::requireEncrypted() const +{ + return config.requireEncrypted; +} + +std::string Broker::getRealm() const +{ + return config.realm; +} + +bool Broker::getTcpNoDelay() const +{ + return config.tcpNoDelay; +} + +uint32_t Broker::getMaxNegotiateTime() const +{ + return config.maxNegotiateTime; +} + +uint16_t Broker::getPortOption() const +{ + return config.port; +} + +const std::vector<std::string>& Broker::getListenInterfaces() const +{ + return config.listenInterfaces; +} + +int Broker::getConnectionBacklog() const +{ + return config.connectionBacklog; +} + +sys::Duration Broker::getLinkMaintenanceInterval() const +{ + return config.linkMaintenanceInterval; +} + +sys::Duration Broker::getLinkHeartbeatInterval() const +{ + return config.linkHeartbeatInterval; +} + +uint32_t Broker::getDtxMaxTimeout() const +{ + return config.dtxMaxTimeout; +} + +uint16_t Broker::getQueueThresholdEventRatio() const +{ + return config.queueThresholdEventRatio; +} + +uint Broker::getQueueLimit() const +{ + return config.queueLimit; +} boost::intrusive_ptr<Broker> Broker::create(int16_t port) { - Options config; + BrokerOptions config; config.port=port; return create(config); } -boost::intrusive_ptr<Broker> Broker::create(const Options& opts) +boost::intrusive_ptr<Broker> Broker::create(const BrokerOptions& opts) { return boost::intrusive_ptr<Broker>(new Broker(opts)); } @@ -1031,7 +1097,7 @@ Manageable::status_t Broker::getTimestampConfig(bool& receive, if (acl && !acl->authorise(userId, acl::ACT_ACCESS, acl::OBJ_BROKER, name, NULL)) { throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied broker timestamp get request from " << userId)); } - receive = config.timestampRcvMsgs; + receive = timestampRcvMsgs; return Manageable::STATUS_OK; } @@ -1043,8 +1109,8 @@ Manageable::status_t Broker::setTimestampConfig(const bool receive, if (acl && !acl->authorise(userId, acl::ACT_UPDATE, acl::OBJ_BROKER, name, NULL)) { throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied broker timestamp set request from " << userId)); } - config.timestampRcvMsgs = receive; - QPID_LOG(notice, "Receive message timestamping is " << ((config.timestampRcvMsgs) ? "ENABLED." : "DISABLED.")); + timestampRcvMsgs = receive; + QPID_LOG(notice, "Receive message timestamping is " << ((timestampRcvMsgs) ? "ENABLED." : "DISABLED.")); return Manageable::STATUS_OK; } diff --git a/qpid/cpp/src/qpid/broker/Broker.h b/qpid/cpp/src/qpid/broker/Broker.h index bd18d2f5ec..25e4e9f0ef 100644 --- a/qpid/cpp/src/qpid/broker/Broker.h +++ b/qpid/cpp/src/qpid/broker/Broker.h @@ -1,5 +1,5 @@ -#ifndef _Broker_ -#define _Broker_ +#ifndef QPID_BROKER_BROKER_H +#define QPID_BROKER_BROKER_H /* * @@ -64,6 +64,7 @@ struct Url; namespace broker { class AclModule; +struct BrokerOptions; class Message; struct QueueSettings; @@ -82,55 +83,6 @@ class Broker : public sys::Runnable, public Plugin::Target, public management::Manageable, public RefCounted { - public: - - struct Options : public qpid::Options { - static const std::string DEFAULT_DATA_DIR_LOCATION; - static const std::string DEFAULT_DATA_DIR_NAME; - static const std::string DEFAULT_PAGED_QUEUE_DIR; - - QPID_BROKER_EXTERN Options(const std::string& name="Broker Options"); - - bool noDataDir; - std::string dataDir; - std::string pagingDir; - uint16_t port; - std::vector<std::string> listenInterfaces; - std::vector<std::string> listenDisabled; - int workerThreads; - int connectionBacklog; - bool enableMgmt; - bool mgmtPublish; - sys::Duration mgmtPubInterval; - sys::Duration queueCleanInterval; - bool auth; - std::string realm; - size_t replayFlushLimit; - size_t replayHardLimit; - uint queueLimit; - bool tcpNoDelay; - bool requireEncrypted; - std::string knownHosts; - std::string saslConfigPath; - bool qmf2Support; - bool qmf1Support; - uint queueFlowStopRatio; // producer flow control: on - uint queueFlowResumeRatio; // producer flow control: off - uint16_t queueThresholdEventRatio; - std::string defaultMsgGroup; - bool timestampRcvMsgs; - sys::Duration linkMaintenanceInterval; - sys::Duration linkHeartbeatInterval; - uint32_t dtxDefaultTimeout; // Default timeout of a DTX transaction - uint32_t dtxMaxTimeout; // Maximal timeout of a DTX transaction - uint32_t maxNegotiateTime; // Max time in ms for connection with no negotiation - std::string fedTag; - - private: - std::string getHome(); - }; - - private: struct TransportInfo { boost::shared_ptr<sys::TransportAcceptor> acceptor; boost::shared_ptr<sys::TransportConnector> connectorFactory; @@ -173,7 +125,7 @@ class Broker : public sys::Runnable, public Plugin::Target, void queueRedirectDestroy(boost::shared_ptr<Queue> srcQ, boost::shared_ptr<Queue> tgtQ, bool moveMsgs); boost::shared_ptr<sys::Poller> poller; std::auto_ptr<sys::Timer> timer; - Options config; + const BrokerOptions& config; std::auto_ptr<management::ManagementAgent> managementAgent; std::set<std::string> disabledListeningTransports; TransportMap transportMap; @@ -207,12 +159,13 @@ class Broker : public sys::Runnable, public Plugin::Target, mutable sys::Mutex linkClientPropertiesLock; framing::FieldTable linkClientProperties; + bool timestampRcvMsgs; public: QPID_BROKER_EXTERN virtual ~Broker(); - QPID_BROKER_EXTERN Broker(const Options& configuration); - static QPID_BROKER_EXTERN boost::intrusive_ptr<Broker> create(const Options& configuration); + QPID_BROKER_EXTERN Broker(const BrokerOptions& configuration); + static QPID_BROKER_EXTERN boost::intrusive_ptr<Broker> create(const BrokerOptions& configuration); static QPID_BROKER_EXTERN boost::intrusive_ptr<Broker> create(int16_t port = DEFAULT_PORT); /** @@ -243,7 +196,6 @@ class Broker : public sys::Runnable, public Plugin::Target, DtxManager& getDtxManager() { return dtxManager; } const DataDir& getDataDir() { return dataDir; } const DataDir& getPagingDir() { return pagingDir; } - Options& getOptions() { return config; } ProtocolRegistry& getProtocolRegistry() { return protocolRegistry; } ObjectFactoryRegistry& getObjectFactoryRegistry() { return objectFactory; } @@ -307,13 +259,8 @@ class Broker : public sys::Runnable, public Plugin::Target, static QPID_BROKER_EXTERN const std::string TCP_TRANSPORT; - bool inRecovery() const { return recoveryInProgress; } - management::ManagementAgent* getManagementAgent() { return managementAgent.get(); } - bool isAuthenticating ( ) { return config.auth; } - bool isTimestamping() { return config.timestampRcvMsgs; } - typedef boost::function1<void, boost::shared_ptr<Queue> > QueueFunctor; QPID_BROKER_EXTERN std::pair<boost::shared_ptr<Queue>, bool> createQueue( @@ -369,11 +316,26 @@ class Broker : public sys::Runnable, public Plugin::Target, QPID_BROKER_EXTERN framing::FieldTable getLinkClientProperties() const; QPID_BROKER_EXTERN void setLinkClientProperties(const framing::FieldTable&); + bool inRecovery() const { return recoveryInProgress; } + bool isTimestamping() const { return timestampRcvMsgs; } + QPID_BROKER_EXTERN bool isAuthenticating() const; + QPID_BROKER_EXTERN bool requireEncrypted() const; + QPID_BROKER_EXTERN std::string getRealm() const; + QPID_BROKER_EXTERN bool getTcpNoDelay() const; + QPID_BROKER_EXTERN uint16_t getPortOption() const; + QPID_BROKER_EXTERN const std::vector<std::string>& getListenInterfaces() const; + QPID_BROKER_EXTERN int getConnectionBacklog() const; + uint32_t getMaxNegotiateTime() const; + sys::Duration getLinkMaintenanceInterval() const; + QPID_BROKER_EXTERN sys::Duration getLinkHeartbeatInterval() const; + uint32_t getDtxMaxTimeout() const; + uint16_t getQueueThresholdEventRatio() const; + uint getQueueLimit() const; + /** Information identifying this system */ boost::shared_ptr<const System> getSystem() const { return systemObject; } - friend class StatusCheckThread; }; }} -#endif /*!_Broker_*/ +#endif diff --git a/qpid/cpp/src/qpid/broker/BrokerOptions.h b/qpid/cpp/src/qpid/broker/BrokerOptions.h new file mode 100644 index 0000000000..81844a8631 --- /dev/null +++ b/qpid/cpp/src/qpid/broker/BrokerOptions.h @@ -0,0 +1,86 @@ +#ifndef QPID_BROKER_BROKEROPTIONS_H +#define QPID_BROKER_BROKEROPTIONS_H + +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +#include "qpid/Options.h" +#include "qpid/sys/Time.h" +#include "qpid/sys/IntegerTypes.h" + +#include "qpid/broker/BrokerImportExport.h" + +#include <string> +#include <vector> + +namespace qpid { +namespace broker { + +struct BrokerOptions : public qpid::Options +{ + static const std::string DEFAULT_DATA_DIR_LOCATION; + static const std::string DEFAULT_DATA_DIR_NAME; + static const std::string DEFAULT_PAGED_QUEUE_DIR; + + QPID_BROKER_EXTERN BrokerOptions(const std::string& name="Broker Options"); + + bool noDataDir; + std::string dataDir; + std::string pagingDir; + uint16_t port; + std::vector<std::string> listenInterfaces; + std::vector<std::string> listenDisabled; + int workerThreads; + int connectionBacklog; + bool enableMgmt; + bool mgmtPublish; + sys::Duration mgmtPubInterval; + sys::Duration queueCleanInterval; + bool auth; + std::string realm; + size_t replayFlushLimit; + size_t replayHardLimit; + uint queueLimit; + bool tcpNoDelay; + bool requireEncrypted; + std::string knownHosts; + std::string saslConfigPath; + bool qmf2Support; + bool qmf1Support; + uint queueFlowStopRatio; // producer flow control: on + uint queueFlowResumeRatio; // producer flow control: off + uint16_t queueThresholdEventRatio; + std::string defaultMsgGroup; + bool timestampRcvMsgs; + sys::Duration linkMaintenanceInterval; + sys::Duration linkHeartbeatInterval; + uint32_t dtxDefaultTimeout; // Default timeout of a DTX transaction + uint32_t dtxMaxTimeout; // Maximal timeout of a DTX transaction + uint32_t maxNegotiateTime; // Max time in ms for connection with no negotiation + std::string fedTag; + +private: + std::string getHome(); +}; + +}} + +#endif // QPID_BROKER_BROKEROPTIONS_H diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp index f735d22cd3..2afdc5a61d 100644 --- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp @@ -244,8 +244,7 @@ void ConnectionHandler::Handler::open(const string& /*virtualHost*/, return; } } else { - Broker::Options& conf = connection.getBroker().getOptions(); - if (conf.auth) { + if (connection.getBroker().isAuthenticating()) { proxy.close(framing::connection::CLOSE_CODE_CONNECTION_FORCED, QPID_MSG("User " << connection.getUserId() << " federation connection denied. Systems with authentication " @@ -409,7 +408,7 @@ void ConnectionHandler::Handler::tune(uint16_t channelMax, // this method is only ever called when this Connection // is a federation link where this Broker is acting as // a client to another Broker - sys::Duration interval = connection.getBroker().getOptions().linkHeartbeatInterval; + sys::Duration interval = connection.getBroker().getLinkHeartbeatInterval(); uint16_t intervalSec = static_cast<uint16_t>(interval/sys::TIME_SEC); uint16_t hb = std::min(intervalSec, heartbeatMax); connection.setHeartbeat(hb); diff --git a/qpid/cpp/src/qpid/broker/Link.cpp b/qpid/cpp/src/qpid/broker/Link.cpp index fc200adbea..9b85917251 100644 --- a/qpid/cpp/src/qpid/broker/Link.cpp +++ b/qpid/cpp/src/qpid/broker/Link.cpp @@ -61,7 +61,7 @@ namespace { struct LinkTimerTask : public sys::TimerTask { LinkTimerTask(Link& l, sys::Timer& t) - : TimerTask(l.getBroker()->getOptions().linkMaintenanceInterval, + : TimerTask(l.getBroker()->getLinkMaintenanceInterval(), "Link retry timer"), link(l), timer(t) {} diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp index ed1e314bda..b3a78b98ca 100644 --- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp @@ -78,7 +78,7 @@ class LinkRegistryConnectionObserver : public ConnectionObserver { LinkRegistry::LinkRegistry (Broker* _broker) : broker(_broker), parent(0), store(0), - realm(broker->getOptions().realm) + realm(broker->getRealm()) { broker->getConnectionObservers().add( boost::shared_ptr<ConnectionObserver>(new LinkRegistryConnectionObserver(*this))); diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp index 39ad2021ed..bfc9059ad2 100644 --- a/qpid/cpp/src/qpid/broker/Queue.cpp +++ b/qpid/cpp/src/qpid/broker/Queue.cpp @@ -132,7 +132,7 @@ inline void mgntDeqStats(const Message& msg, } } -QueueSettings merge(const QueueSettings& inputs, const Broker::Options& globalOptions) +QueueSettings merge(const QueueSettings& inputs, const Broker& broker) { QueueSettings settings(inputs); settings.maxDepth = QueueDepth(); @@ -143,8 +143,8 @@ QueueSettings merge(const QueueSettings& inputs, const Broker::Options& globalOp if (inputs.maxDepth.getSize()) { settings.maxDepth.setSize(inputs.maxDepth.getSize()); } - } else if (globalOptions.queueLimit) { - settings.maxDepth.setSize(globalOptions.queueLimit); + } else if (broker.getQueueLimit()) { + settings.maxDepth.setSize(broker.getQueueLimit()); } return settings; } @@ -197,7 +197,7 @@ Queue::Queue(const string& _name, const QueueSettings& _settings, exclusive(0), messages(new MessageDeque()), persistenceId(0), - settings(b ? merge(_settings, b->getOptions()) : _settings), + settings(b ? merge(_settings, *b) : _settings), eventMode(0), observers(name, messageLock), broker(b), diff --git a/qpid/cpp/src/qpid/broker/QueueFactory.cpp b/qpid/cpp/src/qpid/broker/QueueFactory.cpp index 4ce1b796f7..8104fff740 100644 --- a/qpid/cpp/src/qpid/broker/QueueFactory.cpp +++ b/qpid/cpp/src/qpid/broker/QueueFactory.cpp @@ -100,7 +100,7 @@ boost::shared_ptr<Queue> QueueFactory::create(const std::string& name, const Que //4. threshold event config if (broker && broker->getManagementAgent()) { - ThresholdAlerts::observe(*queue, *(broker->getManagementAgent()), settings, broker->getOptions().queueThresholdEventRatio); + ThresholdAlerts::observe(*queue, *(broker->getManagementAgent()), settings, broker->getQueueThresholdEventRatio()); } //5. flow control config if (flow_ptr) { diff --git a/qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp b/qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp index ec86f3b177..ca33b49249 100644 --- a/qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp +++ b/qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp @@ -169,18 +169,18 @@ void SaslAuthenticator::fini(void) std::auto_ptr<SaslAuthenticator> SaslAuthenticator::createAuthenticator(amqp_0_10::Connection& c ) { - if (c.getBroker().getOptions().auth) { + if (c.getBroker().isAuthenticating()) { return std::auto_ptr<SaslAuthenticator>( - new CyrusAuthenticator(c, c.getBroker().getOptions().requireEncrypted)); + new CyrusAuthenticator(c, c.getBroker().requireEncrypted())); } else { QPID_LOG(debug, "SASL: No Authentication Performed"); - return std::auto_ptr<SaslAuthenticator>(new NullAuthenticator(c, c.getBroker().getOptions().requireEncrypted)); + return std::auto_ptr<SaslAuthenticator>(new NullAuthenticator(c, c.getBroker().requireEncrypted())); } } NullAuthenticator::NullAuthenticator(amqp_0_10::Connection& c, bool e) : connection(c), client(c.getOutput()), - realm(c.getBroker().getOptions().realm), encrypt(e) {} + realm(c.getBroker().getRealm()), encrypt(e) {} NullAuthenticator::~NullAuthenticator() {} void NullAuthenticator::getMechanisms(Array& mechanisms) @@ -272,7 +272,7 @@ void CyrusAuthenticator::init() */ int code; - const char *realm = connection.getBroker().getOptions().realm.c_str(); + const char *realm = connection.getBroker().getRealm().c_str(); code = sasl_server_new(BROKER_SASL_NAME, /* Service name */ NULL, /* Server FQDN, gethostname() */ realm, /* Authentication realm */ diff --git a/qpid/cpp/src/qpid/broker/SemanticState.cpp b/qpid/cpp/src/qpid/broker/SemanticState.cpp index 4aba596b62..211dc2aeed 100644 --- a/qpid/cpp/src/qpid/broker/SemanticState.cpp +++ b/qpid/cpp/src/qpid/broker/SemanticState.cpp @@ -83,7 +83,7 @@ SemanticState::SemanticState(SessionState& ss) : session(ss), tagGenerator("sgen"), dtxSelected(false), - authMsg(getSession().getBroker().getOptions().auth && !getSession().getConnection().isUserProxyAuth()), + authMsg(getSession().getBroker().isAuthenticating() && !getSession().getConnection().isUserProxyAuth()), userID(getSession().getConnection().getUserId()), closeComplete(false), connectionId(getSession().getConnection().getMgmtId()) diff --git a/qpid/cpp/src/qpid/broker/SessionAdapter.cpp b/qpid/cpp/src/qpid/broker/SessionAdapter.cpp index b9ae261f83..c4a0d9f008 100644 --- a/qpid/cpp/src/qpid/broker/SessionAdapter.cpp +++ b/qpid/cpp/src/qpid/broker/SessionAdapter.cpp @@ -659,8 +659,8 @@ DtxGetTimeoutResult SessionAdapter::DtxHandlerImpl::getTimeout(const Xid& xid) void SessionAdapter::DtxHandlerImpl::setTimeout(const Xid& xid, uint32_t timeout) { - if ((timeout > getBroker().getOptions().dtxMaxTimeout) && (getBroker().getOptions().dtxMaxTimeout > 0)) - throw InvalidArgumentException(QPID_MSG("xid " << xid << " has timeout " << timeout << " bigger than maximum allowed " << getBroker().getOptions().dtxMaxTimeout)); + if ((timeout > getBroker().getDtxMaxTimeout()) && (getBroker().getDtxMaxTimeout() > 0)) + throw InvalidArgumentException(QPID_MSG("xid " << xid << " has timeout " << timeout << " bigger than maximum allowed " << getBroker().getDtxMaxTimeout())); getBroker().getDtxManager().setTimeout(DtxManager::convert(xid), timeout); } diff --git a/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp b/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp index b2627e756e..eb0c1c19d5 100644 --- a/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp @@ -115,17 +115,17 @@ qpid::sys::ConnectionCodec* ProtocolImpl::create(const qpid::framing::ProtocolVe { if (v == qpid::framing::ProtocolVersion(1, 0)) { if (v.getProtocol() == qpid::framing::ProtocolVersion::SASL) { - if (getBroker().getOptions().auth) { + if (getBroker().isAuthenticating()) { QPID_LOG(info, "Using AMQP 1.0 (with SASL layer)"); return new qpid::broker::amqp::Sasl(out, id, *this, - qpid::SaslFactory::getInstance().createServer(getBroker().getOptions().realm,getBroker().getOptions().requireEncrypted, external)); + qpid::SaslFactory::getInstance().createServer(getBroker().getRealm(),getBroker().requireEncrypted(), external)); } else { - std::auto_ptr<SaslServer> authenticator(new qpid::NullSaslServer(getBroker().getOptions().realm)); + std::auto_ptr<SaslServer> authenticator(new qpid::NullSaslServer(getBroker().getRealm())); QPID_LOG(info, "Using AMQP 1.0 (with dummy SASL layer)"); return new qpid::broker::amqp::Sasl(out, id, *this, authenticator); } } else { - if (getBroker().getOptions().auth) { + if (getBroker().isAuthenticating()) { throw qpid::Exception("SASL layer required!"); } else { QPID_LOG(info, "Using AMQP 1.0 (no SASL layer)"); diff --git a/qpid/cpp/src/qpid/broker/amqp/Session.cpp b/qpid/cpp/src/qpid/broker/amqp/Session.cpp index b43deeab3d..f633a4f5d4 100644 --- a/qpid/cpp/src/qpid/broker/amqp/Session.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/Session.cpp @@ -435,8 +435,8 @@ void Session::setupIncoming(pn_link_t* link, pn_terminus_t* target, const std::s pn_terminus_set_type(pn_link_target(link), PN_UNSPECIFIED); throw Exception(qpid::amqp::error_conditions::NOT_FOUND, std::string("Node not found: ") + name); } - if (connection.getBroker().getOptions().auth && !connection.isLink()) - incoming[link]->verify(connection.getUserId(), connection.getBroker().getOptions().realm); + if (connection.getBroker().isAuthenticating() && !connection.isLink()) + incoming[link]->verify(connection.getUserId(), connection.getBroker().getRealm()); QPID_LOG(debug, "Incoming link attached"); } diff --git a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp index b7bd8bc50d..56321e690e 100644 --- a/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp +++ b/qpid/cpp/src/qpid/broker/amqp_0_10/Connection.cpp @@ -316,7 +316,7 @@ void Connection::setUserId(const string& uid) userName = userId.substr(0, at); isDefaultRealm = ( at!= std::string::npos && - getBroker().getOptions().realm == userId.substr(at+1,userId.size())); + getBroker().getRealm() == userId.substr(at+1,userId.size())); raiseConnectEvent(); } diff --git a/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp b/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp index 9e118c19f7..e3cfa66b02 100644 --- a/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp +++ b/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp @@ -20,17 +20,18 @@ */ #include "qpid/broker/Broker.h" +#include "qpid/broker/BrokerOptions.h" #include <stdlib.h> namespace qpid { namespace broker { -const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("/tmp"); -const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("/.qpidd"); -const std::string Broker::Options::DEFAULT_PAGED_QUEUE_DIR("/pq"); +const std::string BrokerOptions::DEFAULT_DATA_DIR_LOCATION("/tmp"); +const std::string BrokerOptions::DEFAULT_DATA_DIR_NAME("/.qpidd"); +const std::string BrokerOptions::DEFAULT_PAGED_QUEUE_DIR("/pq"); std::string -Broker::Options::getHome() { +BrokerOptions::getHome() { std::string home; char *home_c = ::getenv("HOME"); if (home_c != 0) diff --git a/qpid/cpp/src/qpid/broker/posix/SocketFDPlugin.cpp b/qpid/cpp/src/qpid/broker/posix/SocketFDPlugin.cpp index 42b8af077b..d73c5713ea 100644 --- a/qpid/cpp/src/qpid/broker/posix/SocketFDPlugin.cpp +++ b/qpid/cpp/src/qpid/broker/posix/SocketFDPlugin.cpp @@ -71,8 +71,7 @@ static class SocketFDPlugin : public Plugin { // Only provide to a Broker if (broker) { if (!options.socketFds.empty()) { - const broker::Broker::Options& opts = broker->getOptions(); - SocketAcceptor* sa = new SocketAcceptor(opts.tcpNoDelay, false, opts.maxNegotiateTime, broker->getTimer()); + SocketAcceptor* sa = new SocketAcceptor(broker->getTcpNoDelay(), false, broker->getMaxNegotiateTime(), broker->getTimer()); for (unsigned i = 0; i<options.socketFds.size(); ++i) { int fd = options.socketFds[i]; if (!isSocket(fd)) { diff --git a/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp b/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp index 260bd7c073..6184e0450f 100644 --- a/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp +++ b/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp @@ -19,18 +19,19 @@ * */ -#include "qpid/broker/Broker.h" +#include "qpid/broker/BrokerOptions.h" #include <stdlib.h> +#include <windows.h> namespace qpid { namespace broker { -const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("\\TEMP"); -const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("\\QPIDD.DATA"); -const std::string Broker::Options::DEFAULT_PAGED_QUEUE_DIR("\\PQ"); +const std::string BrokerOptions::DEFAULT_DATA_DIR_LOCATION("\\TEMP"); +const std::string BrokerOptions::DEFAULT_DATA_DIR_NAME("\\QPIDD.DATA"); +const std::string BrokerOptions::DEFAULT_PAGED_QUEUE_DIR("\\PQ"); std::string -Broker::Options::getHome() { +BrokerOptions::getHome() { std::string home; #ifdef _MSC_VER char home_c[MAX_PATH+1]; diff --git a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp index 814c236712..19941c7909 100644 --- a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp +++ b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp @@ -86,7 +86,7 @@ void SaslAuthenticator::fini(void) std::auto_ptr<SaslAuthenticator> SaslAuthenticator::createAuthenticator(qpid::broker::amqp_0_10::Connection& c) { - if (c.getBroker().getOptions().auth) { + if (c.getBroker().isAuthenticating()) { return std::auto_ptr<SaslAuthenticator>(new SspiAuthenticator(c)); } else { return std::auto_ptr<SaslAuthenticator>(new NullAuthenticator(c)); @@ -94,7 +94,7 @@ std::auto_ptr<SaslAuthenticator> SaslAuthenticator::createAuthenticator(qpid::br } NullAuthenticator::NullAuthenticator(qpid::broker::amqp_0_10::Connection& c) : - connection(c), client(c.getOutput()), realm("@"+c.getBroker().getOptions().realm) {} + connection(c), client(c.getOutput()), realm("@"+c.getBroker().getRealm()) {} NullAuthenticator::~NullAuthenticator() {} void NullAuthenticator::getMechanisms(Array& mechanisms) diff --git a/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp b/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp index 1a34332138..6ff624ef75 100644 --- a/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp +++ b/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp @@ -91,7 +91,7 @@ class SslProtocolFactory : public qpid::sys::SocketAcceptor, public qpid::sys::T CredHandle credHandle; public: - SslProtocolFactory(const qpid::broker::Broker::Options& opts, const SslServerOptions&, Timer& timer); + SslProtocolFactory(const qpid::broker::Broker& broker, const SslServerOptions&, Timer& timer); ~SslProtocolFactory(); void connect(sys::Poller::shared_ptr, const std::string& name, const std::string& host, const std::string& port, @@ -121,11 +121,10 @@ static struct SslPlugin : public Plugin { // Only provide to a Broker if (broker) { try { - const broker::Broker::Options& opts = broker->getOptions(); - boost::shared_ptr<SslProtocolFactory> protocol(new SslProtocolFactory(opts, options, broker->getTimer())); + boost::shared_ptr<SslProtocolFactory> protocol(new SslProtocolFactory(*broker, options, broker->getTimer())); uint16_t port = - protocol->listen(opts.listenInterfaces, - options.port, opts.connectionBacklog, + protocol->listen(broker->getListenInterfaces(), + options.port, broker->getConnectionBacklog(), &createSocket); QPID_LOG(notice, "Listening for SSL connections on TCP port " << port); broker->registerTransport("ssl", protocol, protocol, port); @@ -136,12 +135,12 @@ static struct SslPlugin : public Plugin { } } sslPlugin; -SslProtocolFactory::SslProtocolFactory(const qpid::broker::Broker::Options& opts, const SslServerOptions& options, Timer& timer) - : SocketAcceptor(opts.tcpNoDelay, false, opts.maxNegotiateTime, timer, +SslProtocolFactory::SslProtocolFactory(const qpid::broker::Broker& broker, const SslServerOptions& options, Timer& timer) + : SocketAcceptor(broker.getTcpNoDelay(), false, broker.getMaxNegotiateTime(), timer, boost::bind(&SslProtocolFactory::establishedIncoming, this, _1, _2, _3)), brokerTimer(timer), - maxNegotiateTime(opts.maxNegotiateTime), - tcpNoDelay(opts.tcpNoDelay), + maxNegotiateTime(broker.getMaxNegotiateTime()), + tcpNoDelay(broker.getTcpNoDelay()), clientAuthSelected(options.clientAuth) { // Make sure that certificate store is good before listening to sockets diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp index 25703eeeb2..027448905b 100644 --- a/qpid/cpp/src/qpid/ha/HaBroker.cpp +++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp @@ -79,7 +79,7 @@ class HaBroker::BrokerObserver : public broker::BrokerObserver { HaBroker::HaBroker(broker::Broker& b, const Settings& s) : systemId(b.getSystem()->getSystemId().data()), settings(s), - userId(s.username+"@"+b.getOptions().realm), + userId(s.username+"@"+b.getRealm()), broker(b), observer(new ConnectionObserver(*this, systemId)), role(new StandAlone), diff --git a/qpid/cpp/src/qpid/ha/StatusCheck.cpp b/qpid/cpp/src/qpid/ha/StatusCheck.cpp index 4962570424..8acf8d6cdc 100644 --- a/qpid/cpp/src/qpid/ha/StatusCheck.cpp +++ b/qpid/cpp/src/qpid/ha/StatusCheck.cpp @@ -112,7 +112,7 @@ void StatusCheckThread::run() { StatusCheck::StatusCheck(HaBroker& hb) : promote(true), settings(hb.getSettings()), - heartbeat(hb.getBroker().getOptions().linkHeartbeatInterval), + heartbeat(hb.getBroker().getLinkHeartbeatInterval()), brokerInfo(hb.getBrokerInfo()) {} diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp index 0e95b6571c..9a7b8ef201 100644 --- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp @@ -280,8 +280,7 @@ static class RdmaIOPlugin : public Plugin { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); // Only provide to a Broker if (broker) { - const broker::Broker::Options& opts = broker->getOptions(); - boost::shared_ptr<RdmaIOProtocolFactory> protocol(new RdmaIOProtocolFactory(opts.port, opts.connectionBacklog)); + boost::shared_ptr<RdmaIOProtocolFactory> protocol(new RdmaIOProtocolFactory(broker->getPortOption(), broker->getConnectionBacklog())); uint16_t port = protocol->getPort(); QPID_LOG(notice, "Rdma: Listening on RDMA port " << port); broker->registerTransport("rdma", protocol, protocol, port); diff --git a/qpid/cpp/src/qpid/sys/SslPlugin.cpp b/qpid/cpp/src/qpid/sys/SslPlugin.cpp index 4c3326622a..0ec31b1e47 100644 --- a/qpid/cpp/src/qpid/sys/SslPlugin.cpp +++ b/qpid/cpp/src/qpid/sys/SslPlugin.cpp @@ -86,8 +86,6 @@ static struct SslPlugin : public Plugin { void earlyInitialize(Target& target) { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); if (broker && broker->shouldListen("ssl")) { - broker::Broker::Options& opts = broker->getOptions(); - if (options.certDbPath.empty()) { QPID_LOG(notice, "SSL plugin not enabled, you must set --ssl-cert-db to enable it."); broker->disableListening("ssl"); @@ -103,8 +101,8 @@ static struct SslPlugin : public Plugin { return; } - if (opts.port == options.port && // AMQP & AMQPS ports are the same - opts.port != 0 && + if (broker->getPortOption() == options.port && // AMQP & AMQPS ports are the same + broker->getPortOption() != 0 && broker->shouldListen("tcp")) { multiplex = true; broker->disableListening("tcp"); @@ -117,13 +115,12 @@ static struct SslPlugin : public Plugin { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); // Only provide to a Broker if (broker) { - const broker::Broker::Options& opts = broker->getOptions(); uint16_t port = options.port; TransportAcceptor::shared_ptr ta; if (broker->shouldListen("ssl")) { SocketAcceptor* sa = - new SocketAcceptor(opts.tcpNoDelay, options.nodict, opts.maxNegotiateTime, broker->getTimer()); - port = sa->listen(opts.listenInterfaces, options.port, opts.connectionBacklog, + new SocketAcceptor(broker->getTcpNoDelay(), options.nodict, broker->getMaxNegotiateTime(), broker->getTimer()); + port = sa->listen(broker->getListenInterfaces(), options.port, broker->getConnectionBacklog(), multiplex ? boost::bind(&createServerSSLMuxSocket, options) : boost::bind(&createServerSSLSocket, options)); @@ -136,7 +133,7 @@ static struct SslPlugin : public Plugin { } } TransportConnector::shared_ptr tc( - new SocketConnector(opts.tcpNoDelay, options.nodict, opts.maxNegotiateTime, broker->getTimer(), + new SocketConnector(broker->getTcpNoDelay(), options.nodict, broker->getMaxNegotiateTime(), broker->getTimer(), &createClientSSLSocket)); broker->registerTransport("ssl", ta, tc, port); } diff --git a/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp b/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp index cd941eb2f6..9e240ad7e3 100644 --- a/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp +++ b/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp @@ -40,20 +40,18 @@ static class TCPIOPlugin : public Plugin { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); // Only provide to a Broker if (broker) { - const broker::Broker::Options& opts = broker->getOptions(); - - uint16_t port = opts.port; + uint16_t port = broker->getPortOption(); TransportAcceptor::shared_ptr ta; if (broker->shouldListen("tcp")) { - SocketAcceptor* aa = new SocketAcceptor(opts.tcpNoDelay, false, opts.maxNegotiateTime, broker->getTimer()); + SocketAcceptor* aa = new SocketAcceptor(broker->getTcpNoDelay(), false, broker->getMaxNegotiateTime(), broker->getTimer()); ta.reset(aa); - port = aa->listen(opts.listenInterfaces, opts.port, opts.connectionBacklog, &createSocket); + port = aa->listen(broker->getListenInterfaces(), port, broker->getConnectionBacklog(), &createSocket); if ( port!=0 ) { QPID_LOG(notice, "Listening on TCP/TCP6 port " << port); } } - TransportConnector::shared_ptr tc(new SocketConnector(opts.tcpNoDelay, false, opts.maxNegotiateTime, broker->getTimer(), &createSocket)); + TransportConnector::shared_ptr tc(new SocketConnector(broker->getTcpNoDelay(), false, broker->getMaxNegotiateTime(), broker->getTimer(), &createSocket)); broker->registerTransport("tcp", ta, tc, port); } diff --git a/qpid/cpp/src/qpidd.h b/qpid/cpp/src/qpidd.h index 08356ab29e..38328139c3 100644 --- a/qpid/cpp/src/qpidd.h +++ b/qpid/cpp/src/qpidd.h @@ -21,7 +21,7 @@ #include "qpid/Modules.h" #include "qpid/Options.h" -#include "qpid/broker/Broker.h" +#include "qpid/broker/BrokerOptions.h" #include "qpid/log/Options.h" #include <memory> @@ -58,7 +58,7 @@ protected: struct QpiddOptions : public qpid::Options { qpid::CommonOptions common; qpid::ModuleOptions module; - qpid::broker::Broker::Options broker; + qpid::broker::BrokerOptions broker; qpid::log::Options log; std::auto_ptr<QpiddOptionsPrivate> platform; diff --git a/qpid/cpp/src/tests/BrokerFixture.h b/qpid/cpp/src/tests/BrokerFixture.h index b7b0f9d34b..90b2dc47e0 100644 --- a/qpid/cpp/src/tests/BrokerFixture.h +++ b/qpid/cpp/src/tests/BrokerFixture.h @@ -23,6 +23,7 @@ */ #include "qpid/broker/Broker.h" +#include "qpid/broker/BrokerOptions.h" #include "qpid/client/Connection.h" #include "qpid/client/ConnectionImpl.h" #include "qpid/client/Session.h" @@ -42,22 +43,26 @@ namespace tests { struct BrokerFixture : private boost::noncopyable { typedef qpid::broker::Broker Broker; typedef boost::intrusive_ptr<Broker> BrokerPtr; + typedef qpid::broker::BrokerOptions BrokerOptions; typedef std::vector<std::string> Args; BrokerPtr broker; + BrokerOptions opts; uint16_t port; qpid::sys::Thread brokerThread; - BrokerFixture(const Args& args=Args(), const Broker::Options& opts=Broker::Options(), - bool isExternalPort_=false, uint16_t externalPort_=0) + BrokerFixture(const Args& args=Args(), const BrokerOptions& opts0=BrokerOptions(), + bool isExternalPort_=false, uint16_t externalPort_=0) : + opts(opts0) { - init(args, opts, isExternalPort_, externalPort_); + init(args, isExternalPort_, externalPort_); } - BrokerFixture(const Broker::Options& opts, - bool isExternalPort_=false, uint16_t externalPort_=0) + BrokerFixture(const BrokerOptions& opts0, + bool isExternalPort_=false, uint16_t externalPort_=0) : + opts(opts0) { - init(Args(), opts, isExternalPort_, externalPort_); + init(Args(), isExternalPort_, externalPort_); } void shutdownBroker() { @@ -78,8 +83,7 @@ struct BrokerFixture : private boost::noncopyable { uint16_t getPort() { return port; } private: - void init(const Args& args, Broker::Options opts, - bool isExternalPort=false, uint16_t externalPort=0) + void init(const Args& args, bool isExternalPort=false, uint16_t externalPort=0) { // Keep the tests quiet unless logging env. vars have been set by user. if (!::getenv("QPID_LOG_ENABLE") && !::getenv("QPID_TRACE")) { @@ -148,7 +152,7 @@ typedef ClientT<> Client; template <class ConnectionType, class SessionType=qpid::client::Session> struct SessionFixtureT : BrokerFixture, ClientT<ConnectionType,SessionType> { - SessionFixtureT(Broker::Options opts=Broker::Options()) : + SessionFixtureT(BrokerOptions opts=BrokerOptions()) : BrokerFixture(BrokerFixture::Args(), opts), ClientT<ConnectionType,SessionType>(getPort()) {} diff --git a/qpid/cpp/src/tests/ClientSessionTest.cpp b/qpid/cpp/src/tests/ClientSessionTest.cpp index 2236882eed..6cd63e7f04 100644 --- a/qpid/cpp/src/tests/ClientSessionTest.cpp +++ b/qpid/cpp/src/tests/ClientSessionTest.cpp @@ -52,7 +52,7 @@ using namespace qpid; using qpid::sys::Monitor; using qpid::sys::Thread; using qpid::sys::TIME_SEC; -using qpid::broker::Broker; +using qpid::broker::BrokerOptions; using std::string; using std::cout; using std::endl; @@ -105,7 +105,7 @@ struct SimpleListener : public MessageListener struct ClientSessionFixture : public SessionFixture { - ClientSessionFixture(Broker::Options opts = Broker::Options()) : SessionFixture(opts) { + ClientSessionFixture(BrokerOptions opts = BrokerOptions()) : SessionFixture(opts) { session.queueDeclare(arg::queue="my-queue"); } }; @@ -248,7 +248,7 @@ QPID_AUTO_TEST_CASE(testOpenFailure) { } QPID_AUTO_TEST_CASE(testPeriodicExpiration) { - Broker::Options opts; + BrokerOptions opts; opts.queueCleanInterval = 1*TIME_SEC; opts.queueFlowStopRatio = 0; opts.queueFlowResumeRatio = 0; diff --git a/qpid/cpp/src/tests/MessagingFixture.h b/qpid/cpp/src/tests/MessagingFixture.h index 1d70d4cfa6..2d780fea14 100644 --- a/qpid/cpp/src/tests/MessagingFixture.h +++ b/qpid/cpp/src/tests/MessagingFixture.h @@ -103,7 +103,7 @@ struct MessagingFixture : public BrokerFixture messaging::Session session; BrokerAdmin admin; - MessagingFixture(Broker::Options opts = Broker::Options(), bool mgmtEnabled=false) : + MessagingFixture(BrokerOptions opts = BrokerOptions(), bool mgmtEnabled=false) : BrokerFixture(opts, mgmtEnabled), connection(open(broker->getPort(Broker::TCP_TRANSPORT))), session(connection.createSession()), diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp index 0926765d78..3ca74fa2b7 100644 --- a/qpid/cpp/src/tests/MessagingSessionTests.cpp +++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp @@ -46,7 +46,7 @@ QPID_AUTO_TEST_SUITE(MessagingSessionTests) using namespace qpid::messaging; using namespace qpid::types; using namespace qpid; -using qpid::broker::Broker; +using qpid::broker::BrokerOptions; using qpid::framing::Uuid; @@ -935,7 +935,7 @@ QPID_AUTO_TEST_CASE(testAcknowledge) QPID_AUTO_TEST_CASE(testQmfCreateAndDelete) { - MessagingFixture fix(Broker::Options(), true/*enable management*/); + MessagingFixture fix(BrokerOptions(), true/*enable management*/); MethodInvoker control(fix.session); control.createQueue("my-queue"); control.createExchange("my-exchange", "topic"); |