You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/03/27 22:58:54 UTC
svn commit: r1461870 [1/6] - in /qpid/branches/QPID-4659/qpid: ./
cpp/docs/api/ cpp/examples/messaging/ cpp/examples/old_api/tradedemo/
cpp/include/qmf/engine/ cpp/include/qpid/messaging/ cpp/src/
cpp/src/qmf/engine/ cpp/src/qpid/acl/ cpp/src/qpid/amqp...
Author: rgodfrey
Date: Wed Mar 27 21:58:51 2013
New Revision: 1461870
URL: http://svn.apache.org/r1461870
Log:
NO-JIRA : merging from trunk to keep branch up to date
Added:
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressImpl.h
- copied unchanged from r1461856, qpid/trunk/qpid/cpp/src/qpid/messaging/AddressImpl.h
qpid/branches/QPID-4659/qpid/cpp/src/tests/qpidt
- copied unchanged from r1461856, qpid/trunk/qpid/cpp/src/tests/qpidt
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/updater/ChangeAttributesTask.java
- copied unchanged from r1461856, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/updater/ChangeAttributesTask.java
qpid/branches/QPID-4659/qpid/tools/src/ruby/
- copied from r1461856, qpid/trunk/qpid/tools/src/ruby/
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/
- copied from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/.gitignore
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/.gitignore
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/.rspec
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/.rspec
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/Gemfile
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/Gemfile
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/Gemfile.lock
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/Gemfile.lock
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/Rakefile
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/Rakefile
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/
- copied from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/
- copied from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/acl.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/acl.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/binding.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/binding.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/bridge.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/bridge.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker_agent.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker_agent.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker_object.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/broker_object.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/cluster.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/cluster.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/connection.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/connection.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/errors.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/errors.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/exchange.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/exchange.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/ha_broker.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/ha_broker.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/link.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/link.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/memory.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/memory.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/queue.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/queue.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/session.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/session.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/lib/qpid_management/subscription.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/lib/qpid_management/subscription.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/qpid_management.gemspec
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/qpid_management.gemspec
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/spec/
- copied from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/spec/
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/spec/broker_agent_spec.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/spec/broker_agent_spec.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/spec/broker_spec.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/spec/broker_spec.rb
qpid/branches/QPID-4659/qpid/tools/src/ruby/qpid_management/spec/spec_helper.rb
- copied unchanged from r1461856, qpid/trunk/qpid/tools/src/ruby/qpid_management/spec/spec_helper.rb
Modified:
qpid/branches/QPID-4659/qpid/ (props changed)
qpid/branches/QPID-4659/qpid/QPID_VERSION.txt
qpid/branches/QPID-4659/qpid/cpp/docs/api/ (props changed)
qpid/branches/QPID-4659/qpid/cpp/examples/messaging/client.cpp
qpid/branches/QPID-4659/qpid/cpp/examples/old_api/tradedemo/tradedemo_topic_publisher.vcproj (props changed)
qpid/branches/QPID-4659/qpid/cpp/include/qmf/engine/Agent.h (props changed)
qpid/branches/QPID-4659/qpid/cpp/include/qmf/engine/Console.h (props changed)
qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Address.h
qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Receiver.h
qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Sender.h
qpid/branches/QPID-4659/qpid/cpp/src/ (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt (contents, props changed)
qpid/branches/QPID-4659/qpid/cpp/src/Makefile.am
qpid/branches/QPID-4659/qpid/cpp/src/qmf/engine/Agent.cpp (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/qpid/acl/ (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/qpid/amqp/descriptors.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/ (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/Selector.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorValue.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SemanticState.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Filter.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/management/ManagementAgent.cpp (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/qpid/management/ManagementAgent.h (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Address.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressParser.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Receiver.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/ReceiverImpl.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Sender.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/SenderImpl.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/ReceiverHandle.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/ReceiverHandle.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/SenderContext.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/SenderHandle.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/SenderHandle.h
qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/xml/XmlExchange.cpp
qpid/branches/QPID-4659/qpid/cpp/src/qpid/xml/XmlExchange.h
qpid/branches/QPID-4659/qpid/cpp/src/tests/ (props changed)
qpid/branches/QPID-4659/qpid/cpp/src/tests/CMakeLists.txt
qpid/branches/QPID-4659/qpid/cpp/src/tests/Makefile.am
qpid/branches/QPID-4659/qpid/cpp/src/tests/Selector.cpp
qpid/branches/QPID-4659/qpid/cpp/src/tests/ping_broker
qpid/branches/QPID-4659/qpid/cpp/src/tests/ssl.mk
qpid/branches/QPID-4659/qpid/cpp/src/tests/ssl_test
qpid/branches/QPID-4659/qpid/doc/book/src/java-broker/commonEntities.xml
qpid/branches/QPID-4659/qpid/extras/qmf/setup.py
qpid/branches/QPID-4659/qpid/java/ (props changed)
qpid/branches/QPID-4659/qpid/java/amqp-1-0-client/ (props changed)
qpid/branches/QPID-4659/qpid/java/amqp-1-0-client-jms/ (props changed)
qpid/branches/QPID-4659/qpid/java/amqp-1-0-common/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
qpid/branches/QPID-4659/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
qpid/branches/QPID-4659/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
qpid/branches/QPID-4659/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html
qpid/branches/QPID-4659/qpid/java/broker/bin/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/broker.bnd
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntryStore.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStore.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Model.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0.java (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/security/group/GroupPrincipalAccessor.java
qpid/branches/QPID-4659/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ (props changed)
qpid/branches/QPID-4659/qpid/java/broker/src/main/resources/initial-store.json
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java
qpid/branches/QPID-4659/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java
qpid/branches/QPID-4659/qpid/java/client/src/main/java/client.bnd
qpid/branches/QPID-4659/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
qpid/branches/QPID-4659/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java
qpid/branches/QPID-4659/qpid/java/common.xml
qpid/branches/QPID-4659/qpid/java/common/src/main/java/common.bnd
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/management-common.bnd
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java (props changed)
qpid/branches/QPID-4659/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java (props changed)
qpid/branches/QPID-4659/qpid/java/perftests/etc/testdefs/Latency-VaryingNumberOfParticipants.json
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java (props changed)
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
qpid/branches/QPID-4659/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/ (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/CPPExcludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/Excludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/JavaBDBExcludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/JavaExcludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/JavaPre010Excludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/JavaTransientExcludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/XAExcludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.async.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.cluster.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.noprefetch.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.ssl.excludes (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.ssl.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/cpp.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-bdb.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-dby.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/java-mms.0-9-1.testprofile (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/log4j-test.xml (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/test-provider.properties (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/test_resources/ (props changed)
qpid/branches/QPID-4659/qpid/java/test-profiles/testprofile.defaults (props changed)
qpid/branches/QPID-4659/qpid/packaging/windows/ (props changed)
qpid/branches/QPID-4659/qpid/packaging/windows/INSTALL_NOTES.html
qpid/branches/QPID-4659/qpid/packaging/windows/installer.proj (contents, props changed)
qpid/branches/QPID-4659/qpid/python/ (props changed)
qpid/branches/QPID-4659/qpid/python/examples/api/spout (props changed)
qpid/branches/QPID-4659/qpid/python/qpid/concurrency.py (props changed)
qpid/branches/QPID-4659/qpid/python/qpid/messaging/endpoints.py
qpid/branches/QPID-4659/qpid/python/qpid/messaging/transports.py
qpid/branches/QPID-4659/qpid/python/setup.py
qpid/branches/QPID-4659/qpid/tests/setup.py
qpid/branches/QPID-4659/qpid/tests/src/py/qpid_tests/broker_0_9/queue.py (props changed)
qpid/branches/QPID-4659/qpid/tools/setup.py
Propchange: qpid/branches/QPID-4659/qpid/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/QPID_VERSION.txt
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/QPID_VERSION.txt?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/QPID_VERSION.txt (original)
+++ qpid/branches/QPID-4659/qpid/QPID_VERSION.txt Wed Mar 27 21:58:51 2013
@@ -1 +1 @@
-0.21
+0.23
Propchange: qpid/branches/QPID-4659/qpid/cpp/docs/api/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/docs/api:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/examples/messaging/client.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/examples/messaging/client.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/examples/messaging/client.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/examples/messaging/client.cpp Wed Mar 27 21:58:51 2013
@@ -48,8 +48,8 @@ int main(int argc, char** argv) {
Sender sender = session.createSender("service_queue");
//create temp queue & receiver...
- Address responseQueue("#response-queue; {create:always, delete:always}");
- Receiver receiver = session.createReceiver(responseQueue);
+ Receiver receiver = session.createReceiver("#");
+ Address responseQueue = receiver.getAddress();
// Now send some messages ...
string s[] = {
Propchange: qpid/branches/QPID-4659/qpid/cpp/examples/old_api/tradedemo/tradedemo_topic_publisher.vcproj
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/examples/old_api/tradedemo/tradedemo_topic_publisher.vcproj:r1458037-1461856
Propchange: qpid/branches/QPID-4659/qpid/cpp/include/qmf/engine/Agent.h
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/include/qmf/engine/Agent.h:r1458037-1461856
Propchange: qpid/branches/QPID-4659/qpid/cpp/include/qmf/engine/Console.h
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/include/qmf/engine/Console.h:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Address.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Address.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Address.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Address.h Wed Mar 27 21:58:51 2013
@@ -153,6 +153,7 @@ class QPID_MESSAGING_CLASS_EXTERN Addres
QPID_MESSAGING_EXTERN bool operator !() const;
private:
AddressImpl* impl;
+ friend class AddressImpl;
};
#ifndef SWIG
Modified: qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Receiver.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Receiver.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Receiver.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Receiver.h Wed Mar 27 21:58:51 2013
@@ -34,6 +34,7 @@ namespace messaging {
template <class> class PrivateImplRef;
#endif
+class Address;
class Message;
class ReceiverImpl;
class Session;
@@ -134,6 +135,11 @@ class QPID_MESSAGING_CLASS_EXTERN Receiv
*/
QPID_MESSAGING_EXTERN Session getSession() const;
+ /**
+ * Returns an address for this receiver.
+ */
+ QPID_MESSAGING_EXTERN Address getAddress() const;
+
#ifndef SWIG
private:
friend class qpid::messaging::PrivateImplRef<Receiver>;
Modified: qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Sender.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Sender.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Sender.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/include/qpid/messaging/Sender.h Wed Mar 27 21:58:51 2013
@@ -34,6 +34,7 @@ namespace messaging {
#ifndef SWIG
template <class> class PrivateImplRef;
#endif
+class Address;
class Message;
class SenderImpl;
class Session;
@@ -89,6 +90,11 @@ class QPID_MESSAGING_CLASS_EXTERN Sender
* Returns a handle to the session associated with this sender.
*/
QPID_MESSAGING_EXTERN Session getSession() const;
+
+ /**
+ * Returns an address for this sender.
+ */
+ QPID_MESSAGING_EXTERN Address getAddress() const;
#ifndef SWIG
private:
friend class qpid::messaging::PrivateImplRef<Sender>;
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt Wed Mar 27 21:58:51 2013
@@ -1063,6 +1063,7 @@ install_pdb (qpidclient ${QPID_COMPONENT
set (qpidmessaging_SOURCES_hidden
qpid/messaging/AddressParser.h
+ qpid/messaging/AddressImpl.h
qpid/messaging/ConnectionImpl.h
qpid/messaging/ReceiverImpl.h
qpid/messaging/SessionImpl.h
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/CMakeLists.txt
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/CMakeLists.txt:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/Makefile.am?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/Makefile.am (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/Makefile.am Wed Mar 27 21:58:51 2013
@@ -935,6 +935,7 @@ libqpidtypes_la_LDFLAGS = -version-info
libqpidmessaging_la_LIBADD = libqpidclient.la libqpidtypes.la
libqpidmessaging_la_SOURCES = \
qpid/messaging/Address.cpp \
+ qpid/messaging/AddressImpl.h \
qpid/messaging/AddressParser.h \
qpid/messaging/AddressParser.cpp \
qpid/messaging/Connection.cpp \
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/qmf/engine/Agent.cpp
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qmf/engine/Agent.cpp:r1458037-1461856
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/qpid/acl/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/acl:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/amqp/descriptors.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/amqp/descriptors.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/amqp/descriptors.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/amqp/descriptors.h Wed Mar 27 21:58:51 2013
@@ -78,10 +78,11 @@ const Descriptor SASL_OUTCOME(SASL_OUTCO
namespace filters {
const std::string LEGACY_DIRECT_FILTER_SYMBOL("apache.org:legacy-amqp-direct-binding:string");
const std::string LEGACY_TOPIC_FILTER_SYMBOL("apache.org:legacy-amqp-topic-binding:string");
-const std::string QPID_SELECTOR_FILTER_SYMBOL("qpid.apache.org:selector-filter:string");
+const std::string SELECTOR_FILTER_SYMBOL("apache.org:selector-filter:string");
const uint64_t LEGACY_DIRECT_FILTER_CODE(0x0000468C00000000ULL);
const uint64_t LEGACY_TOPIC_FILTER_CODE(0x0000468C00000001ULL);
+const uint64_t SELECTOR_FILTER_CODE(0x0000468C00000004ULL);
}
}} // namespace qpid::amqp
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/broker:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/Selector.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/Selector.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/Selector.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/Selector.cpp Wed Mar 27 21:58:51 2013
@@ -147,7 +147,8 @@ const Value& MessageSelectorEnv::value(c
return returnedValues[identifier];
}
-Selector::Selector(const string& e) :
+Selector::Selector(const string& e)
+try :
parse(TopExpression::parse(e)),
expression(e)
{
@@ -159,6 +160,10 @@ Selector::Selector(const string& e) :
QPID_LOG(debug, "Selector parsed[" << e << "] into: " << ss.str());
}
}
+catch (std::range_error& ex) {
+ QPID_LOG(debug, "Selector failed[" << e << "] -> " << ex.what());
+ throw;
+}
Selector::~Selector()
{
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorExpression.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorExpression.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorExpression.cpp Wed Mar 27 21:58:51 2013
@@ -132,12 +132,11 @@ public:
virtual BoolOrNone eval(Expression&, Expression&, const SelectorEnv&) const = 0;
};
-template <typename T>
class UnaryBooleanOperator {
public:
virtual ~UnaryBooleanOperator() {}
virtual void repr(ostream&) const = 0;
- virtual BoolOrNone eval(T&, const SelectorEnv&) const = 0;
+ virtual BoolOrNone eval(Expression&, const SelectorEnv&) const = 0;
};
class ArithmeticOperator {
@@ -170,8 +169,7 @@ ostream& operator<<(ostream& os, const C
return os;
}
-template <typename T>
-ostream& operator<<(ostream& os, const UnaryBooleanOperator<T>& e)
+ostream& operator<<(ostream& os, const UnaryBooleanOperator& e)
{
e.repr(os);
return os;
@@ -260,13 +258,12 @@ public:
}
};
-template <typename T>
class UnaryBooleanExpression : public BoolExpression {
- UnaryBooleanOperator<T>* op;
- boost::scoped_ptr<T> e1;
+ UnaryBooleanOperator* op;
+ boost::scoped_ptr<Expression> e1;
public:
- UnaryBooleanExpression(UnaryBooleanOperator<T>* o, T* e) :
+ UnaryBooleanExpression(UnaryBooleanOperator* o, Expression* e) :
op(o),
e1(e)
{}
@@ -287,7 +284,7 @@ class LikeExpression : public BoolExpres
static string toRegex(const string& s, const string& escape) {
string regex("^");
- if (escape.size()>1) throw std::range_error("Illegal escape char");
+ if (escape.size()>1) throw std::logic_error("Internal error");
char e = 0;
if (escape.size()==1) {
e = escape[0];
@@ -594,7 +591,7 @@ class Greq : public ComparisonOperator {
};
// "IS NULL"
-class IsNull : public UnaryBooleanOperator<Expression> {
+class IsNull : public UnaryBooleanOperator {
void repr(ostream& os) const {
os << "IsNull";
}
@@ -605,7 +602,7 @@ class IsNull : public UnaryBooleanOperat
};
// "IS NOT NULL"
-class IsNonNull : public UnaryBooleanOperator<Expression> {
+class IsNonNull : public UnaryBooleanOperator {
void repr(ostream& os) const {
os << "IsNonNull";
}
@@ -616,7 +613,7 @@ class IsNonNull : public UnaryBooleanOpe
};
// "NOT"
-class Not : public UnaryBooleanOperator<Expression> {
+class Not : public UnaryBooleanOperator {
void repr(ostream& os) const {
os << "NOT";
}
@@ -696,14 +693,6 @@ Div div;
////////////////////////////////////////////////////
-Expression* parseOrExpression(Tokeniser&);
-Expression* parseAndExpression(Tokeniser&);
-Expression* parseComparisonExpression(Tokeniser&);
-Expression* parseAddExpression(Tokeniser&);
-Expression* parseMultiplyExpression(Tokeniser&);
-Expression* parseUnaryArithExpression(Tokeniser&);
-Expression* parsePrimaryExpression(Tokeniser&);
-
// Top level parser
class TopBoolExpression : public TopExpression {
boost::scoped_ptr<Expression> expression;
@@ -724,24 +713,28 @@ public:
{}
};
-TopExpression* TopExpression::parse(const string& exp)
-{
- string::const_iterator s = exp.begin();
- string::const_iterator e = exp.end();
- Tokeniser tokeniser(s,e);
- std::auto_ptr<Expression> b(parseOrExpression(tokeniser));
- if (!b.get()) throw std::range_error("Illegal selector: couldn't parse");
- if (tokeniser.nextToken().type != T_EOS) throw std::range_error("Illegal selector: too much input");
- return new TopBoolExpression(b.release());
+void throwParseError(Tokeniser& tokeniser, const string& msg) {
+ tokeniser.returnTokens();
+ string error("Illegal selector: '");
+ error += tokeniser.nextToken().val;
+ error += "': ";
+ error += msg;
+ throw std::range_error(error);
}
-Expression* parseOrExpression(Tokeniser& tokeniser)
+class Parse {
+
+friend TopExpression* TopExpression::parse(const string&);
+
+string error;
+
+Expression* orExpression(Tokeniser& tokeniser)
{
- std::auto_ptr<Expression> e(parseAndExpression(tokeniser));
+ std::auto_ptr<Expression> e(andExpression(tokeniser));
if (!e.get()) return 0;
while ( tokeniser.nextToken().type==T_OR ) {
std::auto_ptr<Expression> e1(e);
- std::auto_ptr<Expression> e2(parseAndExpression(tokeniser));
+ std::auto_ptr<Expression> e2(andExpression(tokeniser));
if (!e2.get()) return 0;
e.reset(new OrExpression(e1.release(), e2.release()));
}
@@ -749,13 +742,13 @@ Expression* parseOrExpression(Tokeniser&
return e.release();
}
-Expression* parseAndExpression(Tokeniser& tokeniser)
+Expression* andExpression(Tokeniser& tokeniser)
{
- std::auto_ptr<Expression> e(parseComparisonExpression(tokeniser));
+ std::auto_ptr<Expression> e(comparisonExpression(tokeniser));
if (!e.get()) return 0;
while ( tokeniser.nextToken().type==T_AND ) {
std::auto_ptr<Expression> e1(e);
- std::auto_ptr<Expression> e2(parseComparisonExpression(tokeniser));
+ std::auto_ptr<Expression> e2(comparisonExpression(tokeniser));
if (!e2.get()) return 0;
e.reset(new AndExpression(e1.release(), e2.release()));
}
@@ -763,15 +756,24 @@ Expression* parseAndExpression(Tokeniser
return e.release();
}
-BoolExpression* parseSpecialComparisons(Tokeniser& tokeniser, std::auto_ptr<Expression> e1) {
+BoolExpression* specialComparisons(Tokeniser& tokeniser, std::auto_ptr<Expression> e1) {
switch (tokeniser.nextToken().type) {
case T_LIKE: {
const Token t = tokeniser.nextToken();
- if ( t.type!=T_STRING ) return 0;
+ if ( t.type!=T_STRING ) {
+ error = "expected string after LIKE";
+ return 0;
+ }
// Check for "ESCAPE"
if ( tokeniser.nextToken().type==T_ESCAPE ) {
const Token e = tokeniser.nextToken();
- if ( e.type!=T_STRING ) return 0;
+ if ( e.type!=T_STRING ) {
+ error = "expected string after ESCAPE";
+ return 0;
+ }
+ if (e.val.size()>1) {
+ throwParseError(tokeniser, "single character string required after ESCAPE");
+ }
return new LikeExpression(e1.release(), t.val, e.val);
} else {
tokeniser.returnTokens();
@@ -779,41 +781,51 @@ BoolExpression* parseSpecialComparisons(
}
}
case T_BETWEEN: {
- std::auto_ptr<Expression> lower(parseAddExpression(tokeniser));
+ std::auto_ptr<Expression> lower(addExpression(tokeniser));
if ( !lower.get() ) return 0;
- if ( tokeniser.nextToken().type!=T_AND ) return 0;
- std::auto_ptr<Expression> upper(parseAddExpression(tokeniser));
+ if ( tokeniser.nextToken().type!=T_AND ) {
+ error = "expected AND after BETWEEN";
+ return 0;
+ }
+ std::auto_ptr<Expression> upper(addExpression(tokeniser));
if ( !upper.get() ) return 0;
return new BetweenExpression(e1.release(), lower.release(), upper.release());
}
case T_IN: {
- if ( tokeniser.nextToken().type!=T_LPAREN ) return 0;
+ if ( tokeniser.nextToken().type!=T_LPAREN ) {
+ error = "missing '(' after IN";
+ return 0;
+ }
boost::ptr_vector<Expression> list;
do {
- std::auto_ptr<Expression> e(parseAddExpression(tokeniser));
+ std::auto_ptr<Expression> e(addExpression(tokeniser));
if (!e.get()) return 0;
list.push_back(e.release());
} while (tokeniser.nextToken().type==T_COMMA);
tokeniser.returnTokens();
- if ( tokeniser.nextToken().type!=T_RPAREN ) return 0;
+ if ( tokeniser.nextToken().type!=T_RPAREN ) {
+ error = "missing ',' or ')' after IN";
+ return 0;
+ }
return new InExpression(e1.release(), list);
}
default:
+ error = "expected LIKE, IN or BETWEEN";
return 0;
}
}
-Expression* parseComparisonExpression(Tokeniser& tokeniser)
+Expression* comparisonExpression(Tokeniser& tokeniser)
{
const Token t = tokeniser.nextToken();
if ( t.type==T_NOT ) {
- std::auto_ptr<Expression> e(parseComparisonExpression(tokeniser));
+ std::auto_ptr<Expression> e(comparisonExpression(tokeniser));
if (!e.get()) return 0;
- return new UnaryBooleanExpression<Expression>(¬Op, e.release());
+ return new UnaryBooleanExpression(¬Op, e.release());
}
tokeniser.returnTokens();
- std::auto_ptr<Expression> e1(parseAddExpression(tokeniser));
+ std::auto_ptr<Expression> e1(addExpression(tokeniser));
if (!e1.get()) return 0;
switch (tokeniser.nextToken().type) {
@@ -822,23 +834,24 @@ Expression* parseComparisonExpression(To
// The rest must be T_NULL or T_NOT, T_NULL
switch (tokeniser.nextToken().type) {
case T_NULL:
- return new UnaryBooleanExpression<Expression>(&isNullOp, e1.release());
+ return new UnaryBooleanExpression(&isNullOp, e1.release());
case T_NOT:
if ( tokeniser.nextToken().type == T_NULL)
- return new UnaryBooleanExpression<Expression>(&isNonNullOp, e1.release());
+ return new UnaryBooleanExpression(&isNonNullOp, e1.release());
default:
+ error = "expected NULL or NOT NULL after IS";
return 0;
}
case T_NOT: {
- std::auto_ptr<BoolExpression> e(parseSpecialComparisons(tokeniser, e1));
+ std::auto_ptr<BoolExpression> e(specialComparisons(tokeniser, e1));
if (!e.get()) return 0;
- return new UnaryBooleanExpression<Expression>(¬Op, e.release());
+ return new UnaryBooleanExpression(¬Op, e.release());
}
case T_BETWEEN:
case T_LIKE:
case T_IN: {
tokeniser.returnTokens();
- return parseSpecialComparisons(tokeniser, e1);
+ return specialComparisons(tokeniser, e1);
}
default:
break;
@@ -858,15 +871,15 @@ Expression* parseComparisonExpression(To
return e1.release();
}
- std::auto_ptr<Expression> e2(parseAddExpression(tokeniser));
+ std::auto_ptr<Expression> e2(addExpression(tokeniser));
if (!e2.get()) return 0;
return new ComparisonExpression(op, e1.release(), e2.release());
}
-Expression* parseAddExpression(Tokeniser& tokeniser)
+Expression* addExpression(Tokeniser& tokeniser)
{
- std::auto_ptr<Expression> e(parseMultiplyExpression(tokeniser));
+ std::auto_ptr<Expression> e(multiplyExpression(tokeniser));
if (!e.get()) return 0;
Token t = tokeniser.nextToken();
@@ -876,10 +889,11 @@ Expression* parseAddExpression(Tokeniser
case T_PLUS: op = &add; break;
case T_MINUS: op = ⊂ break;
default:
+ error = "internal error processing binary + or -";
return 0;
}
std::auto_ptr<Expression> e1(e);
- std::auto_ptr<Expression> e2(parseMultiplyExpression(tokeniser));
+ std::auto_ptr<Expression> e2(multiplyExpression(tokeniser));
if (!e2.get()) return 0;
e.reset(new ArithmeticExpression(op, e1.release(), e2.release()));
t = tokeniser.nextToken();
@@ -889,9 +903,9 @@ Expression* parseAddExpression(Tokeniser
return e.release();
}
-Expression* parseMultiplyExpression(Tokeniser& tokeniser)
+Expression* multiplyExpression(Tokeniser& tokeniser)
{
- std::auto_ptr<Expression> e(parseUnaryArithExpression(tokeniser));
+ std::auto_ptr<Expression> e(unaryArithExpression(tokeniser));
if (!e.get()) return 0;
Token t = tokeniser.nextToken();
@@ -901,10 +915,11 @@ Expression* parseMultiplyExpression(Toke
case T_MULT: op = &mult; break;
case T_DIV: op = ÷ break;
default:
+ error = "internal error processing * or /";
return 0;
}
std::auto_ptr<Expression> e1(e);
- std::auto_ptr<Expression> e2(parseMultiplyExpression(tokeniser));
+ std::auto_ptr<Expression> e2(unaryArithExpression(tokeniser));
if (!e2.get()) return 0;
e.reset(new ArithmeticExpression(op, e1.release(), e2.release()));
t = tokeniser.nextToken();
@@ -914,20 +929,23 @@ Expression* parseMultiplyExpression(Toke
return e.release();
}
-Expression* parseUnaryArithExpression(Tokeniser& tokeniser)
+Expression* unaryArithExpression(Tokeniser& tokeniser)
{
const Token t = tokeniser.nextToken();
switch (t.type) {
case T_LPAREN: {
- std::auto_ptr<Expression> e(parseOrExpression(tokeniser));
+ std::auto_ptr<Expression> e(orExpression(tokeniser));
if (!e.get()) return 0;
- if ( tokeniser.nextToken().type!=T_RPAREN ) return 0;
+ if ( tokeniser.nextToken().type!=T_RPAREN ) {
+ error = "missing ')' after '('";
+ return 0;
+ }
return e.release();
}
case T_PLUS:
break; // Unary + is no op
case T_MINUS: {
- std::auto_ptr<Expression> e(parseUnaryArithExpression(tokeniser));
+ std::auto_ptr<Expression> e(unaryArithExpression(tokeniser));
if (!e.get()) return 0;
return new UnaryArithExpression(&negate, e.release());
}
@@ -936,11 +954,11 @@ Expression* parseUnaryArithExpression(To
}
tokeniser.returnTokens();
- std::auto_ptr<Expression> e(parsePrimaryExpression(tokeniser));
+ std::auto_ptr<Expression> e(primaryExpression(tokeniser));
return e.release();
}
-Expression* parsePrimaryExpression(Tokeniser& tokeniser)
+Expression* primaryExpression(Tokeniser& tokeniser)
{
const Token& t = tokeniser.nextToken();
switch (t.type) {
@@ -957,8 +975,27 @@ Expression* parsePrimaryExpression(Token
case T_NUMERIC_APPROX:
return new Literal(boost::lexical_cast<double>(t.val));
default:
+ error = "expected literal or identifier";
return 0;
}
}
+};
+
+TopExpression* TopExpression::parse(const string& exp)
+{
+ string::const_iterator s = exp.begin();
+ string::const_iterator e = exp.end();
+ Tokeniser tokeniser(s,e);
+ Parse parse;
+ std::auto_ptr<Expression> b(parse.orExpression(tokeniser));
+ if (!b.get()) {
+ throwParseError(tokeniser, parse.error);
+ }
+ if (tokeniser.nextToken().type != T_EOS) {
+ throwParseError(tokeniser, "extra input");
+ }
+ return new TopBoolExpression(b.release());
+}
+
}}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.cpp Wed Mar 27 21:58:51 2013
@@ -132,8 +132,8 @@ bool processString(std::string::const_it
++q;
}
+ tok = Token(T_STRING, s, content);
s = q;
- tok = Token(T_STRING, content);
return true;
}
@@ -171,7 +171,7 @@ bool tokenise(std::string::const_iterato
while (true)
switch (state) {
case START:
- if (t==e) {tok = Token(T_EOS, ""); return true;}
+ if (t==e) {tok = Token(T_EOS, s, "<END>"); return true;}
else switch (*t) {
case '(': tokType = T_LPAREN; state = ACCEPT_INC; continue;
case ')': tokType = T_RPAREN; state = ACCEPT_INC; continue;
@@ -259,6 +259,7 @@ bool tokenise(std::string::const_iterato
Tokeniser::Tokeniser(const std::string::const_iterator& s, const std::string::const_iterator& e) :
tokp(0),
+ inStart(s),
inp(s),
inEnd(e)
{
@@ -294,5 +295,11 @@ void Tokeniser::returnTokens(unsigned in
tokp-=n;
}
+std::string Tokeniser::remaining()
+{
+ Token& currentTok = tokens[tokp];
+ return std::string(currentTok.tokenStart, inEnd);
+}
+
}}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorToken.h Wed Mar 27 21:58:51 2013
@@ -67,6 +67,7 @@ typedef enum {
struct Token {
TokenType type;
std::string val;
+ std::string::const_iterator tokenStart;
Token()
{}
@@ -76,14 +77,23 @@ struct Token {
val(v)
{}
+ Token(TokenType t, const std::string::const_iterator& s, const std::string& v) :
+ type(t),
+ val(v),
+ tokenStart(s)
+ {}
+
Token(TokenType t, const std::string::const_iterator& s, const std::string::const_iterator& e) :
type(t),
- val(std::string(s,e))
+ val(std::string(s,e)),
+ tokenStart(s)
{}
bool operator==(const Token& r) const
{
- return type == r.type && val == r.val;
+ return
+ (type == T_EOS && r.type == T_EOS) ||
+ (type == r.type && val == r.val);
}
};
@@ -100,6 +110,7 @@ class Tokeniser {
std::vector<Token> tokens;
unsigned int tokp;
+ std::string::const_iterator inStart;
std::string::const_iterator inp;
std::string::const_iterator inEnd;
@@ -107,6 +118,7 @@ public:
QPID_BROKER_EXTERN Tokeniser(const std::string::const_iterator& s, const std::string::const_iterator& e);
QPID_BROKER_EXTERN void returnTokens(unsigned int n = 1);
QPID_BROKER_EXTERN const Token& nextToken();
+ QPID_BROKER_EXTERN std::string remaining();
};
}}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorValue.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorValue.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorValue.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SelectorValue.cpp Wed Mar 27 21:58:51 2013
@@ -100,6 +100,8 @@ NumericPairBase* promoteNumeric(const Va
assert(false);
}
}
+ // Can never get here - but this stops a warning
+ return 0;
}
bool operator==(const Value& v1, const Value& v2)
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SemanticState.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SemanticState.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SemanticState.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/SemanticState.cpp Wed Mar 27 21:58:51 2013
@@ -286,7 +286,7 @@ void SemanticState::record(const Deliver
}
const std::string QPID_SYNC_FREQUENCY("qpid.sync_frequency");
-const std::string QPID_SELECTOR("qpid.selector");
+const std::string APACHE_SELECTOR("x-apache-selector");
SemanticStateConsumerImpl::SemanticStateConsumerImpl(SemanticState* _parent,
const string& _name,
@@ -309,7 +309,7 @@ Consumer(_name, type),
exclusive(_exclusive),
resumeId(_resumeId),
tag(_tag),
- selector(returnSelector(_arguments.getAsString(QPID_SELECTOR))),
+ selector(returnSelector(_arguments.getAsString(APACHE_SELECTOR))),
resumeTtl(_resumeTtl),
arguments(_arguments),
notifyEnabled(true),
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.cpp Wed Mar 27 21:58:51 2013
@@ -37,11 +37,11 @@ namespace qpid {
namespace broker {
namespace amqp {
-Connection::Connection(qpid::sys::OutputControl& o, const std::string& i, qpid::broker::Broker& b, Interconnects& interconnects_, bool saslInUse)
+Connection::Connection(qpid::sys::OutputControl& o, const std::string& i, qpid::broker::Broker& b, Interconnects& interconnects_, bool saslInUse, const std::string& d)
: ManagedConnection(b, i),
connection(pn_connection()),
transport(pn_transport()),
- out(o), id(i), broker(b), haveOutput(true), interconnects(interconnects_)
+ out(o), id(i), broker(b), haveOutput(true), interconnects(interconnects_), domain(d)
{
if (pn_transport_bind(transport, connection)) {
//error
@@ -265,4 +265,8 @@ std::string Connection::getError()
return text.str();
}
+std::string Connection::getDomain() const
+{
+ return domain;
+}
}}} // namespace qpid::broker::amqp
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Connection.h Wed Mar 27 21:58:51 2013
@@ -45,7 +45,7 @@ class Session;
class Connection : public sys::ConnectionCodec, public ManagedConnection
{
public:
- Connection(qpid::sys::OutputControl& out, const std::string& id, qpid::broker::Broker& broker, Interconnects&, bool saslInUse);
+ Connection(qpid::sys::OutputControl& out, const std::string& id, qpid::broker::Broker& broker, Interconnects&, bool saslInUse, const std::string& domain);
virtual ~Connection();
size_t decode(const char* buffer, size_t size);
virtual size_t encode(char* buffer, size_t size);
@@ -57,6 +57,7 @@ class Connection : public sys::Connectio
framing::ProtocolVersion getVersion() const;
pn_transport_t* getTransport();
Interconnects& getInterconnects();
+ std::string getDomain() const;
protected:
typedef std::map<pn_session_t*, boost::shared_ptr<Session> > Sessions;
pn_connection_t* connection;
@@ -67,6 +68,7 @@ class Connection : public sys::Connectio
bool haveOutput;
Sessions sessions;
Interconnects& interconnects;
+ std::string domain;
virtual void process();
std::string getError();
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Filter.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Filter.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Filter.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Filter.cpp Wed Mar 27 21:58:51 2013
@@ -61,7 +61,7 @@ void Filter::onStringValue(const qpid::a
if (descriptor->match(qpid::amqp::filters::LEGACY_TOPIC_FILTER_SYMBOL, qpid::amqp::filters::LEGACY_TOPIC_FILTER_CODE)
|| descriptor->match(qpid::amqp::filters::LEGACY_DIRECT_FILTER_SYMBOL, qpid::amqp::filters::LEGACY_DIRECT_FILTER_CODE)) {
setSubjectFilter(filter);
- } else if (descriptor->match(qpid::amqp::filters::QPID_SELECTOR_FILTER_SYMBOL, 0)) {
+ } else if (descriptor->match(qpid::amqp::filters::SELECTOR_FILTER_SYMBOL, qpid::amqp::filters::SELECTOR_FILTER_CODE)) {
setSelectorFilter(filter);
} else {
QPID_LOG(notice, "Skipping unrecognised string filter with key " << filter.key << " and descriptor " << filter.descriptor);
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp Wed Mar 27 21:58:51 2013
@@ -41,7 +41,7 @@ namespace amqp {
Interconnect::Interconnect(qpid::sys::OutputControl& out, const std::string& id, qpid::broker::Broker& broker, bool saslInUse,
bool i, const std::string& n, const std::string& s, const std::string& t, Domain& d, Interconnects& r)
- : Connection(out, id, broker, r, saslInUse), incoming(i), name(n), source(s), target(t), domain(d), registry(r), headerDiscarded(false),
+ : Connection(out, id, broker, r, saslInUse, std::string()), incoming(i), name(n), source(s), target(t), domain(d), registry(r), headerDiscarded(false),
closeRequested(false), isTransportDeleted(false)
{}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp Wed Mar 27 21:58:51 2013
@@ -41,10 +41,19 @@ namespace qpid {
namespace broker {
namespace amqp {
+struct Options : public qpid::Options {
+ std::string domain;
+
+ Options() : qpid::Options("AMQP 1.0 Options") {
+ addOptions()
+ ("domain", optValue(domain, "DOMAIN"), "Domain of this broker");
+ }
+};
+
class ProtocolImpl : public Protocol
{
public:
- ProtocolImpl(Interconnects* i, Broker& b) : interconnects(i), broker(b)
+ ProtocolImpl(Interconnects* i, Broker& b, const std::string& d) : interconnects(i), broker(b), domain(d)
{
broker.getObjectFactoryRegistry().add(interconnects);//registry deletes on shutdown
}
@@ -54,16 +63,20 @@ class ProtocolImpl : public Protocol
private:
Interconnects* interconnects;
Broker& broker;
+ std::string domain;
};
struct ProtocolPlugin : public Plugin
{
+ Options options;
+ Options* getOptions() { return &options; }
+
void earlyInitialize(Plugin::Target& target)
{
//need to register protocol before recovery from store
broker::Broker* broker = dynamic_cast<qpid::broker::Broker*>(&target);
if (broker) {
- ProtocolImpl* impl = new ProtocolImpl(new Interconnects(), *broker);
+ ProtocolImpl* impl = new ProtocolImpl(new Interconnects(), *broker, options.domain);
broker->getProtocolRegistry().add("AMQP 1.0", impl);//registry deletes on shutdown
}
}
@@ -79,18 +92,20 @@ qpid::sys::ConnectionCodec* ProtocolImpl
if (v.getProtocol() == qpid::framing::ProtocolVersion::SASL) {
if (broker.getOptions().auth) {
QPID_LOG(info, "Using AMQP 1.0 (with SASL layer)");
- return new qpid::broker::amqp::Sasl(out, id, broker, *interconnects, qpid::SaslFactory::getInstance().createServer(broker.getOptions().realm, broker.getOptions().requireEncrypted, external));
+ return new qpid::broker::amqp::Sasl(out, id, broker, *interconnects,
+ qpid::SaslFactory::getInstance().createServer(broker.getOptions().realm,broker.getOptions().requireEncrypted, external),
+ domain);
} else {
std::auto_ptr<SaslServer> authenticator(new qpid::NullSaslServer(broker.getOptions().realm));
QPID_LOG(info, "Using AMQP 1.0 (with dummy SASL layer)");
- return new qpid::broker::amqp::Sasl(out, id, broker, *interconnects, authenticator);
+ return new qpid::broker::amqp::Sasl(out, id, broker, *interconnects, authenticator, domain);
}
} else {
if (broker.getOptions().auth) {
throw qpid::Exception("SASL layer required!");
} else {
QPID_LOG(info, "Using AMQP 1.0 (no SASL layer)");
- return new qpid::broker::amqp::Connection(out, id, broker, *interconnects, false);
+ return new qpid::broker::amqp::Connection(out, id, broker, *interconnects, false, domain);
}
}
}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp Wed Mar 27 21:58:51 2013
@@ -31,8 +31,8 @@ namespace qpid {
namespace broker {
namespace amqp {
-Sasl::Sasl(qpid::sys::OutputControl& o, const std::string& id, qpid::broker::Broker& broker, Interconnects& i, std::auto_ptr<qpid::SaslServer> auth)
- : qpid::amqp::SaslServer(id), out(o), connection(out, id, broker, i, true),
+Sasl::Sasl(qpid::sys::OutputControl& o, const std::string& id, qpid::broker::Broker& broker, Interconnects& i, std::auto_ptr<qpid::SaslServer> auth, const std::string& domain)
+ : qpid::amqp::SaslServer(id), out(o), connection(out, id, broker, i, true, domain),
authenticator(auth),
state(INCOMPLETE), writeHeader(true), haveOutput(true)
{
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Sasl.h Wed Mar 27 21:58:51 2013
@@ -39,7 +39,7 @@ namespace amqp {
class Sasl : public sys::ConnectionCodec, qpid::amqp::SaslServer
{
public:
- Sasl(qpid::sys::OutputControl& out, const std::string& id, qpid::broker::Broker& broker, Interconnects&, std::auto_ptr<qpid::SaslServer> authenticator);
+ Sasl(qpid::sys::OutputControl& out, const std::string& id, qpid::broker::Broker& broker, Interconnects&, std::auto_ptr<qpid::SaslServer> authenticator, const std::string& domain);
~Sasl();
size_t decode(const char* buffer, size_t size);
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.cpp Wed Mar 27 21:58:51 2013
@@ -53,6 +53,20 @@ namespace qpid {
namespace broker {
namespace amqp {
+namespace {
+bool is_capability_requested(const std::string& name, pn_data_t* capabilities)
+{
+ while (pn_data_next(capabilities)) {
+ pn_bytes_t c = pn_data_get_symbol(capabilities);
+ std::string s(c.start, c.size);
+ if (s == name) return true;
+ }
+ return false;
+}
+
+const std::string CREATE_ON_DEMAND("create-on-demand");
+}
+
class IncomingToQueue : public DecodingIncoming
{
public:
@@ -81,7 +95,7 @@ Session::ResolvedNode Session::resolve(c
node.exchange = broker.getExchanges().find(name);
node.queue = broker.getQueues().find(name);
if (!node.queue && !node.exchange) {
- if (pn_terminus_is_dynamic(terminus)) {
+ if (pn_terminus_is_dynamic(terminus) || is_capability_requested(CREATE_ON_DEMAND, pn_terminus_capabilities(terminus))) {
//is it a queue or an exchange?
NodeProperties properties;
properties.read(pn_terminus_properties(terminus));
@@ -117,25 +131,43 @@ Session::ResolvedNode Session::resolve(c
return node;
}
+std::string Session::generateName(pn_link_t* link)
+{
+ std::stringstream s;
+ s << qpid::types::Uuid(true) << "::" << pn_link_name(link);
+ if (!connection.getDomain().empty()) {
+ s << "@" << connection.getDomain();
+ }
+ return s.str();
+}
+
void Session::attach(pn_link_t* link)
{
if (pn_link_is_sender(link)) {
pn_terminus_t* source = pn_link_remote_source(link);
//i.e a subscription
+ std::string name;
if (pn_terminus_get_type(source) == PN_UNSPECIFIED) {
throw qpid::Exception("No source specified!");/*invalid-field?*/
+ } else if (pn_terminus_is_dynamic(source)) {
+ name = generateName(link);
+ } else {
+ name = pn_terminus_get_address(source);
}
- std::string name = pn_terminus_get_address(source);
QPID_LOG(debug, "Received attach request for outgoing link from " << name);
pn_terminus_set_address(pn_link_source(link), name.c_str());
setupOutgoing(link, source, name);
} else {
pn_terminus_t* target = pn_link_remote_target(link);
+ std::string name;
if (pn_terminus_get_type(target) == PN_UNSPECIFIED) {
throw qpid::Exception("No target specified!");/*invalid field?*/
+ } else if (pn_terminus_is_dynamic(target)) {
+ name = generateName(link);
+ } else {
+ name = pn_terminus_get_address(target);
}
- std::string name = pn_terminus_get_address(target);
QPID_LOG(debug, "Received attach request for incoming link to " << name);
pn_terminus_set_address(pn_link_target(link), name.c_str());
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/broker/amqp/Session.h Wed Mar 27 21:58:51 2013
@@ -95,6 +95,7 @@ class Session : public ManagedSession, p
ResolvedNode resolve(const std::string name, pn_terminus_t* terminus, bool incoming);
void setupOutgoing(pn_link_t* link, pn_terminus_t* source, const std::string& name);
void setupIncoming(pn_link_t* link, pn_terminus_t* target, const std::string& name);
+ std::string generateName(pn_link_t*);
};
}}} // namespace qpid::broker::amqp
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp Wed Mar 27 21:58:51 2013
@@ -93,7 +93,8 @@ const std::string DURABLE("durable");
const std::string X_DECLARE("x-declare");
const std::string X_SUBSCRIBE("x-subscribe");
const std::string X_BINDINGS("x-bindings");
-const std::string QPID_SELECTOR("qpid.selector");
+const std::string SELECTOR("selector");
+const std::string APACHE_SELECTOR("x-apache-selector");
const std::string EXCHANGE("exchange");
const std::string QUEUE("queue");
const std::string KEY("key");
@@ -477,8 +478,8 @@ QueueSource::QueueSource(const Address&
//options)
exclusive = Opt(address)/LINK/X_SUBSCRIBE/EXCLUSIVE;
(Opt(address)/LINK/X_SUBSCRIBE/ARGUMENTS).collect(options);
- std::string selector = Opt(address)/LINK/QPID_SELECTOR;
- if (!selector.empty()) options.setString(QPID_SELECTOR, selector);
+ std::string selector = Opt(address)/LINK/SELECTOR;
+ if (!selector.empty()) options.setString(APACHE_SELECTOR, selector);
}
void QueueSource::subscribe(qpid::client::AsyncSession& session, const std::string& destination)
@@ -990,7 +991,7 @@ Verifier::Verifier()
link[X_SUBSCRIBE] = true;
link[X_DECLARE] = true;
link[X_BINDINGS] = true;
- link[QPID_SELECTOR] = true;
+ link[SELECTOR] = true;
defined[LINK] = link;
}
void Verifier::verify(const Address& address) const
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp Wed Mar 27 21:58:51 2013
@@ -143,6 +143,11 @@ uint32_t ReceiverImpl::getUnsettled()
return parent->getUnsettledAcks(destination);
}
+qpid::messaging::Address ReceiverImpl::getAddress() const
+{
+ return address;
+}
+
ReceiverImpl::ReceiverImpl(SessionImpl& p, const std::string& name,
const qpid::messaging::Address& a) :
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h Wed Mar 27 21:58:51 2013
@@ -66,6 +66,7 @@ class ReceiverImpl : public qpid::messag
void received(qpid::messaging::Message& message);
qpid::messaging::Session getSession() const;
bool isClosed() const;
+ qpid::messaging::Address getAddress() const;
private:
mutable sys::Mutex lock;
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp Wed Mar 27 21:58:51 2013
@@ -34,6 +34,11 @@ SenderImpl::SenderImpl(SessionImpl& _par
parent(&_parent), name(_name), address(_address), state(UNRESOLVED),
capacity(50), window(0), flushed(false), unreliable(AddressResolution::is_unreliable(address)) {}
+qpid::messaging::Address SenderImpl::getAddress() const
+{
+ return address;
+}
+
void SenderImpl::send(const qpid::messaging::Message& message, bool sync)
{
if (unreliable) { // immutable, don't need lock
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h Wed Mar 27 21:58:51 2013
@@ -56,6 +56,7 @@ class SenderImpl : public qpid::messagin
void init(qpid::client::AsyncSession, AddressResolution&);
const std::string& getName() const;
qpid::messaging::Session getSession() const;
+ qpid::messaging::Address getAddress() const;
private:
mutable sys::Mutex lock;
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/qpid/management/ManagementAgent.cpp
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp:r1458037-1461856
Propchange: qpid/branches/QPID-4659/qpid/cpp/src/qpid/management/ManagementAgent.h
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h:r1458037-1461856
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Address.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Address.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Address.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Address.cpp Wed Mar 27 21:58:51 2013
@@ -19,6 +19,8 @@
*
*/
#include "qpid/messaging/Address.h"
+#include "qpid/messaging/AddressImpl.h"
+#include "qpid/messaging/AddressParser.h"
#include "qpid/framing/Uuid.h"
#include <sstream>
#include <boost/format.hpp>
@@ -34,51 +36,9 @@ const std::string OPTIONS_DIVIDER = ";";
const std::string SPACE = " ";
const std::string TYPE = "type";
}
-class AddressImpl
-{
- public:
- std::string name;
- std::string subject;
- Variant::Map options;
-
- AddressImpl() {}
- AddressImpl(const std::string& n, const std::string& s, const Variant::Map& o) :
- name(n), subject(s), options(o) {}
-};
-
-class AddressParser
-{
- public:
- AddressParser(const std::string&);
- bool parse(Address& address);
- private:
- const std::string& input;
- std::string::size_type current;
- static const std::string RESERVED;
-
- bool readChar(char c);
- bool readQuotedString(std::string& s);
- bool readQuotedValue(Variant& value);
- bool readString(std::string& value, char delimiter);
- bool readWord(std::string& word, const std::string& delims = RESERVED);
- bool readSimpleValue(Variant& word);
- bool readKey(std::string& key);
- bool readValue(Variant& value);
- bool readKeyValuePair(Variant::Map& map);
- bool readMap(Variant& value);
- bool readList(Variant& value);
- bool readName(std::string& name);
- bool readSubject(std::string& subject);
- bool error(const std::string& message);
- bool eos();
- bool iswhitespace();
- bool in(const std::string& delims);
- bool isreserved();
-};
-
Address::Address() : impl(new AddressImpl()) {}
Address::Address(const std::string& address) : impl(new AddressImpl())
-{
+{
AddressParser parser(address);
parser.parse(*this);
}
@@ -86,7 +46,7 @@ Address::Address(const std::string& name
const std::string& type)
: impl(new AddressImpl(name, subject, options)) { setType(type); }
Address::Address(const Address& a) :
- impl(new AddressImpl(a.impl->name, a.impl->subject, a.impl->options)) {}
+ impl(new AddressImpl(a.impl->name, a.impl->subject, a.impl->options)) { impl->temporary = a.impl->temporary; }
Address::~Address() { delete impl; }
Address& Address::operator=(const Address& a) { *impl = *a.impl; return *this; }
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressParser.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressParser.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressParser.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/AddressParser.cpp Wed Mar 27 21:58:51 2013
@@ -19,6 +19,7 @@
*
*/
#include "AddressParser.h"
+#include "AddressImpl.h"
#include "qpid/framing/Uuid.h"
#include <boost/format.hpp>
@@ -38,7 +39,10 @@ bool AddressParser::parse(Address& addre
{
std::string name;
if (readName(name)) {
- if (name.find('#') == 0) name = qpid::framing::Uuid(true).str() + name;
+ if (name.find('#') == 0) {
+ name = qpid::framing::Uuid(true).str() + name;
+ AddressImpl::setTemporary(address, true);
+ }
address.setName(name);
if (readChar('/')) {
std::string subject;
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Receiver.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Receiver.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Receiver.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Receiver.cpp Wed Mar 27 21:58:51 2013
@@ -19,6 +19,7 @@
*
*/
#include "qpid/messaging/Receiver.h"
+#include "qpid/messaging/Address.h"
#include "qpid/messaging/Message.h"
#include "qpid/messaging/ReceiverImpl.h"
#include "qpid/messaging/Session.h"
@@ -45,4 +46,5 @@ void Receiver::close() { impl->close();
const std::string& Receiver::getName() const { return impl->getName(); }
Session Receiver::getSession() const { return impl->getSession(); }
bool Receiver::isClosed() const { return impl->isClosed(); }
+Address Receiver::getAddress() const { return impl->getAddress(); }
}} // namespace qpid::messaging
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/ReceiverImpl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/ReceiverImpl.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/ReceiverImpl.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/ReceiverImpl.h Wed Mar 27 21:58:51 2013
@@ -27,6 +27,7 @@
namespace qpid {
namespace messaging {
+class Address;
class Duration;
class Message;
class MessageListener;
@@ -48,6 +49,7 @@ class ReceiverImpl : public virtual qpid
virtual const std::string& getName() const = 0;
virtual Session getSession() const = 0;
virtual bool isClosed() const = 0;
+ virtual Address getAddress() const = 0;
};
}} // namespace qpid::messaging
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Sender.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Sender.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Sender.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/Sender.cpp Wed Mar 27 21:58:51 2013
@@ -19,6 +19,7 @@
*
*/
#include "qpid/messaging/Sender.h"
+#include "qpid/messaging/Address.h"
#include "qpid/messaging/Message.h"
#include "qpid/messaging/SenderImpl.h"
#include "qpid/messaging/Session.h"
@@ -40,5 +41,5 @@ uint32_t Sender::getUnsettled() { return
uint32_t Sender::getAvailable() { return getCapacity() - getUnsettled(); }
const std::string& Sender::getName() const { return impl->getName(); }
Session Sender::getSession() const { return impl->getSession(); }
-
+Address Sender::getAddress() const { return impl->getAddress(); }
}} // namespace qpid::messaging
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/SenderImpl.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/SenderImpl.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/SenderImpl.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/SenderImpl.h Wed Mar 27 21:58:51 2013
@@ -27,6 +27,7 @@
namespace qpid {
namespace messaging {
+class Address;
class Message;
class Session;
@@ -41,6 +42,7 @@ class SenderImpl : public virtual qpid::
virtual uint32_t getUnsettled() = 0;
virtual const std::string& getName() const = 0;
virtual Session getSession() const = 0;
+ virtual Address getAddress() const = 0;
private:
};
}} // namespace qpid::messaging
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp Wed Mar 27 21:58:51 2013
@@ -20,6 +20,7 @@
*/
#include "qpid/messaging/amqp/AddressHelper.h"
#include "qpid/messaging/Address.h"
+#include "qpid/log/Statement.h"
#include <vector>
#include <boost/assign.hpp>
extern "C" {
@@ -56,7 +57,9 @@ const std::string MOVE("move");
const std::string COPY("copy");
const std::string SUPPORTED_DIST_MODES("supported-dist-modes");
+const std::string CREATE_ON_DEMAND("create-on-demand");
+const std::string DUMMY(".");
const std::vector<std::string> RECEIVER_MODES = boost::assign::list_of<std::string>(ALWAYS) (RECEIVER);
const std::vector<std::string> SENDER_MODES = boost::assign::list_of<std::string>(ALWAYS) (SENDER);
@@ -155,26 +158,33 @@ const qpid::types::Variant::Map& Address
return link;
}
-void AddressHelper::setNodeProperties(pn_terminus_t* terminus)
+void AddressHelper::setNodeProperties(pn_terminus_t* terminus, bool dynamic)
{
- pn_terminus_set_dynamic(terminus, true);
+ if (dynamic) {
+ pn_terminus_set_address(terminus, DUMMY.c_str());//Workaround for proton bug
+ pn_terminus_set_dynamic(terminus, true);
+ } else {
+ pn_data_t* capabilities = pn_terminus_capabilities(terminus);
+ if (!capabilities) {
+ QPID_LOG(error, "!!!No capabilities!!!");
+ }
+ pn_data_put_symbol(capabilities, convert(CREATE_ON_DEMAND));
+ }
//properties for dynamically created node:
- pn_data_t* data = pn_terminus_properties(terminus);
if (node.size()) {
+ pn_data_t* data = pn_terminus_properties(terminus);
pn_data_put_map(data);
pn_data_enter(data);
- }
- for (qpid::types::Variant::Map::const_iterator i = node.begin(); i != node.end(); ++i) {
- if (i->first == TYPE) {
- pn_data_put_symbol(data, convert(SUPPORTED_DIST_MODES));
- pn_data_put_string(data, convert(i->second == TOPIC ? COPY : MOVE));
- } else {
- pn_data_put_symbol(data, convert(i->first));
- pn_data_put_string(data, convert(i->second.asString()));
+ for (qpid::types::Variant::Map::const_iterator i = node.begin(); i != node.end(); ++i) {
+ if (i->first == TYPE) {
+ pn_data_put_symbol(data, convert(SUPPORTED_DIST_MODES));
+ pn_data_put_string(data, convert(i->second == TOPIC ? COPY : MOVE));
+ } else {
+ pn_data_put_symbol(data, convert(i->first));
+ pn_data_put_string(data, convert(i->second.asString()));
+ }
}
- }
- if (node.size()) {
pn_data_exit(data);
}
}
Modified: qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.h
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.h?rev=1461870&r1=1461869&r2=1461870&view=diff
==============================================================================
--- qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.h (original)
+++ qpid/branches/QPID-4659/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.h Wed Mar 27 21:58:51 2013
@@ -40,7 +40,7 @@ class AddressHelper
bool deleteEnabled(CheckMode mode) const;
bool assertEnabled(CheckMode mode) const;
- void setNodeProperties(pn_terminus_t*);
+ void setNodeProperties(pn_terminus_t*, bool dynamic);
const qpid::types::Variant::Map& getNodeProperties() const;
const qpid::types::Variant::Map& getLinkProperties() const;
private:
@@ -49,6 +49,7 @@ class AddressHelper
std::string deletePolicy;
qpid::types::Variant::Map node;
qpid::types::Variant::Map link;
+ std::string name;
bool enabled(const std::string& policy, CheckMode mode) const;
};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org