[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mina-commits
Subject:    svn commit: r1053605 - in /mina/vysper/branches/s2s/server/core/src:
From:       ngn () apache ! org
Date:       2010-12-29 10:38:23
Message-ID: 20101229103823.4C024238890A () eris ! apache ! org
[Download RAW message or body]

Author: ngn
Date: Wed Dec 29 10:38:22 2010
New Revision: 1053605

URL: http://svn.apache.org/viewvc?rev=1053605&view=rev
Log:
Close down connectors and session better
Remove my personal cruft from test runner

Modified:
    mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
  mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
  mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
  mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnector.java
  mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java
  mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java


Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/o \
rg/apache/vysper/mina/MinaBackedSessionContext.java?rev=1053605&r1=1053604&r2=1053605&view=diff
 ==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java \
Wed Dec 29 10:38:22 2010 @@ -19,6 +19,8 @@
  */
 package org.apache.vysper.mina;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.mina.core.future.CloseFuture;
 import org.apache.mina.core.future.IoFuture;
 import org.apache.mina.core.future.IoFutureListener;
@@ -93,7 +95,15 @@ public class MinaBackedSessionContext ex
     public void close() {
         logger.info("session will be closed now");
         closeFuture.setClosed();
-        minaSession.close(false);
+        try {
+            // allow some time to flush before closibng
+            if(!minaSession.close(false).await(5000, TimeUnit.MILLISECONDS)) {
+                // no really close if necessary
+                minaSession.close(true);
+            }
+        } catch (InterruptedException e) {
+            // ignore
+        }
         logger.info("session closed");
     }
 

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/o \
rg/apache/vysper/mina/TCPEndpoint.java?rev=1053605&r1=1053604&r2=1053605&view=diff \
                ==============================================================================
                
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java \
Wed Dec 29 10:38:22 2010 @@ -77,5 +77,6 @@ public class TCPEndpoint implements Endp
 
     public void stop() {
         acceptor.unbind();
+        acceptor.dispose();
     }
 }

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/o \
rg/apache/vysper/xmpp/server/XMPPServer.java?rev=1053605&r1=1053604&r2=1053605&view=diff
 ==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java \
