package org.ets.ibt.utilities.server.cachemanager; import java.io.IOException; import java.io.PrintWriter; import java.sql.Timestamp; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.ets.ibt.delivery.server.model.cache.CacheManager; import org.ets.ibt.delivery.server.model.cache.StatusData; import org.ets.ibt.delivery.server.security.IBTSecurityUtil; import org.ets.ibt.delivery.server.utility.ServerProperties; public class CacheSynchStatusServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(this.checkPermission()) { TreeMap statusList = CacheManager.getInstance().getCacheAccessInfo().getStatusMap(); response.setContentType("text/html; charset=ISO-8859-1"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("Cache Synchronization Status"); out.println(""); out.println(""); out.println("

Cache Synchronization Status

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); HashMap countMap = new HashMap(); String color; int i; Iterator var8; String pkgId; if(statusList.size() > 0) { i = 0; var8 = statusList.keySet().iterator(); while(var8.hasNext()) { pkgId = (String)var8.next(); if(i % 2 == 0) { color = "bgcolor=\'#F2F2F2\'"; } else { color = "bgcolor=\'#DDDDDD\'"; } ++i; out.println(""); pkgId.println(pkgId); out.println(""); TreeMap list = (TreeMap)statusList.get(pkgId); for(Iterator var11 = list.keySet().iterator(); var11.hasNext(); out.println("")) { String key = (String)var11.next(); StatusData data = (StatusData)list.get(key); out.println(""); out.println(color); color.println(data.getPkgId()); color.println(data.getPackageSynchString()); color.println(data.getPackageVerifiedString()); color.println(data.getPkgLastAccessString()); if(!data.getPkgLastAccessString().equals(" ")) { Integer testConfigSynchMap = (Integer)countMap.get(data.getPkgId()); if(testConfigSynchMap == null) { countMap.put(data.getPkgId(), Integer.valueOf(1)); } else { countMap.put(data.getPkgId(), Integer.valueOf(testConfigSynchMap.intValue() + 1)); } } Map var19 = data.getTestConfigSynchTimestamp(); if(var19.size() > 0) { Object testConfigVerifiedMap = ""; String adminCode; for(Iterator s = var19.keySet().iterator(); s.hasNext(); testConfigVerifiedMap = new Timestamp(((Long)var19.get(adminCode)).longValue())) { adminCode = (String)s.next(); } String var20 = ((String)testConfigVerifiedMap).substring(0, ((String)testConfigVerifiedMap).length() - 4); color.println(var20); } else { out.println(color); } Map var21 = data.getTestConfigVerifiedTimestamp(); if(var21.size() > 0) { Object var22 = ""; String adminCode1; for(Iterator var24 = var21.keySet().iterator(); var24.hasNext(); var22 = new Timestamp(((Long)var21.get(adminCode1)).longValue())) { adminCode1 = (String)var24.next(); } String var23 = ((String)var22).substring(0, ((String)var22).length() - 4); color.println(var23); } else { out.println(color); } } } } out.println("
 PackagePackage CacheTest Config/Admin Cache
SynchronizedVerifiedLast AccessSynchronizedVerified
"); out.println("
"); if(countMap.size() > 0) { out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); i = 0; var8 = countMap.keySet().iterator(); while(var8.hasNext()) { pkgId = (String)var8.next(); if(i % 2 == 0) { color = "bgcolor=\'#F2F2F2\'"; } else { color = "bgcolor=\'#DDDDDD\'"; } ++i; out.println(""); color.println(pkgId); color.println((String)countMap.get(pkgId)); out.println(""); } if(ServerProperties.getCacheOption().equals("MASTER")) { out.println(""); out.println(""); out.println(""); } out.println(""); out.println("
Load-on-Demand Package Status
PackageLoaded Count
Note: the \"Loaded Count\" is the total count which the last access timestamp is not blank.
"); } out.println(""); out.println(""); out.flush(); } } public boolean checkPermission() { return IBTSecurityUtil.hasPermission("ACCSS_CCHE_MNGMNT", new String[]{"level_4_role"}); } }