[Yanel-commits] rev 57771 - public/yanel/trunk/src/contributions/resources/sessionmanager/src/java/org/wyona/yanel/impl/resources/sessionmanager
michi at wyona.com
michi at wyona.com
Mon Apr 11 10:03:16 CEST 2011
Author: michi
Date: 2011-04-11 10:03:16 +0200 (Mon, 11 Apr 2011)
New Revision: 57771
Modified:
public/yanel/trunk/src/contributions/resources/sessionmanager/src/java/org/wyona/yanel/impl/resources/sessionmanager/SessionManagerResource.java
Log:
string builder replaced by DOM
Modified: public/yanel/trunk/src/contributions/resources/sessionmanager/src/java/org/wyona/yanel/impl/resources/sessionmanager/SessionManagerResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/sessionmanager/src/java/org/wyona/yanel/impl/resources/sessionmanager/SessionManagerResource.java 2011-04-11 07:31:32 UTC (rev 57770)
+++ public/yanel/trunk/src/contributions/resources/sessionmanager/src/java/org/wyona/yanel/impl/resources/sessionmanager/SessionManagerResource.java 2011-04-11 08:03:16 UTC (rev 57771)
@@ -14,6 +14,9 @@
import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
/**
* Session manager resource
*/
@@ -21,40 +24,68 @@
private static Logger log = Logger.getLogger(SessionManagerResource.class);
+ private String NAMESPACE = "http://www.wyona.org/yanel/1.0";
+
/**
- *
+ * @see org.wyona.yanel.impl.resources.BasicXMLResource#getContentXML(String)
*/
- protected InputStream getContentXML(String viewId) {
+ @Override
+ protected InputStream getContentXML(String viewId) throws Exception {
if (log.isDebugEnabled()) {
log.debug("requested viewId: " + viewId);
}
- StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
- sb.append("<session-manager xmlns=\"http://www.wyona.org/yanel/1.0\">");
+
+ Document doc = org.wyona.commons.xml.XMLHelper.createDocument(NAMESPACE, "session-manager");
+ Element rootEl = doc.getDocumentElement();
+
+ //StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
+ //sb.append("<session-manager xmlns=\"http://www.wyona.org/yanel/1.0\">");
+
javax.servlet.http.HttpSession[] activeSessions = org.wyona.yanel.servlet.SessionCounter.getActiveSessions();
- sb.append("<number-of-sessions>" + activeSessions.length + "</number-of-sessions>");
+ Element numberOfSessionsEl = doc.createElementNS(NAMESPACE, "number-of-sessions");
+ numberOfSessionsEl.appendChild(doc.createTextNode("" + activeSessions.length));
+ rootEl.appendChild(numberOfSessionsEl);
+ //sb.append("<number-of-sessions>" + activeSessions.length + "</number-of-sessions>");
java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:SSZ");
for (int i = 0; i < activeSessions.length; i++) {
try {
- sb.append("<session id=\"" + activeSessions[i].getId() + "\" creation-time=\"" + dateFormat.format(new Date(activeSessions[i].getCreationTime())) + "\" last-accessed-time=\"" + dateFormat.format(new Date(activeSessions[i].getLastAccessedTime())) + "\">");
+ Element sessionEl = doc.createElementNS(NAMESPACE, "session");
+ sessionEl.setAttribute("id", activeSessions[i].getId());
+ sessionEl.setAttribute("creation-time", dateFormat.format(new Date(activeSessions[i].getCreationTime())));
+ sessionEl.setAttribute("last-accessed-time", dateFormat.format(new Date(activeSessions[i].getLastAccessedTime())));
+ //sb.append("<session id=\"" + activeSessions[i].getId() + "\" creation-time=\"" + dateFormat.format(new Date(activeSessions[i].getCreationTime())) + "\" last-accessed-time=\"" + dateFormat.format(new Date(activeSessions[i].getLastAccessedTime())) + "\">");
+ rootEl.appendChild(sessionEl);
// TODO ...
IdentityMap identityMap = (IdentityMap) activeSessions[i].getAttribute(org.wyona.yanel.servlet.YanelServlet.IDENTITY_MAP_KEY);
if (identityMap != null) {
- sb.append("<identities>" + identityMap.toString() + "</identities>");
+ Element identitiesEl = doc.createElementNS(NAMESPACE, "identities");
+ identitiesEl.appendChild(doc.createTextNode(identityMap.toString()));
+ sessionEl.appendChild(identitiesEl);
+ //sb.append("<identities>" + identityMap.toString() + "</identities>");
} else {
- sb.append("<no-identity-yet/>");
+ sessionEl.appendChild(doc.createElementNS(NAMESPACE, "no-identity-yet"));
+ //sb.append("<no-identity-yet/>");
}
String lastAccessedURL = (String) activeSessions[i].getAttribute(YanelServlet.YANEL_LAST_ACCESS_ATTR);
if(lastAccessedURL != null) {
- sb.append("<last-accessed-url>" + lastAccessedURL + "</last-accessed-url>");
+ Element lastAccessedURLEl = doc.createElementNS(NAMESPACE, "last-accessed-url");
+ lastAccessedURLEl.appendChild(doc.createTextNode(lastAccessedURL));
+ sessionEl.appendChild(lastAccessedURLEl);
+ //sb.append("<last-accessed-url>" + lastAccessedURL + "</last-accessed-url>");
}
- sb.append("</session>");
+ //sb.append("</session>");
} catch (Exception e) {
- sb.append("<exception session-id=\"" + activeSessions[i].getId() + "\">" + e.getMessage() + "</exception>");
+ Element exceptionEl = doc.createElementNS(NAMESPACE, "exception");
+ exceptionEl.setAttribute("session-id", activeSessions[i].getId());
+ exceptionEl.appendChild(doc.createTextNode(e.getMessage()));
+ rootEl.appendChild(exceptionEl);
+ //sb.append("<exception session-id=\"" + activeSessions[i].getId() + "\">" + e.getMessage() + "</exception>");
}
}
- sb.append("</session-manager>");
- return new ByteArrayInputStream(sb.toString().getBytes());
+ //sb.append("</session-manager>");
+ //return new ByteArrayInputStream(sb.toString().getBytes());
+ return org.wyona.commons.xml.XMLHelper.getInputStream(doc, false, false, null);
}
}
More information about the Yanel-commits
mailing list