Wed Dec 29 10:38:22 2010 @@ -71,6 +71,7 @@ public class XMPPServer {
     private String tlsCertificatePassword;
 
     private final List<Endpoint> endpoints = new ArrayList<Endpoint>();
+    
 
     public XMPPServer(String domain) {
         this.serverDomain = domain;
@@ -151,6 +152,8 @@ public class XMPPServer {
         for (Endpoint endpoint : endpoints) {
             endpoint.stop();
         }
+        
+        serverRuntimeContext.getServerConnectorRegistry().close();
     }
 
     public void addModule(Module module) {

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnector.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/o \
rg/apache/vysper/xmpp/server/s2s/XMPPServerConnector.java?rev=1053605&r1=1053604&r2=1053605&view=diff
 ==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnector.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnector.java \
Wed Dec 29 10:38:22 2010 @@ -45,7 +45,7 @@ public class XMPPServerConnector impleme
     
     private boolean closed = false;
     
-    private Timer pingTimer = new Timer();
+    private Timer pingTimer = new Timer("pingtimer", true);
     
     private class PingTask extends TimerTask {
         public void run() {
@@ -66,7 +66,7 @@ public class XMPPServerConnector impleme
         connector.setFilterChainBuilder(filterChainBuilder);
     }
 
-    public void start() {
+    public synchronized void start() {
         LOG.info("Starting XMPP server connector to {}", otherServer);
         final CountDownLatch latch = new CountDownLatch(1);
         
@@ -121,7 +121,7 @@ public class XMPPServerConnector impleme
             public void sessionClosed(IoSession session) throws Exception {
                 // Socket was closed, make sure we close the connector
                 LOG.debug("XMPP server connector socket closed, closing connector");
-                close();
+                //close();
             }
 
             @Override
@@ -158,10 +158,15 @@ public class XMPPServerConnector impleme
     }
 
     public void close() {
-        LOG.info("XMPP server connector to {} closed", otherServer);        
-        connector.dispose();
-        pingTimer.cancel();
-        closed = true;
+        if(!closed) {
+            LOG.info("XMPP server connector to {} closing", otherServer);
+            sessionContext.close();
+            
+            connector.dispose();
+            pingTimer.cancel();
+            closed = true;
+            LOG.info("XMPP server connector to {} closed", otherServer);
+        }
     }
 
     public void pong() {

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/o \
rg/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java?rev=1053605&r1=1053604&r2=1053605&view=diff
 ==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java \
Wed Dec 29 10:38:22 2010 @@ -30,4 +30,10 @@ public class XMPPServerConnectorRegistry
         
         return connector;
     }
+
+    public void close() {
+        for(XMPPServerConnector connector : connectors.values()) {
+            connector.close();
+        }
+    }
 }

Modified: mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java
                
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/test/java/o \
rg/apache/vysper/xmpp/server/s2s/Server2Server.java?rev=1053605&r1=1053604&r2=1053605&view=diff
 ==============================================================================
--- mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java \
                (original)
+++ mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java \
Wed Dec 29 10:38:22 2010 @@ -7,21 +7,33 @@ import org.apache.vysper.storage.inmemor
 import org.apache.vysper.xmpp.addressing.Entity;
 import org.apache.vysper.xmpp.addressing.EntityImpl;
 import org.apache.vysper.xmpp.authorization.AccountManagement;
-import org.apache.vysper.xmpp.modules.extension.xep0119_xmppping.XmppPingListener;
-import org.apache.vysper.xmpp.modules.extension.xep0119_xmppping.XmppPingModule;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
 import org.apache.vysper.xmpp.server.ServerRuntimeContext;
 import org.apache.vysper.xmpp.server.XMPPServer;
+import org.apache.vysper.xmpp.stanza.Stanza;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
 
 
 public class Server2Server {
 
     // TODO temporarily uses hard coded servers, change for your own tests
-    private static Entity localServer = \
                EntityImpl.parseUnchecked("protocol7.dyndns.org");
-    private static Entity localUser = \
                EntityImpl.parseUnchecked("niklas@protocol7.dyndns.org");
-    private static Entity remoteServer = EntityImpl.parseUnchecked("jabber.org");
-    private static Entity remoteUser = \
EntityImpl.parseUnchecked("niklas@protocol7.com");  
     public static void main(String[] args) throws Exception {
+        Entity localServer = EntityImpl.parseUnchecked(args[0]);
+        Entity localUser = EntityImpl.parseUnchecked(args[1]);
+        Entity remoteServer = EntityImpl.parseUnchecked(args[2]);
+        Entity remoteUser = EntityImpl.parseUnchecked(args[3]);
+
+        String keystorePath;
+        String keystorePassword;
+        if(args.length > 4) {
+            keystorePath = args[4];
+            keystorePassword = args[5];
+        } else {
+            keystorePath = "src/main/config/bogus_mina_tls.cert";
+            keystorePassword = "boguspw";            
+        }
+            
         
         XMPPServer server = new XMPPServer(localServer.getDomain());
 
@@ -40,11 +52,14 @@ public class Server2Server {
         
         // C2S endpoint
         server.addEndpoint(new TCPEndpoint());
+        
         server.setStorageProviderRegistry(providerRegistry);
-        server.setTLSCertificateInfo(new \
File("src/main/config/bogus_mina_tls.cert"), "boguspw"); +        \
server.setTLSCertificateInfo(new File(keystorePath), keystorePassword);  
         server.start();
-        server.addModule(new XmppPingModule());
+        
+        // enable server connection to use ping
+        //server.addModule(new XmppPingModule());
 
         ServerRuntimeContext serverRuntimeContext = \
server.getServerRuntimeContext();  
@@ -54,20 +69,19 @@ public class Server2Server {
         
         XMPPServerConnector connector = registry.getConnector(remoteServer);
         
-//        Stanza stanza = new StanzaBuilder("message", NamespaceURIs.JABBER_SERVER)
-//            .addAttribute("from", localUser.getFullQualifiedName())
-//            .addAttribute("to", remoteUser.getFullQualifiedName())
-//            .startInnerElement("body", NamespaceURIs.JABBER_SERVER)
-//            .addText("Hello world")
-//            .endInnerElement()
-//            .build();
+        Stanza stanza = new StanzaBuilder("message", NamespaceURIs.JABBER_SERVER)
+            .addAttribute("from", localUser.getFullQualifiedName())
+            .addAttribute("to", remoteUser.getFullQualifiedName())
+            .startInnerElement("body", NamespaceURIs.JABBER_SERVER)
+            .addText("Hello world")
+            .endInnerElement()
+            .build();
             
-//        connector.write(stanza);
+        connector.write(stanza);
         
         
-        Thread.sleep(200000);
+        Thread.sleep(5000);
         
-        connector.close();
         server.stop();
     }
     


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic