[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