package com.owera.xaps.tr069; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.w3c.dom.Document; import com.owera.common.log.Context; import com.owera.xaps.base.BaseCache; import com.owera.xaps.base.BaseCacheException; import com.owera.xaps.base.Log; import com.owera.xaps.tr069.exception.TR069DatabaseException; import com.owera.xaps.tr069.xml.TR069TransactionID; public class HTTPReqResData { private HTTPReqData request; private HTTPResData response; private HttpServletRequest req; private HttpServletResponse res; private Throwable throwable; private TR069TransactionID TR069TransactionID; private SessionData sessionData; private Document doc; public HTTPReqResData(HttpServletRequest req, HttpServletResponse res) throws TR069DatabaseException { this.req = req; this.res = res; this.request = new HTTPReqData(); this.response = new HTTPResData(); String sessionId = req.getSession().getId(); try { sessionData = (SessionData) BaseCache.getSessionData(sessionId); } catch (BaseCacheException tr069Ex) { Context.remove(Context.X); HttpSession session = req.getSession(); Log.debug(HTTPReqResData.class, "Sessionid " + sessionId + " did not return a SessionData object from cache, must create a new SessionData object"); Log.debug(HTTPReqResData.class, "Sessionid " + session.getId() + " created: " + session.getCreationTime() + ", lastAccess:" + session.getLastAccessedTime() + ", mxInactiveInterval:" + session.getMaxInactiveInterval()); sessionData = new SessionData(sessionId); BaseCache.putSessionData(sessionId, sessionData); } if (sessionData.getStartupTmsForSession() == null) sessionData.setStartupTmsForSession(System.currentTimeMillis()); if (sessionData.getUnitId() != null) Context.put(Context.X, sessionData.getUnitId(), BaseCache.SESSIONDATA_CACHE_TIMEOUT); Log.debug(HTTPReqResData.class, "Adding a HTTPReqResData object to the list"); sessionData.getReqResList().add(this); } public HTTPReqData getRequest() { return request; } public HTTPResData getResponse() { return response; } public Throwable getThrowable() { return throwable; } public void setThrowable(Throwable throwable) { this.throwable = throwable; } public TR069TransactionID getTR069TransactionID() { return TR069TransactionID; } public void setTR069TransactionID(TR069TransactionID transactionID) { TR069TransactionID = transactionID; } public HttpServletRequest getReq() { return req; } public HttpServletResponse getRes() { return res; } public SessionData getSessionData() { return sessionData; } public Document getDoc() { return doc; } public void setDoc(Document doc) { this.doc = doc; } }