You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2010/03/08 21:35:18 UTC
svn commit: r920495 - in
/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper:
mina/XmppIoHandlerAdapter.java xmpp/protocol/ResponseWriter.java
xmpp/server/AbstractSessionContext.java xmpp/server/SessionContext.java
Author: berndf
Date: Mon Mar 8 20:35:18 2010
New Revision: 920495
URL: http://svn.apache.org/viewvc?rev=920495&view=rev
Log:
VYSPER-185: introduce a parameter revealing the cause for calling SessionContext.endSession() as a first step towards doing the right thing on session termination
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java?rev=920495&r1=920494&r2=920495&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java Mon Mar 8 20:35:18 2010
@@ -106,7 +106,7 @@
String sessionId = "UNKNOWN";
if(sessionContext != null) {
sessionId = sessionContext.getSessionId();
- sessionContext.endSession();
+ sessionContext.endSession(SessionContext.SessionTerminationCause.CONNECTION_ABORT);
}
logger.info("session {} has been closed", sessionId);
}
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java?rev=920495&r1=920494&r2=920495&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java Mon Mar 8 20:35:18 2010
@@ -123,7 +123,7 @@
public static void writeErrorAndClose(SessionContext sessionContext, Stanza errorStanza) {
writeResponse(sessionContext, errorStanza);
- sessionContext.endSession();
+ sessionContext.endSession(SessionContext.SessionTerminationCause.STREAM_ERROR);
}
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java?rev=920495&r1=920494&r2=920495&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java Mon Mar 8 20:35:18 2010
@@ -107,7 +107,7 @@
xmlLang = languageCode;
}
- public void endSession() {
+ public void endSession(SessionTerminationCause terminationCause) {
StanzaWriter stanzaWriter = getResponseWriter();
stanzaWriter.close();
sessionStateHolder.setState(SessionState.CLOSED); // no more traffic going through
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java?rev=920495&r1=920494&r2=920495&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java Mon Mar 8 20:35:18 2010
@@ -34,6 +34,26 @@
static final String SESSION_ATTRIBUTE_MESSAGE_STANZA_NO_RECEIVE = "stanza.message.no_receive";
static final String SESSION_ATTRIBUTE_PRESENCE_STANZA_NO_RECEIVE = "stanza.presence.no_receive";
+ public enum SessionTerminationCause {
+ /**
+ * underlying connection is broken
+ */
+ CONNECTION_ABORT,
+ /**
+ * the client regularily ended the session (sending </stream:stream>)
+ */
+ CLIENT_BYEBYE,
+ /**
+ * the server is in progress of shutting down
+ */
+ SERVER_SHUTDOWN,
+ /**
+ * the server signalled a stream error to the client and subsequently needs
+ * to close the session down
+ */
+ STREAM_ERROR,
+ }
+
/**
* Gets the {@link ServerRuntimeContext}.
*
@@ -110,8 +130,9 @@
/**
* Ends this session and the underlying TCP connection.
+ * @param give the logical cause for the session's end
*/
- void endSession();
+ void endSession(SessionTerminationCause terminationCause);
/**
* Gets the JID of the server this session is associated with.