You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by fo...@apache.org on 2012/04/25 23:20:38 UTC

svn commit: r1330564 - in /mina/vysper/trunk: nbxml/src/main/java/org/apache/vysper/xml/decoder/ nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ nbxml/src/test/java/org/apache/vysper/xml/sax/perf/ server/core/src/main/java/org/apache/vysper/xmpp/pa...

Author: foodmike
Date: Wed Apr 25 21:20:37 2012
New Revision: 1330564

URL: http://svn.apache.org/viewvc?rev=1330564&view=rev
Log:
Implemented stream close handling to fix VYSPER-18. XMLElementListener now has a close() method that is called from the XMPPContentHandler when a </stream:stream> element is sent by the client. This can then be used to close a session.

Modified:
    mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLElementListener.java
    mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
    mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java
    mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java

Modified: mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLElementListener.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLElementListener.java?rev=1330564&r1=1330563&r2=1330564&view=diff
==============================================================================
--- mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLElementListener.java (original)
+++ mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLElementListener.java Wed Apr 25 21:20:37 2012
@@ -23,4 +23,5 @@ import org.apache.vysper.xml.fragment.XM
 
 public interface XMLElementListener {
     void element(XMLElement element);
+    void close();
 }
\ No newline at end of file

Modified: mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java?rev=1330564&r1=1330563&r2=1330564&view=diff
==============================================================================
--- mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java (original)
+++ mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMPPContentHandler.java Wed Apr 25 21:20:37 2012
@@ -139,7 +139,7 @@ public class XMPPContentHandler implemen
      * End of the XMPP stream. Tell the XML listener we're done.
      */
     public void endDocument() throws SAXException { 
-        /* nothing to do */
+    	this.listener.close();
     }
 
     /**

Modified: mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java?rev=1330564&r1=1330563&r2=1330564&view=diff
==============================================================================
--- mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java (original)
+++ mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java Wed Apr 25 21:20:37 2012
@@ -39,10 +39,19 @@ public class XMPPContentHandlerTestCase 
 
     private static class TestListener implements XMLElementListener {
         public List<XMLElement> elements = new ArrayList<XMLElement>();
+        private boolean closed = false;
 
         public void element(XMLElement element) {
             elements.add(element);
         }
+        
+        public void close() {
+        	closed = true;
+        }
+        
+        public boolean isClosed() {
+        	return closed;
+        }
     }
 
     public void test() throws Exception {
@@ -63,6 +72,7 @@ public class XMPPContentHandlerTestCase 
         assertEquals("stanza", actual.next().getName());
         assertEquals("message", actual.next().getName());
         assertEquals("iq", actual.next().getName());
+        assertEquals(true, listener.isClosed());
     }
 
     private void parse(NonBlockingXMLReader reader, String xml) throws Exception {

Modified: mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java?rev=1330564&r1=1330563&r2=1330564&view=diff
==============================================================================
--- mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java (original)
+++ mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java Wed Apr 25 21:20:37 2012
@@ -39,6 +39,8 @@ public class PerfRunner {
         public void element(XMLElement element) {
             counter++;
         }
+        
+        public void close() {}
     }
 
     private static final String SINGLE_LEVEL_XML = "<child att='foo' att2='bar'></child>";

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java?rev=1330564&r1=1330563&r2=1330564&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java Wed Apr 25 21:20:37 2012
@@ -60,6 +60,7 @@ public class XMLParserUtil {
             public void element(XMLElement element) {
                 documents.add(element);
             }
+            public void close() {}
         });
 
         IoBuffer buffer = IoBuffer.wrap(xml.getBytes("UTF-8"));