/**
* LibreSource
* Copyright (C) 2004-2008 Artenum SARL / INRIA
* http://www.libresource.org - contact@artenum.com
*
* This file is part of the LibreSource software,
* which can be used and distributed under license conditions.
* The license conditions are provided in the LICENSE.TXT file
* at the root path of the packaging that enclose this file.
* More information can be found at
* - http://dev.libresource.org/home/license
*
* Initial authors :
*
* Guillaume Bort / INRIA
* Francois Charoy / Universite Nancy 2
* Julien Forest / Artenum
* Claude Godart / Universite Henry Poincare
* Florent Jouille / INRIA
* Sebastien Jourdain / INRIA / Artenum
* Yves Lerumeur / Artenum
* Pascal Molli / Universite Henry Poincare
* Gerald Oster / INRIA
* Mariarosa Penzi / Artenum
* Gerard Sookahet / Artenum
* Raphael Tani / INRIA
*
* Contributors :
*
* Stephane Bagnier / Artenum
* Amadou Dia / Artenum-IUP Blois
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
package org.libresource.web.servlets;
import org.libresource.Libresource;
import org.libresource.core.CoreConstants;
import org.libresource.core.interfaces.LibresourceCoreService;
import org.libresource.kernel.KernelConstants;
import org.libresource.kernel.interfaces.KernelService;
import org.libresource.membership.MembershipConstants;
import org.libresource.membership.interfaces.MembershipService;
import org.libresource.web.config.Config;
import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServerInfos extends BaseServlet {
protected void process(HttpServletRequest request, HttpServletResponse response)
throws Exception {
KernelService kernelService = (KernelService) Libresource.getService(KernelConstants.SERVICE);
LibresourceCoreService libresourceCoreService = (LibresourceCoreService) Libresource.getService(CoreConstants.SERVICE);
MembershipService membershipService = (MembershipService) Libresource.getService(MembershipConstants.SERVICE);
// ls infos
request.setAttribute("lsVersion", kernelService.getLibresourceVersion());
// projects
request.setAttribute("nbProjects", String.valueOf(libresourceCoreService.listAllProjects().length));
request.setAttribute("nbPublicProjects", String.valueOf(libresourceCoreService.listPublicProjects().length));
// users
request.setAttribute("nbUsers", String.valueOf(membershipService.listUsers().size()));
// sessions
int connectedUsers = 0;
Vector users = new Vector();
int guestUsers = 0;
String managerName = "jonas:type=Manager,path=/,host=localhost";
ObjectName on = new ObjectName(managerName);
List mbeanServers = MBeanServerFactory.findMBeanServer(null);
if ((mbeanServers != null) && (mbeanServers.size() > 0)) {
MBeanServer mbeanServer = (MBeanServer) mbeanServers.get(0);
String sessions = (String) mbeanServer.invoke(on, "listSessionIds", null, null);
StringTokenizer st = new StringTokenizer(sessions, " ");
while (st.hasMoreTokens()) {
String token = st.nextToken();
Object[] params = { token, "security_username" };
String[] sign = { "java.lang.String", "java.lang.String" };
try {
String user = (String) mbeanServer.invoke(on, "getSessionAttribute", params, sign);
if (user != null) {
if (!users.contains(user)) {
connectedUsers++;
users.add(user);
}
} else {
guestUsers++;
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
request.setAttribute("connectedUsers", new Integer(connectedUsers));
request.setAttribute("connectedUsersList", users);
request.setAttribute("guestUsers", new Integer(guestUsers));
// technicals infos
// application server (ejb is made in jsp code)
request.setAttribute("webServerInfos", Config.getInstance(null).getServletContext().getServerInfo());
// os infos
Vector infos = new Vector();
Object[] property = new Object[2];
property[0] = "os.name";
property[1] = System.getProperty("os.name");
infos.add(property);
property = new Object[2];
property[0] = "os.version";
property[1] = System.getProperty("os.version");
infos.add(property);
request.setAttribute("osInfos", infos);
// java infos
infos = new Vector();
property = new Object[2];
property[0] = "java.runtime.name";
property[1] = System.getProperty("java.runtime.name");
infos.add(property);
property = new Object[2];
property[0] = "java.vm.version";
property[1] = System.getProperty("java.vm.version");
infos.add(property);
property = new Object[2];
property[0] = "java.vm.vendor";
property[1] = "<a href=\"" + System.getProperty("java.vendor.url") + "\">" + System.getProperty("java.vm.vendor") + "</a>";
infos.add(property);
property = new Object[2];
property[0] = "java.version";
property[1] = System.getProperty("java.version");
infos.add(property);
request.setAttribute("javaInfos", infos);
request.getRequestDispatcher("/pages/serverInfos.jsp").forward(request, response);
}
}
|