blob: e0e14d0321543f3854b4b7e1a2680cb21c76a72d [file] [log] [blame]
The system architecture is separated into parts:
* Abstract protocol handling *
package: o.a.v.xmpp.protocol
Protocol workflow, state machine changes during handshake, consistency checks
Delegation to concrete handling
* Concrete protocol handling *
package: o.a.v.xmpp.applicationdomains
Stanza handlers and Response builders
Concrete processing of stanzas
* XML parsing into fragments XMPP
package: o.a.v.xmpp.xmldecoder
Determines stanza boundaries in a sequence of characters and translates into (potential) XMPP stanzas
* Server runtime incl. session handling
server instance with all its properties and switches.
* Stanza infrastructure and tools
packages: o.a.v.xmpp.stanza, o.a.v.xmpp.xmlfragment
handles stanza objects freed from any representation (XML)
* TCP binding
package: o.a.v.mina
binding to TCP protocol endpoint, handling endpoint events, delivering data from/to XML parsing
* SASL authorization mechanism logic
package: o.a.v.xmpp.authorization
* SEDA: staged event driven architecture
available stages:
reading from TCP/IP socket - XMLStreamTokenizer
handling inbound stanzas from client - QueuedStanzaProcessor
handling outbound stanzas to clients - DeliveringStanzaRelay
missing stages:
handling outbound stanzas to servers - RecordingStanzaRelay (provisorial implementation)
handling inbound stanzas issued by self or remote servers (to go to clients or not) - missing!