Author: ngn
Date: Fri Aug 7 21:30:53 2009
New Revision: 802210
URL: http://svn.apache.org/viewvc?rev=802210&view=rev
Log:
Allow for namespace handlers also for presence and message stanzas, need for MUC
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java?rev=802210&r1=802209&r2=802210&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java
(original)
+++
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java
Fri Aug 7 21:30:53 2009
@@ -83,28 +83,30 @@
}
private StanzaHandler getPresenceHandler(Stanza stanza) {
- return presenceHandler;
+ return getHandler(stanza, presenceHandler);
}
private StanzaHandler getMessageHandler(Stanza stanza) {
- return messageHandler;
+ return getHandler(stanza, messageHandler);
}
private StanzaHandler getIQHandler(Stanza stanza) {
+ return getHandler(stanza, iqHandler);
+ }
+ private StanzaHandler getHandler(Stanza stanza, StanzaHandler
defaultHandler) {
StanzaHandler handlerForElement = null;
if (stanza.getVerifier().subElementsPresentExact(1)) {
XMLElement firstInnerElement = stanza.getFirstInnerElement();
handlerForElement = getHandlerForElement(stanza,
firstInnerElement);
+ return handlerForElement;
} else {
// if no specialized handler can be identified, return general
handler
- return iqHandler;
+ return defaultHandler;
}
-
- return handlerForElement;
}
-
+
/**
* tries to find the handler by trying
* 1. value of xmlElement's XMLNS attribute, if unique