[sipana commit] r201 - Code organization.

0 views
Skip to first unread message

codesite...@google.com

unread,
May 17, 2009, 11:00:46 PM5/17/09
to sipana...@googlegroups.com
Author: marcoshack
Date: Sun May 17 19:43:12 2009
New Revision: 201

Added:

trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionFindParams.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPPerformanceMetricsWSXML.java
Modified:

trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManager.java

trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManagerBean.java

trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManager.java

trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManagerBean.java

trunk/sipana-server-ejb/src/main/java/org/sipana/server/sip/SIPSessionMDB.java

trunk/sipana-server-war/src/main/java/org/sipana/server/web/sip/session/SIPSessionController.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPMessageWSImpl.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPScenarioWSImpl.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPSessionWSImpl.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPMessageWSXML.java

trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPSessionWSXML.java

trunk/sipana-sipscenario/src/main/java/org/sipana/sip/scenario/SIPScenario.java

Log:
Code organization.

Modified:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManager.java
==============================================================================
---
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManager.java
(original)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManager.java
Sun May 17 19:43:12 2009
@@ -25,10 +25,11 @@
*/
@Local
public interface SIPMessageManager {
- public List<SIPMessage> getMessageListBySessionId(Long sessionId);
- public List<SIPMessage> getMessageListBySessionId(List<Long>
sessionIdList);
- public List<SIPMessage> getMessageListByCallID(String callId);
- public List<SIPMessage> getMessageListByCallID(List<String>
callIdList);
+ public SIPMessage find(long id);
+ public List<SIPMessage> findBySessionID(Long sessionId);
+ public List<SIPMessage> findBySessionID(List<Long> sessionIdList);
+ public List<SIPMessage> findByCallID(String callId);
+ public List<SIPMessage> findByCallID(List<String> callIdList);
public void save(SIPMessage message);
public void save(List<SIPMessage> messageList);
}

