You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2009/08/19 22:01:16 UTC

svn commit: r805954 - /mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java

Author: ngn
Date: Wed Aug 19 20:01:14 2009
New Revision: 805954

URL: http://svn.apache.org/viewvc?rev=805954&view=rev
Log:
Replace local stanza clone method with StanzaBuilder

Modified:
    mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java

Modified: mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java?rev=805954&r1=805953&r2=805954&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCMessageHandler.java Wed Aug 19 20:01:14 2009
@@ -19,6 +19,7 @@
  */
 package org.apache.vysper.xmpp.modules.extension.xep0045_muc.handler;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -40,6 +41,7 @@
 import org.apache.vysper.xmpp.stanza.StanzaBuilder;
 import org.apache.vysper.xmpp.stanza.MessageStanzaType;
 import org.apache.vysper.xmpp.xmlfragment.Attribute;
+import org.apache.vysper.xmpp.xmlfragment.Renderer;
 import org.apache.vysper.xmpp.xmlfragment.XMLElement;
 import org.apache.vysper.xmpp.xmlfragment.XMLFragment;
 import org.slf4j.Logger;
@@ -69,21 +71,6 @@
         return MUCHandlerHelper.verifyNamespace(stanza);
     }
     
-    private Stanza copyMessageStanza(Entity from, Entity to, Stanza original) {
-        StanzaBuilder builder = new StanzaBuilder("message");
-        builder.addAttribute("from", from.getFullQualifiedName());
-        builder.addAttribute("to", to.getFullQualifiedName());
-        if(original.getAttribute("type") != null) {
-            builder.addAttribute("type", original.getAttributeValue("type"));
-        }
-        
-        for(XMLElement innerElement : original.getInnerElements()) {
-            builder.addPreparedElement(innerElement);
-        }
-        
-        return builder.getFinalStanza();
-    }
-    
     private Stanza createMessageErrorStanza(Entity from, Entity to, String id, String type, String errorName, Stanza stanza) {
         return MUCHandlerHelper.createErrorStanza("message", from, to, id, type, errorName, stanza.getInnerElements());
     }
@@ -118,8 +105,12 @@
                         logger.debug("Relaying message to all room occupants");
                         for(Occupant occupent : room.getOccupants()) {
                             logger.debug("Relaying message to  {}", occupent);
+                            List<Attribute> replaceAttributes = new ArrayList<Attribute>();
+                            replaceAttributes.add(new Attribute("from", roomAndSendingNick.getFullQualifiedName()));
+                            replaceAttributes.add(new Attribute("to", occupent.getJid().getFullQualifiedName()));
+                            
                             relayStanza(occupent.getJid(), 
-                                    copyMessageStanza(roomAndSendingNick, occupent.getJid(), stanza), 
+                                    StanzaBuilder.createClone(stanza, true, replaceAttributes).getFinalStanza(),
                                     sessionContext);
                         }
                     } else {