Revision: 19662
Author: [email protected]
Date: Tue Aug 9 03:24:25 2011
Log: Update Issue 2794
Non regression HA test reproducing the issue added to the HA testsuite
http://code.google.com/p/mobicents/source/detail?r=19662
Modified:
/trunk/servers/sip-servlets/sip-servlets-examples/simple-sip-servlet-distributable/src/main/java/org/mobicents/servlet/sip/example/DistributableSimpleSipServlet.java
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/auto-clustering-failover-test.sh
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/clustering-failover-test.sh
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-examples/simple-sip-servlet-distributable/src/main/java/org/mobicents/servlet/sip/example/DistributableSimpleSipServlet.java
Thu Aug 4 05:56:39 2011
+++
/trunk/servers/sip-servlets/sip-servlets-examples/simple-sip-servlet-distributable/src/main/java/org/mobicents/servlet/sip/example/DistributableSimpleSipServlet.java
Tue Aug 9 03:24:25 2011
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.util.Iterator;
+import javax.annotation.Resource;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.sip.ServletTimer;
@@ -35,10 +36,10 @@
import javax.servlet.sip.SipServletRequest;
import javax.servlet.sip.SipServletResponse;
import javax.servlet.sip.SipSession;
+import javax.servlet.sip.SipSession.State;
import javax.servlet.sip.SipURI;
import javax.servlet.sip.TimerListener;
import javax.servlet.sip.TimerService;
-import javax.servlet.sip.SipSession.State;
import org.apache.log4j.Logger;
@@ -62,6 +63,7 @@
private static final String CALLEE_SEND_BYE = "yousendbye";
private static final String SAS_TIMER_SEND_BYE = "sastimersendbye";
private static final String CANCEL_SERVLET_TIMER = "cancelservlettimer";
+ private static final String INJECTED_TIMER = "injectedtimer";
private static final String NO_ATTRIBUTES = "NoAttributes";
private static final String REMOVE_ATTRIBUTES = "RemoveAttributes";
@@ -71,6 +73,7 @@
private int byeDelay = DEFAULT_BYE_DELAY;
ServletTimer servletTimer = null;
+ @Resource TimerService injectedTimerService;
/** Creates a new instance of SimpleProxyServlet */
public DistributableSimpleSipServlet() {
@@ -132,12 +135,34 @@
sipServletResponse =
request.createResponse(SipServletResponse.SC_OK);
sipServletResponse.send();
if((((SipURI)request.getTo().getURI()).getUser()).contains(CALLEE_SEND_BYE))
{
- TimerService timer = (TimerService)
getServletContext().getAttribute(TIMER_SERVICE);
+ TimerService timer = null;
+
if(!(((SipURI)request.getFrom().getURI()).getUser()).contains(INJECTED_TIMER))
{
+ if(logger.isInfoEnabled()) {
+ logger.info("Distributable Simple Servlet:
using injected timer");
+ }
+ timer = injectedTimerService;
+ } else {
+ if(logger.isInfoEnabled()) {
+ logger.info("Distributable Simple Servlet: using servlet context
timer");
+ }
+ timer = (TimerService)
getServletContext().getAttribute(TIMER_SERVICE);
+ }
timer.createTimer(request.getApplicationSession(), byeDelay, false,
request.getSession().getId());
} else if
((((SipURI)request.getTo().getURI()).getUser()).contains(SAS_TIMER_SEND_BYE))
{
request.getSession().getApplicationSession().setExpires(1);
} else if
((((SipURI)request.getTo().getURI()).getUser()).contains(CANCEL_SERVLET_TIMER))
{
- TimerService timer = (TimerService)
getServletContext().getAttribute(TIMER_SERVICE);
+ TimerService timer = null;
+
if(!(((SipURI)request.getFrom().getURI()).getUser()).contains(INJECTED_TIMER))
{
+ if(logger.isInfoEnabled()) {
+ logger.info("Distributable Simple Servlet:
using injected timer");
+ }
+ timer = injectedTimerService;
+ } else {
+ if(logger.isInfoEnabled()) {
+ logger.info("Distributable Simple Servlet: using servlet context
timer");
+ }
+ timer = (TimerService)
getServletContext().getAttribute(TIMER_SERVICE);
+ }
servletTimer = timer.createTimer(request.getApplicationSession(),
byeDelay, false, request.getSession().getId());
}
}
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/auto-clustering-failover-test.sh
Thu Aug 4 05:56:39 2011
+++
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/auto-clustering-failover-test.sh
Tue Aug 9 03:24:25 2011
@@ -242,6 +242,13 @@
./auto-run-test.sh uas-sas-timer result.txt $CALLS
+#The test killed server 1, so we start it again
+./auto-start-jboss-server.sh $config1 config1.pid 0 uas-injected-timer
+
+sleep $HALFSTARTSLEEP
+
+./auto-run-test.sh uas-injected-timer result.txt $CALLS
+
#End JBoss5-specific
#fi
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/clustering-failover-test.sh
Thu Aug 4 05:56:39 2011
+++
/trunk/servers/sip-servlets/sip-servlets-test-suite/sipp-scenarios/clustering/clustering-failover-test.sh
Tue Aug 9 03:24:25 2011
@@ -158,6 +158,11 @@
echo "Distributed example used is uas timer";
./sipp $MSS_IP:5080 -s yousendbye -sf uas/clustering-uac-timer.xml
-trace_err -i $SIPP_IP -p 5050 -r $RATE -m $CALLS -rsa $LB_IP:5060
-trace_msg -nd -timeout $ACTIVE_TIMEOUT -timeout_error
;;
+ uas-injected-timer)
+ rm ./uas/*.log
+ echo "Distributed example used is uas injected timer";
+ ./sipp $MSS_IP:5080 -s yousendbye-injectedtimer -sf
uas/clustering-uac-timer.xml -trace_err -i $SIPP_IP -p 5050 -r $RATE -m
$CALLS -rsa $LB_IP:5060 -trace_msg -nd -timeout $ACTIVE_TIMEOUT
-timeout_error
+ ;;
uas-cancel-timer)
rm ./uas/*.log
echo "Distributed example used is uas cancel timer";