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


Reply via email to