summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* * Summary:Alan Conway2007-08-3126-428/+1117
| | | | | | | | | | | | | | | | | | | | | | | | | | - Moved BrokerChannel functionality into Session. - Moved ChannelHandler methods handling into SessionAdapter. - Updated all handlers to use session. (We're still using AMQP channel methods in SessionAdapter) Roles & responsibilities: Session: - represents an _open_ session, may be active or suspended. - ows all session state including handler chains. - attahced to SessionAdapter when active, not when suspended. SessionAdapter: - reprents the association of a channel with a session. - owned by Connection, kept in the session map. - channel open == SessionAdapter.getSessio() != 0 Anything that depends on attachment to a channel, connection or protocol should be in SessionAdpater. Anything that suvives a session suspend belongs in Session. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571575 13f79535-47bb-0310-9956-ffa450edef68
* * Changes to make C++ client code use the asynchronous network IOAndrew Stitcher2007-08-3115-193/+309
| | | | | | | | * Fixed up the test for buffer changes * Removed unused buffer operations git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571529 13f79535-47bb-0310-9956-ffa450edef68
* Pass QueuedMessage to queues consumers. This records the position of that ↵Gordon Sim2007-08-3111-79/+96
| | | | | | message in the queue which is need to handle rlease and acquire. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571518 13f79535-47bb-0310-9956-ffa450edef68
* QPID-554 Patch submitted by Jia Jia to add viewing of binary content in ↵Martin Ritchie2007-08-318-154/+502
| | | | | | messages. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571491 13f79535-47bb-0310-9956-ffa450edef68
* Fixed bug where stale iterator is used.Gordon Sim2007-08-311-4/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571410 13f79535-47bb-0310-9956-ffa450edef68
* fixed a race condition in ConnectionStartTestRafael H. Schloming2007-08-311-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571367 13f79535-47bb-0310-9956-ffa450edef68
* Fix compile errors in generated code.Alan Conway2007-08-302-4/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571347 13f79535-47bb-0310-9956-ffa450edef68
* fixed a race condition causing intermittant test failures in ↵Rafael H. Schloming2007-08-301-40/+49
| | | | | | AMQBrokerManagerMBeanTest git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571277 13f79535-47bb-0310-9956-ffa450edef68
* - Update cluster code to work with new FrameHandlerAlan Conway2007-08-3014-152/+136
| | | | | | | | - Update ClassifierHandler to use Visitor rather than map. - Replace heap allocation in cluster classes with boost::optional. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571246 13f79535-47bb-0310-9956-ffa450edef68
* * configure.ac: Disabled cluster build temporarily while fixing build problems.Alan Conway2007-08-302-1/+5
| | | | | | | * src/qpid/framing/Handler.h: Add missing default constructor. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571161 13f79535-47bb-0310-9956-ffa450edef68
* Remerge of M2. All tests pass locallyMartin Ritchie2007-08-30198-6815/+17361
| | | | | | | | | | | | | | | | Testing done in Intelij and mvn command line via windows/cygwin. Python tests removed from auto build pending Jython-siztion. Tested running broker in intelij and python run-tests from cygwin. All tests pass. (CombinedTest still exhibts a race condition. but that has always been so.) Additional Race condition identified (around MsgReject/AutoDeleteQueues) during testing patch to follow. systests are inconsistent Some use TestableMemoryMessageStore some use MemoryMessgaeStore. Lets not roll back this change if issues are discovered. Lets work together to go forward and address any issues. I have spent a lot of time ensuring the tests work for me so I hope that they work for you. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571129 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/broker/Session.h, .cpp: Session holds all state of a session ↵Alan Conway2007-08-2917-199/+294
| | | | | | | | | | | | | | | | | | | | | | | including handlers created for that session. Session is not directly associated with a channel. * src/qpid/broker/SessionAdapter.h, .cpp: SessionAdapter is bound to a channel managed by the Connection. It can be attached to and detatched from a Session. * src/qpid/broker/Connection.cpp, .h: Use SessionAdapter. * src/qpid/framing/Handler.h: Removed use of shared_ptr. Handlers belong either to a Session or a Connection and are destroyed with it. * src/qpid/framing/InputHandler.h, OutputHandler.h: Both now inherit from FrameHandler and can be used as FrameHandlers. Intermediate step to removing them entirely. * src/qpid/broker/ConnectionAdapter.h: * src/qpid/client/ConnectionHandler.h: * src/qpid/framing/ChannelAdapter.cpp, .h: Minor changes required by Handler changes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570982 13f79535-47bb-0310-9956-ffa450edef68
* Remove Java from code generation check.Alan Conway2007-08-291-3/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570855 13f79535-47bb-0310-9956-ffa450edef68
* * rubygen/cppgen.rb: Use class Uuid for AMQP uuids.Alan Conway2007-08-292-5/+2
| | | | | | | * rubygen/templates/structs.rb: Use class Uuid for AMQP uuids. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570595 13f79535-47bb-0310-9956-ffa450edef68
* Generate constants and reply exceptions from spec constants.Alan Conway2007-08-283-5/+50
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570540 13f79535-47bb-0310-9956-ffa450edef68
* Updated message.transfer encoding to use header and content segments ↵Gordon Sim2007-08-28117-3746/+2032
| | | | | | | | | | (including new structs). Unified more between the basic and message classes messages. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570538 13f79535-47bb-0310-9956-ffa450edef68
* Updated ignoresAndrew Stitcher2007-08-280-0/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570502 13f79535-47bb-0310-9956-ffa450edef68
* * Fix compile errors.Alan Conway2007-08-273-4/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570252 13f79535-47bb-0310-9956-ffa450edef68
* * Fix compile errors.Alan Conway2007-08-273-26/+31
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570251 13f79535-47bb-0310-9956-ffa450edef68
* - perf clean up.Carl C. Trieloff2007-08-272-10/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570243 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/framing/FrameDefaultVisitor.h:Alan Conway2007-08-279-31/+255
| | | | | | | | | | | | | | | A visitor for all concrete frame body types. * src/qpid/broker/SessionState.h: 3 states - closed, active, suspended. * src/qpid/broker/SessionAdapter.h, .cpp: Session handler, implements session class commands. In progres.. * rubygen/templates/MethodBodyDefaultVisitor.rb: A visitor for all method body types. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570236 13f79535-47bb-0310-9956-ffa450edef68
* svn:ignoreAlan Conway2007-08-270-0/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570165 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/broker/SessionState.h: State of a session.Alan Conway2007-08-276-0/+242
| | | | | | | | * src/qpid/broker/SuspendedSessions.h, .cpp: Stores suspended sessions. * src/tests/Session.cpp: Test session classes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570164 13f79535-47bb-0310-9956-ffa450edef68
* - cache the exchange on a given ChannelCarl C. Trieloff2007-08-272-5/+20
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570152 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/framing/FrameDefaultVisitor.h:Alan Conway2007-08-272-0/+90
| | | | | | | | | | | | | | Visitor for all concrete frame body types. Override to handle specific bodies (methods or header/content) and provide default handling for others. * rubygen/MethodBodyDefaultVisitor.rb: Visitor for MethodBodies with visit functions that call virtual defaultVisit(). Override to handle specific methods and give default behavior for others. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570121 13f79535-47bb-0310-9956-ffa450edef68
* * rubygen/cppgen.rb: Use uint rather than u_int form for consistency.Alan Conway2007-08-273-14/+9
| | | | | | | * rubygen/amqpgen.rb: Removed unnecessary sorting. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570111 13f79535-47bb-0310-9956-ffa450edef68
* * rubygen/amqpgen.rb: Performance and API improvements.Alan Conway2007-08-2714-313/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added nodes for all amqp.xml elements except doc, assert and rule. (They can easily be added.) In particular AmqpDomain is a proper node, providing a place to do type mapping. Every node has reader methods for AMQP attributes/elements: - attr() for each AMQP attribute "attr" returns the string value. - foos() returns AmqpElements for all the "foo" children. - foo(name) returns AmqpElements for the named "foo" child domain() returns an AmqpDomain rather than the string name. Method names that would clash with Object methods get a trailing "_" So: class_/classes, method_/methods_, type_/types Notes: - no amqp_ prefixes. - AmqpElement does not inherit REXML::Element, AmqpElement#xml() to get the REXML element. Performance: all templates run in 2.8 seconds on my laptop, compared to almost two minutes previously. Main change was to replace xpath searches with simple descent of the Amqp model and cache values selectively based on profiling. * rubygen/cppgen.rb: - Updated for amqpgen changes. - Introduced CppType to manage C++ type information - Moved all type mapping to CppType/AmqpDomain Some templates still do their own type calculations, these should be centralized in CppType so they can be re-used. * rubygen/templates/*: Updated for new API * src/qpid/framing/amqp_types_full.h: Added Uuid.h * xml/cluster.xml: change "type" attribute to "domain" git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570096 13f79535-47bb-0310-9956-ffa450edef68
* Added a temp fix to overcome the ByteBuffer.array() problemRajith Muditha Attapattu2007-08-251-0/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569695 13f79535-47bb-0310-9956-ffa450edef68
* Corrected logic to check message listenerRajith Muditha Attapattu2007-08-251-40/+41
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569691 13f79535-47bb-0310-9956-ffa450edef68
* added bouncerArnaud Simon2007-08-252-3/+395
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569689 13f79535-47bb-0310-9956-ffa450edef68
* I provided a fixed to the deadlock issue in MessageConsumerImpl.Rajith Muditha Attapattu2007-08-254-356/+205
| | | | | | | | | | | | | | | | | | Here is the deadlock issue --------------------------- The internal receive thread acquires the _incomingMessageLock and blocks on sync() The MINA thread gets on to onMessage() and blocks while trying to acquire the incomingMessageLock Since the MINA thread doesn't return it can't process the execution.complete() sent by the broker. Since the execution.complete doesn't get processed, the sync() doesn't return. Hence the deadlock. Solution ---------- I rewrote the receive logic using a LinkedBlockingQueue and leveraging the application thread that calls receive methods git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569688 13f79535-47bb-0310-9956-ffa450edef68
* Added basic test case to test JMSRajith Muditha Attapattu2007-08-2411-59/+170
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569547 13f79535-47bb-0310-9956-ffa450edef68
* * src/qpid/broker/Daemon.cpp: Additional logging.Alan Conway2007-08-244-30/+43
| | | | | | | | | * configure.ac: Fixed problem with openais check. * src/tests/test_env: Remove LD_PRELOAD dlclose_noop, only for CppUnit. * src/tests/run-unit-tests: Added LD_PRELOAD dlclose_noop. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569520 13f79535-47bb-0310-9956-ffa450edef68
* Fixed compilation errors related to PingPongBouncer.Rajith Muditha Attapattu2007-08-241-3/+3
| | | | | | | It looks like this file was accidently deleted. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569480 13f79535-47bb-0310-9956-ffa450edef68
* updated afterReceiveArnaud Simon2007-08-245-22/+32
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569431 13f79535-47bb-0310-9956-ffa450edef68
* updated for using pure JMSArnaud Simon2007-08-2419-2113/+518
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569429 13f79535-47bb-0310-9956-ffa450edef68
* updated consumer threadArnaud Simon2007-08-248-114/+118
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569414 13f79535-47bb-0310-9956-ffa450edef68
* git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569298 ↵Arnaud Simon2007-08-245-45/+41
| | | | 13f79535-47bb-0310-9956-ffa450edef68
* Fixed the following issuesRajith Muditha Attapattu2007-08-2418-55/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | 1) TopicImpl doesn't populate the routing key properly. The Destination Impl needs to have a routing key field (I added the field). For Topic The queue name is generated. For Queue the routingkey is same as queue name. 2) QpidMessage - Calling flip on messageData resets the limit to zero in beforeMessageDispatch(). I commented out the flip() 3) QpidMessage - setMessageData Instead of _messageData = messageBody, I modified it to do _messageData = messageBody.duplicate(); 4) MessageActorId is not set properly - so I modified the code to set this. This id is used for the destination 5) When creating BytesMessageImpl, in the constructor, it doesn't read from the underlying message impl. There for the _readIn is null and results in MessageNotReadableException. I added a temp solution to read and populate _readIn. However need to revisit it later git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569238 13f79535-47bb-0310-9956-ffa450edef68
* removed un-used codeCarl C. Trieloff2007-08-232-7/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569136 13f79535-47bb-0310-9956-ffa450edef68
* removed extraneous whitespaceRafael H. Schloming2007-08-231-21/+21
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569134 13f79535-47bb-0310-9956-ffa450edef68
* moved Encoder, Decoder and related classes into the codec sub-packageRafael H. Schloming2007-08-2317-21/+57
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569045 13f79535-47bb-0310-9956-ffa450edef68
* qpid::ignore BlobAlan Conway2007-08-230-0/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568973 13f79535-47bb-0310-9956-ffa450edef68
* updated from M2 branchArnaud Simon2007-08-232-147/+386
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568954 13f79535-47bb-0310-9956-ffa450edef68
* updated from M2 branchArnaud Simon2007-08-2310-1005/+1136
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568952 13f79535-47bb-0310-9956-ffa450edef68
* updated for using new command line parser Arnaud Simon2007-08-231-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568951 13f79535-47bb-0310-9956-ffa450edef68
* updated from M2 branchArnaud Simon2007-08-231-17/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568950 13f79535-47bb-0310-9956-ffa450edef68
* * specs/amqp-transitional.0-10.xml: Removed ping and pong methods.Alan Conway2007-08-223-29/+12
| | | | | | | | | | They have been removed from the spec. * cpp/src/tests/Cluster.cpp, Cluster_child.cpp: Removed use of SessionPing/PongBody. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568732 13f79535-47bb-0310-9956-ffa450edef68
* removed circular from importsRafael H. Schloming2007-08-222-5/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568726 13f79535-47bb-0310-9956-ffa450edef68
* added support for 0-10 style header encodingRafael H. Schloming2007-08-226-18/+110
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568607 13f79535-47bb-0310-9956-ffa450edef68