Modified:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManagerBean.java
==============================================================================
---
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManagerBean.java
(original)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPMessageManagerBean.java
Sun May 17 19:43:12 2009
@@ -30,13 +30,17 @@
@Stateless
public class SIPMessageManagerBean extends AbstractManagerBean implements
SIPMessageManager {

- public List<SIPMessage> getMessageListBySessionId(Long sessionId) {
+ public SIPMessage find(long id) {
+ return manager.find(SIPMessage.class, id);
+ }
+
+ public List<SIPMessage> findBySessionID(Long sessionId) {
List<Long> sessionIdList = new ArrayList<Long>();
sessionIdList.add(sessionId);
- return getMessageListBySessionId(sessionIdList);
+ return findBySessionID(sessionIdList);
}

- public List<SIPMessage> getMessageListBySessionId(List<Long>
sessionIdList) {
+ public List<SIPMessage> findBySessionID(List<Long> sessionIdList) {
StringBuilder sbQuery = new StringBuilder("SELECT m FROM
SIPMessage m INNER JOIN m.sipSession AS s WHERE s.id IN (");
sbQuery.append("'").append(StringUtils.join(sessionIdList, "','"));
sbQuery.append("') ORDER BY m.time");
@@ -45,13 +49,13 @@
return q.getResultList();
}

- public List<SIPMessage> getMessageListByCallID(String callId) {
+ public List<SIPMessage> findByCallID(String callId) {
ArrayList<String> callIdList = new ArrayList<String>();
callIdList.add(callId);
- return getMessageListByCallID(callIdList);
+ return findByCallID(callIdList);
}

- public List<SIPMessage> getMessageListByCallID(List<String>
callIdList) {
+ public List<SIPMessage> findByCallID(List<String> callIdList) {
StringBuilder sbQuery = new StringBuilder("SELECT m FROM
SIPMessage m WHERE m.callId IN (");

sbQuery.append("'").append(StringUtils.join(callIdList, "','")).append("')
ORDER BY m.time");


Added:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionFindParams.java
==============================================================================
--- (empty file)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionFindParams.java
Sun May 17 19:43:12 2009
@@ -0,0 +1,107 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.sipana.server.dao;
+
+import java.util.Date;
+import java.util.List;
+import org.sipana.protocol.sip.SIPSessionState;
+
+/**
+ *
+ * @author mhack
+ */
+public class SIPSessionFindParams {
+ private Date startDate;
+ private Date endDate;
+ private String requestMethod;
+ private String callID;
+ private Integer responseCode;
+ private String fromUser;
+ private String toUser;
+ private List<String> srcAddressList;
+ private List<String> dstAddressList;
+ private SIPSessionState state;
+
+ public String getCallID() {
+ return callID;
+ }
+
+ public void setCallID(String callID) {
+ this.callID = callID;
+ }
+
+ public List<String> getDstAddressList() {
+ return dstAddressList;
+ }
+
+ public void setDstAddressList(List<String> dstAddressList) {
+ this.dstAddressList = dstAddressList;
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
+ }
+
+ public String getFromUser() {
+ return fromUser;
+ }
+
+ public void setFromUser(String fromUser) {
+ this.fromUser = fromUser;
+ }
+
+ public String getRequestMethod() {
+ return requestMethod;
+ }
+
+ public void setRequestMethod(String requestMethod) {
+ this.requestMethod = requestMethod;
+ }
+
+ public Integer getResponseCode() {
+ return responseCode;
+ }
+
+ public void setResponseCode(Integer responseCode) {
+ this.responseCode = responseCode;
+ }
+
+ public List<String> getSrcAddressList() {
+ return srcAddressList;
+ }
+
+ public void setSrcAddressList(List<String> srcAddressList) {
+ this.srcAddressList = srcAddressList;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
+ }
+
+ public SIPSessionState getState() {
+ return state;
+ }
+
+ public void setState(SIPSessionState state) {
+ this.state = state;
+ }
+
+ public String getToUser() {
+ return toUser;
+ }
+
+ public void setToUser(String toUser) {
+ this.toUser = toUser;
+ }
+}

Modified:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManager.java
==============================================================================
---
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManager.java
(original)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManager.java
Sun May 17 19:43:12 2009
@@ -22,10 +22,11 @@

@Local
public interface SIPSessionManager {
- public void createSIPSession(SIPSession session);
- public void saveSIPSession(SIPSession session);
+ public void save(SIPSession session);
public long getSIPSessionCount();
- public SIPSession getSIPSession(long id);
- public SIPSession getSIPSessionByCallID(String callID);
- public List<SIPSession> getSIPSessions(Long startTime, Long endTime,
String method, String fromUser, String toUser, String callId, List<String>
ipAddrList);
+ public SIPSession find(long id);
+ @Deprecated
+ public List<SIPSession> find(Long startTime, Long endTime, String
method, String fromUser, String toUser, String callId, List<String>
ipAddrList);
+ public List<SIPSession> find(SIPSessionFindParams params);
+ public SIPSession findByCallID(String callID);
}

Modified:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManagerBean.java
==============================================================================
---
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManagerBean.java
(original)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/dao/SIPSessionManagerBean.java
Sun May 17 19:43:12 2009
@@ -15,7 +15,10 @@
*/
package org.sipana.server.dao;

+import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.List;

import javax.ejb.Stateless;
@@ -26,71 +29,85 @@
import org.sipana.protocol.sip.SIPSession;

@Stateless
-public class SIPSessionManagerBean extends AbstractManagerBean implements
SIPSessionManager
-{
- public void createSIPSession(SIPSession session) {
- manager.persist(session);
- }
+public class SIPSessionManagerBean extends AbstractManagerBean implements
SIPSessionManager {

- public SIPSession getSIPSession(long id) {
+ public SIPSession find(long id) {
return manager.find(SIPSession.class, id);
}
-
- public SIPSession getSIPSessionByCallID(String callID) {
+
+ public SIPSession findByCallID(String callID) {
String strQuery = "SELECT s FROM SIPSession s WHERE s.callId
= :callid";
Query query = manager.createQuery(strQuery);
query.setParameter("callid", callID);
-
+
try {
return (SIPSession) query.getSingleResult();
} catch (NoResultException e) {
return null;
}
}
-
+
public long getSIPSessionCount() {
String strQuery = "select count(*) from SIPSession";
return (Long) createQuery(strQuery).getSingleResult();
}
-
- public List<SIPSession> getSIPSessions(
- Long startTime,
- Long endTime,
- String method,
- String fromUser,
- String toUser,
- String callId,
- List<String> ipAddrList)
- {
+
+ // TODO [mhack] remade find(SIPSessionFindParams) method.
+ public List<SIPSession> find(SIPSessionFindParams params) {
+ List<String> ipAddrList = new ArrayList<String>();
+
+ if (params.getDstAddressList() != null) {
+ ipAddrList.addAll(params.getDstAddressList());
+ }
+ if (params.getSrcAddressList() != null) {
+ ipAddrList.addAll(params.getSrcAddressList());
+ }
+
+ Date startDate = params.getStartDate();
+ Long startTime = startDate != null ? startDate.getTime() : 0L;
+
+ Date endDate = params.getEndDate();
+ Long endTime;
+ if (endDate != null) {
+ endTime = endDate.getTime();
+ } else {
+ endTime = GregorianCalendar.getInstance().getTimeInMillis();
+ }
+
+ String method = params.getRequestMethod();
+ String fromUser = params.getFromUser();
+ String toUser = params.getToUser();
+ String callID = params.getCallID();
+
StringBuilder sbQuery = new StringBuilder("SELECT DISTINCT s FROM
SIPSession s ");

if (ipAddrList != null && ipAddrList.size() > 0) {
- sbQuery.append("INNER JOIN s.messages AS m ");
+ sbQuery.append("INNER JOIN s.messages AS m ");
}
-
+
sbQuery.append("WHERE s.startTime >= :start AND s.endTime
<= :end ");
-
+
if (method != null && !method.equals("")) {
- sbQuery.append("AND s.requestMethod
= '").append(method.toUpperCase()).append("' ");
+ sbQuery.append("AND s.requestMethod
= '").append(method.toUpperCase()).append("' ");
}
-
+
if (fromUser != null && !fromUser.equals("")) {
- sbQuery.append("AND s.fromUser
LIKE '%").append(fromUser).append("%' ");
+ sbQuery.append("AND s.fromUser
LIKE '%").append(fromUser).append("%' ");
}
-
+
if (toUser != null && !toUser.equals("")) {
- sbQuery.append("AND s.toUser
LIKE '%").append(toUser).append("%' ");
+ sbQuery.append("AND s.toUser
LIKE '%").append(toUser).append("%' ");
}
-
- if (callId != null && !callId.equals("")) {
- sbQuery.append("AND s.callId
LIKE '%").append(callId).append("%' ");
+
+ if (callID != null && !callID.equals("")) {
+ sbQuery.append("AND s.callId
LIKE '%").append(callID).append("%' ");
}
-
+
if (ipAddrList != null && ipAddrList.size() > 0) {
String csvList = StringUtils.join(ipAddrList, "','");
String ipAddrInList = new
StringBuilder("'").append(csvList).append("'").toString();
- sbQuery.append("AND (m.srcAddress IN (").append(ipAddrInList);
- sbQuery.append(") OR m.dstAddress IN
(").append(ipAddrInList).append(")) ");
+ sbQuery.append("AND (m.srcAddress IN (").append(ipAddrInList);
+ sbQuery.append(") OR m.dstAddress IN
(").append(ipAddrInList).append(")) ");
}

// If startTime/endTime is null set it to min/max values
@@ -100,17 +117,52 @@
if (endTime == null) {
endTime = Calendar.getInstance().getTimeInMillis();
}
-
+
sbQuery.append("ORDER BY s.startTime DESC");
-
+
Query query = createQuery(sbQuery);
query.setParameter("start", startTime);
query.setParameter("end", endTime);
-
+
return query.getResultList();
}
-
- public void saveSIPSession(SIPSession session) {
- manager.merge(session);
+
+ @Deprecated
+ public List<SIPSession> find(
+ Long startTime,
+ Long endTime,
+ String method,
+ String fromUser,
+ String toUser,
+ String callId,
+ List<String> ipAddrList) {
+ SIPSessionFindParams params = new SIPSessionFindParams();
+
+ Calendar calendar = GregorianCalendar.getInstance();
+ if (startTime != null) {
+ calendar.setTimeInMillis(startTime);
+ params.setStartDate(calendar.getTime());
+ }
+
+ if (endTime != null) {
+ calendar.setTimeInMillis(endTime);
+ params.setEndDate(calendar.getTime());
+ }
+
+ params.setRequestMethod(method);
+ params.setFromUser(fromUser);
+ params.setToUser(toUser);
+ params.setCallID(callId);
+ params.setSrcAddressList(ipAddrList);
+
+ return find(params);
+ }
+
+ public void save(SIPSession session) {
+ if (session.getId() > 0) {
+ manager.merge(session);
+ } else {
+ manager.persist(session);
+ }
}
}

Modified:
trunk/sipana-server-ejb/src/main/java/org/sipana/server/sip/SIPSessionMDB.java
==============================================================================
---
trunk/sipana-server-ejb/src/main/java/org/sipana/server/sip/SIPSessionMDB.java
(original)
+++
trunk/sipana-server-ejb/src/main/java/org/sipana/server/sip/SIPSessionMDB.java
Sun May 17 19:43:12 2009
@@ -104,7 +104,7 @@
logger.debug(sb);
}

- manager.createSIPSession(session);
+ manager.save(session);
}

private void addSIPMessage(SIPMessage message) {
@@ -114,7 +114,7 @@
logger.debug(sbDebug);
}

- SIPSession session =
manager.getSIPSessionByCallID(message.getCallID());
+ SIPSession session = manager.findByCallID(message.getCallID());

if (session != null) {
session.addMessage(message);

Modified:
trunk/sipana-server-war/src/main/java/org/sipana/server/web/sip/session/SIPSessionController.java
==============================================================================
---
trunk/sipana-server-war/src/main/java/org/sipana/server/web/sip/session/SIPSessionController.java
(original)
+++
trunk/sipana-server-war/src/main/java/org/sipana/server/web/sip/session/SIPSessionController.java
Sun May 17 19:43:12 2009
@@ -67,7 +67,7 @@
logger.debug(sbDebug);
}

- List<SIPSession> sipSessions = sipSessionManager.getSIPSessions(
+ List<SIPSession> sipSessions = sipSessionManager.find(
startTime,
endTimeFinal,
requestMethod,

Modified:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPMessageWSImpl.java
==============================================================================
---
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPMessageWSImpl.java
(original)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPMessageWSImpl.java
Sun May 17 19:43:12 2009
@@ -15,7 +15,9 @@
*/
package org.sipana.server.ws.impl;

+import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang.StringUtils;
import org.sipana.protocol.sip.SIPMessage;
import org.sipana.protocol.sip.SIPMessageList;
import org.sipana.server.service.Service;
@@ -32,11 +34,23 @@
private SIPMessageManager sipMessageManager;

public SIPMessageWSImpl() {
- sipMessageManager = (SIPMessageManager)
ServiceLocator.getInstance().getService(Service.SIP_MESSAGE_MANAGER);
+ ServiceLocator sl = ServiceLocator.getInstance();
+ sipMessageManager = (SIPMessageManager)
sl.getService(Service.SIP_MESSAGE_MANAGER);
}

- public SIPMessageList getMessageList(long sessionId) {
- List<SIPMessage> result =
sipMessageManager.getMessageListBySessionId(sessionId);
+ public SIPMessage getMessage(long messageId) {
+ return sipMessageManager.find(messageId);
+ }
+
+ public SIPMessageList getMessageList(String sessionList) {
+ String[] strList = StringUtils.split(sessionList, ",");
+ List<Long> list = new ArrayList<Long>();
+
+ for (String strID : strList) {
+ list.add(Long.parseLong(strID));
+ }
+
+ List<SIPMessage> result = sipMessageManager.findBySessionID(list);
return new SIPMessageList(result);
}


Modified:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPScenarioWSImpl.java
==============================================================================
---
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPScenarioWSImpl.java
(original)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPScenarioWSImpl.java
Sun May 17 19:43:12 2009
@@ -42,7 +42,7 @@

public StreamingOutput getSIPScenario(String strIdList) {
List<Long> idList = createSIPSessionIdList(strIdList);
- List<SIPMessage> messageList =
sipMessageManager.getMessageListBySessionId(idList);
+ List<SIPMessage> messageList =
sipMessageManager.findBySessionID(idList);
return new SIPScenarioStreamingOutput(messageList);
}


Modified:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPSessionWSImpl.java
==============================================================================
---
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPSessionWSImpl.java
(original)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/impl/SIPSessionWSImpl.java
Sun May 17 19:43:12 2009
@@ -42,7 +42,7 @@
public SIPSession getSIPSession(long sessionId) {
logger.debug("Processing getSIPSession");

- SIPSession session = sipSessionManager.getSIPSession(sessionId);
+ SIPSession session = sipSessionManager.find(sessionId);

logger.debug("getSIPSession processed");
return session;
@@ -71,7 +71,7 @@

List<String> ipAddrList = createIpAddrList(strIpAddrList);

- List<SIPSession> result =
sipSessionManager.getSIPSessions(startTime, endTime, method, fromUser,
toUser, callId, ipAddrList);
+ List<SIPSession> result = sipSessionManager.find(startTime,
endTime, method, fromUser, toUser, callId, ipAddrList);

if (logger.isDebugEnabled()) {
StringBuilder sb = new StringBuilder("getSIPSessionList
processed. ");

Modified:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPMessageWSXML.java
==============================================================================
---
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPMessageWSXML.java
(original)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPMessageWSXML.java
Sun May 17 19:43:12 2009
@@ -21,6 +21,7 @@
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
+import org.sipana.protocol.sip.SIPMessage;
import org.sipana.protocol.sip.SIPMessageList;

/**
@@ -31,9 +32,14 @@
public interface SIPMessageWSXML {

@GET
- @Path("/list/{sessionId}")
+ @Path("/{messageId}")
@Produces("application/xml")
- public SIPMessageList getMessageList(@PathParam("sessionId") long
sessionId);
+ public SIPMessage getMessage(@PathParam("messageId") long messageId);
+
+ @GET
+ @Path("/session/{sessionList}")
+ @Produces("application/xml")
+ public SIPMessageList getMessageList(@PathParam("sessionList") String
sessionList);


@PUT

Added:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPPerformanceMetricsWSXML.java
==============================================================================
--- (empty file)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPPerformanceMetricsWSXML.java
Sun May 17 19:43:12 2009
@@ -0,0 +1,28 @@
+/**
+ * This file is part of Sipana project <http://sipana.org/>
+ *
+ * Sipana is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * Sipana is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.sipana.server.ws.xml;
+
+import javax.ws.rs.Path;
+
+/**
+ *
+ * @author mhack
+ */
+
+@Path("/sipmetrics")
+public interface SIPPerformanceMetricsWSXML {
+
+}

Modified:
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPSessionWSXML.java
==============================================================================
---
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPSessionWSXML.java
(original)
+++
trunk/sipana-server-ws/src/main/java/org/sipana/server/ws/xml/SIPSessionWSXML.java
Sun May 17 19:43:12 2009
@@ -15,7 +15,6 @@
*/
package org.sipana.server.ws.xml;

-import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;

Modified:
trunk/sipana-sipscenario/src/main/java/org/sipana/sip/scenario/SIPScenario.java
==============================================================================
---
trunk/sipana-sipscenario/src/main/java/org/sipana/sip/scenario/SIPScenario.java
(original)
+++
trunk/sipana-sipscenario/src/main/java/org/sipana/sip/scenario/SIPScenario.java
Sun May 17 19:43:12 2009
@@ -65,6 +65,7 @@
}

public SIPScenario(List<SIPMessage> messages, String format) {
+ this.messages = messages;
hostList = createHostListWithWeightPosition(messages);
imageFormat = format;
sessionColors = new HashMap<String, Color>();

Reply all
Reply to author
Forward
0 new messages