![]() |
![]() |
selenium-server-standalone-2.42.2status service."); return res; } id = requestJSON.getString("id"); } try { URL u = new URL(id); id = "http://" + u.getHost() + ":" + u.getPort(); } catch (MalformedURLException localMalformedURLException) {} RemoteProxy proxy = getRegistry().getProxyById(id); if (proxy == null) { res.put("msg", "Cannot find proxy with ID =" + id + " in the registry."); return res; } res.put("msg", "proxy found !"); res.put("success", true); res.put("id", proxy.getId()); res.put("request", proxy.getOriginalRegistrationRequest().getAssociatedJSON()); if (requestJSON != null) { List<String> methods = getExtraMethodsRequested(requestJSON); List<String> errors = new ArrayList(); for (String method : methods) { try { Object o = getValueByReflection(proxy, method); res.put(method, o); } catch (Throwable t) { errors.add(t.getMessage()); } } if (!errors.isEmpty()) { res.put("success", false); res.put("errors", errors.toString()); } } return res; } private Object getValueByReflection(RemoteProxy proxy, String method) { Class[] argsClass = new Class[0]; try { Method m = proxy.getClass().getDeclaredMethod(method, argsClass); return m.invoke(proxy, new Object[0]); } catch (Throwable e) { throw new RuntimeException(e.getClass() + " - " + e.getMessage()); } } private List<String> getExtraMethodsRequested(JSONObject request) { List<String> res = new ArrayList(); for (Iterator<?> iterator = request.keys(); iterator.hasNext();) { String key = (String)iterator.next(); if (!"id".equals(key)) { res.add(key); } } return res; } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.ProxyStatusServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet; import java.util.logging.Logger; import org.openqa.grid.internal.Registry; import org.openqa.grid.internal.RemoteProxy; class RegistrationServlet$1 implements Runnable { RegistrationServlet$1(RegistrationServlet paramRegistrationServlet, RemoteProxy paramRemoteProxy) {} public void run() { this$0.getRegistry().add(val$proxy); RegistrationServlet.access$0().fine("proxy added " + val$proxy.getRemoteHost()); } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.RegistrationServlet.1 * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Map; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.openqa.grid.common.RegistrationRequest; import org.openqa.grid.internal.BaseRemoteProxy; import org.openqa.grid.internal.Registry; import org.openqa.grid.internal.RemoteProxy; import org.openqa.grid.internal.utils.GridHubConfiguration; public class RegistrationServlet extends RegistryBasedServlet { private static final long serialVersionUID = -8670670577712086527L; private static final Logger log = Logger.getLogger(RegistrationServlet.class.getName()); public RegistrationServlet() { this(null); } public RegistrationServlet(Registry registry) { super(registry); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException { BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream())); StringBuilder registrationRequest = new StringBuilder(); String line; while ((line = rd.readLine()) != null) { String line; registrationRequest.append(line); } rd.close(); log.fine("getting the following registration request : " + registrationRequest.toString()); RegistrationRequest server = RegistrationRequest.getNewInstance(registrationRequest.toString()); GridHubConfiguration hubConfig = getRegistry().getConfiguration(); for (String key : hubConfig.getAllParams().keySet()) { if (!server.getConfiguration().containsKey(key)) { server.getConfiguration().put(key, hubConfig.getAllParams().get(key)); } } final RemoteProxy proxy = BaseRemoteProxy.getNewInstance(server, getRegistry()); reply(response, "ok"); new Thread(new Runnable() { public void run() { getRegistry().add(proxy); RegistrationServlet.log.fine("proxy added " + proxy.getRemoteHost()); } }) .start(); } protected void reply(HttpServletResponse response, String content) throws IOException { response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); response.setStatus(200); response.getWriter().print(content); } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.RegistrationServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet; import javax.servlet.ServletContext; import javax.servlet.http.HttpServlet; import org.openqa.grid.internal.Registry; public abstract class RegistryBasedServlet extends HttpServlet { private Registry registry; public RegistryBasedServlet(Registry registry) { this.registry = registry; } protected Registry getRegistry() { if (registry == null) { registry = ((Registry)getServletContext().getAttribute(Registry.KEY)); } return registry; } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.RegistryBasedServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ResourceServlet extends HttpServlet { private static final long serialVersionUID = 7253742807937667039L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } /* Error */ protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException { // Byte code: // 0: aload_1 // 1: invokeinterface 34 1 0 // 6: aload_1 // 7: invokeinterface 37 1 0 // 12: ldc 39 // 14: invokevirtual 45 java/lang/String:replace (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // 17: astore_3 // 18: aload_3 // 19: ldc 47 // 21: invokevirtual 51 java/lang/String:startsWith (Ljava/lang/String;)Z // 24: ifeq +12 -> 36 // 27: aload_3 // 28: ldc 47 // 30: ldc 39 // 32: invokevirtual 55 java/lang/String:replaceFirst (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // 35: astore_3 // 36: invokestatic 61 java/lang/Thread:currentThread ()Ljava/lang/Thread; // 39: invokevirtual 65 java/lang/Thread:getContextClassLoader ()Ljava/lang/ClassLoader; // 42: aload_3 // 43: invokevirtual 71 java/lang/ClassLoader:getResourceAsStream (Ljava/lang/String;)Ljava/io/InputStream; // 46: astore 4 // 48: aload 4 // 50: ifnonnull +27 -> 77 // 53: new 73 java/lang/Error // 56: dup // 57: new 75 java/lang/StringBuilder // 60: dup // 61: ldc 77 // 63: invokespecial 80 java/lang/StringBuilder:<init> (Ljava/lang/String;)V // 66: aload_3 // 67: invokevirtual 84 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 70: invokevirtual 87 java/lang/StringBuilder:toString ()Ljava/lang/String; // 73: invokespecial 88 java/lang/Error:<init> (Ljava/lang/String;)V // 76: athrow // 77: aload 4 // 79: aload_2 // 80: invokeinterface 96 1 0 // 85: invokestatic 102 com/google/common/io/ByteStreams:copy (Ljava/io/InputStream;Ljava/io/OutputStream;)J // 88: pop2 // 89: goto +70 -> 159 // 92: astore 5 // 94: aload 4 // 96: invokevirtual 107 java/io/InputStream:close ()V // 99: invokestatic 113 java/util/Calendar:getInstance ()Ljava/util/Calendar; // 102: astore 6 // 104: aload 6 // 106: new 115 java/util/Date // 109: dup // 110: invokespecial 116 java/util/Date:<init> ()V // 113: invokevirtual 120 java/util/Calendar:setTime (Ljava/util/Date;)V // 116: aload 6 // 118: iconst_5 // 119: bipush 10 // 121: invokevirtual 124 java/util/Calendar:add (II)V // 124: aload_2 // 125: ldc 126 // 127: aload 6 // 129: invokevirtual 130 java/util/Calendar:getTime ()Ljava/util/Date; // 132: invokevirtual 133 java/util/Date:getTime ()J // 135: invokeinterface 137 4 0 // 140: aload_2 // 141: ldc -117 // 143: ldc -115 // 145: invokeinterface 145 3 0 // 150: aload_2 // 151: invokeinterface 148 1 0 // 156: aload 5 // 158: athrow // 159: aload 4 // 161: invokevirtual 107 java/io/InputStream:close ()V // 164: invokestatic 113 java/util/Calendar:getInstance ()Ljava/util/Calendar; // 167: astore 6 // 169: aload 6 // 171: new 115 java/util/Date // 174: dup // 175: invokespecial 116 java/util/Date:<init> ()V // 178: invokevirtual 120 java/util/Calendar:setTime (Ljava/util/Date;)V // 181: aload 6 // 183: iconst_5 // 184: bipush 10 // 186: invokevirtual 124 java/util/Calendar:add (II)V // 189: aload_2 // 190: ldc 126 // 192: aload 6 // 194: invokevirtual 130 java/util/Calendar:getTime ()Ljava/util/Date; // 197: invokevirtual 133 java/util/Date:getTime ()J // 200: invokeinterface 137 4 0 // 205: aload_2 // 206: ldc -117 // 208: ldc -115 // 210: invokeinterface 145 3 0 // 215: aload_2 // 216: invokeinterface 148 1 0 // 221: return // Line number table: // Java source line #49 -> byte code offset #0 // Java source line #50 -> byte code offset #18 // Java source line #51 -> byte code offset #27 // Java source line #52 -> byte code offset #36 // Java source line #53 -> byte code offset #48 // Java source line #54 -> byte code offset #53 // Java source line #58 -> byte code offset #77 // Java source line #59 -> byte code offset #89 // Java source line #60 -> byte code offset #94 // Java source line #61 -> byte code offset #99 // Java source line #62 -> byte code offset #104 // Java source line #63 -> byte code offset #116 // Java source line #64 -> byte code offset #124 // Java source line #65 -> byte code offset #140 // Java source line #66 -> byte code offset #150 // Java source line #67 -> byte code offset #156 // Java source line #60 -> byte code offset #159 // Java source line #61 -> byte code offset #164 // Java source line #62 -> byte code offset #169 // Java source line #63 -> byte code offset #181 // Java source line #64 -> byte code offset #189 // Java source line #65 -> byte code offset #205 // Java source line #66 -> byte code offset #215 // Java source line #69 -> byte code offset #221 // Local variable table: // start length slot name signature // 0 222 0 this ResourceServlet // 0 222 1 request HttpServletRequest // 0 222 2 response HttpServletResponse // 17 50 3 resource String // 46 114 4 in java.io.InputStream // 92 65 5 localObject Object // 102 26 6 c java.util.Calendar // 167 26 6 c java.util.Calendar // Exception table: // from to target type // 77 92 92 finally } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.ResourceServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONException; import org.json.JSONObject; import org.openqa.grid.common.exception.GridException; import org.openqa.grid.internal.ExternalSessionKey; import org.openqa.grid.internal.Registry; import org.openqa.grid.internal.RemoteProxy; import org.openqa.grid.internal.TestSession; import org.openqa.grid.internal.TestSlot; public class TestSessionStatusServlet extends RegistryBasedServlet { private static final long serialVersionUID = 4325112892618707612L; public TestSessionStatusServlet() { super(null); } public TestSessionStatusServlet(Registry registry) { super(registry); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.setStatus(200); try { JSONObject res = getResponse(request); response.getWriter().print(res); response.getWriter().close(); } catch (JSONException e) { throw new GridException(e.getMessage()); } JSONObject res; } private JSONObject getResponse(HttpServletRequest request) throws IOException, JSONException { JSONObject requestJSON = null; if (request.getInputStream() != null) { BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream())); StringBuilder s = new StringBuilder(); String line; while ((line = rd.readLine()) != null) { String line; s.append(line); } rd.close(); String json = s.toString(); if (!"".equals(json)) { requestJSON = new JSONObject(json); } } JSONObject res = new JSONObject(); res.put("success", false); String session; String session; if (requestJSON == null) { session = request.getParameter("session"); } else { if (!requestJSON.has("session")) { res.put("msg", "you need to specify at least a session or internalKey when call the test slot status service."); return res; } session = requestJSON.getString("session"); } TestSession testSession = getRegistry().getSession(ExternalSessionKey.fromString(session)); if (testSession == null) { res.put("msg", "Cannot find test slot running session " + session + " in the registry."); return res; } res.put("msg", "slot found !"); res.put("success", true); res.put("session", testSession.getExternalKey().getKey()); res.put("internalKey", testSession.getInternalKey()); res.put("inactivityTime", testSession.getInactivityTime()); RemoteProxy p = testSession.getSlot().getProxy(); res.put("proxyId", p.getId()); return res; } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.TestSessionStatusServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet.beta; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.openqa.grid.common.GridDocHelper; import org.openqa.grid.internal.Registry; import org.openqa.grid.internal.utils.GridHubConfiguration; import org.openqa.grid.web.servlet.RegistryBasedServlet; import org.openqa.selenium.remote.DesiredCapabilities; public class ConsoleServlet extends RegistryBasedServlet { private static final long serialVersionUID = 8484071790930378855L; private static final Logger log = Logger.getLogger(ConsoleServlet.class.getName()); private static String coreVersion; private static String coreRevision; public ConsoleServlet() { this(null); } public ConsoleServlet(Registry registry) { super(registry); getVersion(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } /* Error */ protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException { // Byte code: // 0: iconst_m1 // 1: istore_3 // 2: aload_1 // 3: ldc 60 // 5: invokeinterface 66 2 0 // 10: ifnull +19 -> 29 // 13: aload_1 // 14: ldc 60 // 16: invokeinterface 66 2 0 // 21: invokestatic 72 java/lang/Integer:parseInt (Ljava/lang/String;)I // 24: istore_3 // 25: goto +4 -> 29 // 28: pop // 29: aload_2 // 30: ldc 76 // 32: invokeinterface 80 2 0 // 37: aload_2 // 38: ldc 82 // 40: invokeinterface 85 2 0 // 45: aload_2 // 46: sipush 200 // 49: invokeinterface 89 2 0 // 54: new 91 java/lang/StringBuilder // 57: dup // 58: invokespecial 93 java/lang/StringBuilder:<init> ()V // 61: astore 4 // 63: aload 4 // 65: ldc 95 // 67: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 70: pop // 71: aload 4 // 73: ldc 101 // 75: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 78: pop // 79: aload 4 // 81: ldc 103 // 83: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 86: pop // 87: aload 4 // 89: ldc 105 // 91: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 94: pop // 95: aload 4 // 97: ldc 107 // 99: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 102: pop // 103: aload 4 // 105: ldc 109 // 107: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 110: pop // 111: iload_3 // 112: iconst_m1 // 113: if_icmpeq +25 -> 138 // 116: aload 4 // 118: ldc 111 // 120: iconst_1 // 121: anewarray 113 java/lang/Object // 124: dup // 125: iconst_0 // 126: iload_3 // 127: invokestatic 117 java/lang/Integer:valueOf (I)Ljava/lang/Integer; // 130: aastore // 131: invokestatic 123 java/lang/String:format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // 134: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 137: pop // 138: aload 4 // 140: ldc 125 // 142: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 145: pop // 146: aload 4 // 148: ldc 127 // 150: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 153: pop // 154: aload 4 // 156: ldc -127 // 158: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 161: pop // 162: aload 4 // 164: ldc -125 // 166: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 169: pop // 170: aload 4 // 172: ldc -123 // 174: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 177: pop // 178: aload 4 // 180: ldc -121 // 182: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 185: pop // 186: aload 4 // 188: ldc -119 // 190: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 193: pop // 194: aload 4 // 196: ldc -117 // 198: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 201: pop // 202: aload 4 // 204: ldc -115 // 206: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 209: pop // 210: aload 4 // 212: ldc -113 // 214: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 217: pop // 218: aload 4 // 220: aload_0 // 221: invokespecial 147 org/openqa/grid/web/servlet/beta/ConsoleServlet:getHeader ()Ljava/lang/Object; // 224: invokevirtual 150 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; // 227: pop // 228: new 152 java/util/ArrayList // 231: dup // 232: invokespecial 153 java/util/ArrayList:<init> ()V // 235: astore 5 // 237: aload_0 // 238: invokevirtual 157 org/openqa/grid/web/servlet/beta/ConsoleServlet:getRegistry ()Lorg/openqa/grid/internal/Registry; // 241: invokevirtual 163 org/openqa/grid/internal/Registry:getAllProxies ()Lorg/openqa/grid/internal/ProxySet; // 244: invokevirtual 169 org/openqa/grid/internal/ProxySet:iterator ()Ljava/util/Iterator; // 247: astore 6 // 249: goto +41 -> 290 // 252: aload 6 // 254: invokeinterface 176 1 0 // 259: checkcast 178 org/openqa/grid/internal/RemoteProxy // 262: astore 7 // 264: new 180 org/openqa/grid/web/servlet/beta/WebProxyHtmlRendererBeta // 267: dup // 268: aload 7 // 270: invokespecial 183 org/openqa/grid/web/servlet/beta/WebProxyHtmlRendererBeta:<init> (Lorg/openqa/grid/internal/RemoteProxy;)V // 273: astore 8 // 275: aload 5 // 277: aload 8 // 279: invokeinterface 188 1 0 // 284: invokeinterface 192 2 0 // 289: pop // 290: aload 6 // 292: invokeinterface 196 1 0 // 297: ifne -45 -> 252 // 300: aload 5 // 302: invokeinterface 200 1 0 // 307: istore 7 // 309: iload 7 // 311: iconst_2 // 312: idiv // 313: istore 6 // 315: iload 7 // 317: iload 6 // 319: isub // 320: istore 8 // 322: aload 4 // 324: ldc -54 // 326: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 329: pop // 330: iconst_0 // 331: istore 9 // 333: goto +24 -> 357 // 336: aload 4 // 338: aload 5 // 340: iload 9 // 342: invokeinterface 206 2 0 // 347: checkcast 119 java/lang/String // 350: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 353: pop // 354: iinc 9 1 // 357: iload 9 // 359: iload 8 // 361: if_icmplt -25 -> 336 // 364: aload 4 // 366: ldc -48 // 368: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 371: pop // 372: aload 4 // 374: ldc -46 // 376: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 379: pop // 380: iload 8 // 382: istore 9 // 384: goto +24 -> 408 // 387: aload 4 // 389: aload 5 // 391: iload 9 // 393: invokeinterface 206 2 0 // 398: checkcast 119 java/lang/String // 401: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 404: pop // 405: iinc 9 1 // 408: iload 9 // 410: aload 5 // 412: invokeinterface 200 1 0 // 417: if_icmplt -30 -> 387 // 420: aload 4 // 422: ldc -48 // 424: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 427: pop // 428: aload 4 // 430: ldc -44 // 432: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 435: pop // 436: aload 4 // 438: aload_0 // 439: invokespecial 215 org/openqa/grid/web/servlet/beta/ConsoleServlet:getRequestQueue ()Ljava/lang/Object; // 442: invokevirtual 150 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; // 445: pop // 446: aload_1 // 447: ldc -39 // 449: invokeinterface 66 2 0 // 454: ifnull +32 -> 486 // 457: aload 4 // 459: aload_0 // 460: aload_1 // 461: ldc -37 // 463: invokeinterface 66 2 0 // 468: ifnull +7 -> 475 // 471: iconst_1 // 472: goto +4 -> 476 // 475: iconst_0 // 476: invokespecial 223 org/openqa/grid/web/servlet/beta/ConsoleServlet:getConfigInfo (Z)Ljava/lang/String; // 479: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 482: pop // 483: goto +11 -> 494 // 486: aload 4 // 488: ldc -31 // 490: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 493: pop // 494: aload 4 // 496: ldc -48 // 498: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 501: pop // 502: aload 4 // 504: ldc -29 // 506: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 509: pop // 510: aload 4 // 512: ldc -27 // 514: invokevirtual 99 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; // 517: pop // 518: new 231 java/io/ByteArrayInputStream // 521: dup // 522: aload 4 // 524: invokevirtual 234 java/lang/StringBuilder:toString ()Ljava/lang/String; // 527: ldc 82 // 529: invokevirtual 238 java/lang/String:getBytes (Ljava/lang/String;)[B // 532: invokespecial 241 java/io/ByteArrayInputStream:<init> ([B)V // 535: astore 9 // 537: aload 9 // 539: aload_2 // 540: invokeinterface 245 1 0 // 545: invokestatic 251 com/google/common/io/ByteStreams:copy (Ljava/io/InputStream;Ljava/io/OutputStream;)J // 548: pop2 // 549: goto +22 -> 571 // 552: astore 10 // 554: aload 9 // 556: invokevirtual 258 java/io/InputStream:close ()V // 559: aload_2 // 560: invokeinterface 245 1 0 // 565: invokevirtual 261 javax/servlet/ServletOutputStream:close ()V // 568: aload 10 // 570: athrow // 571: aload 9 // 573: invokevirtual 258 java/io/InputStream:close ()V // 576: aload_2 // 577: invokeinterface 245 1 0 // 582: invokevirtual 261 javax/servlet/ServletOutputStream:close ()V // 585: return // Line number table: // Java source line #75 -> byte code offset #0 // Java source line #77 -> byte code offset #2 // Java source line #79 -> byte code offset #13 // Java source line #80 -> byte code offset #25 // Java source line #86 -> byte code offset #29 // Java source line #87 -> byte code offset #37 // Java source line #88 -> byte code offset #45 // Java source line #90 -> byte code offset #54 // Java source line #92 -> byte code offset #63 // Java source line #93 -> byte code offset #71 // Java source line #94 -> byte code offset #79 // Java source line #95 -> byte code offset #81 // Java source line #97 -> byte code offset #87 // Java source line #99 -> byte code offset #95 // Java source line #100 -> byte code offset #97 // Java source line #101 -> byte code offset #103 // Java source line #102 -> byte code offset #105 // Java source line #105 -> byte code offset #111 // Java source line #106 -> byte code offset #116 // Java source line #108 -> byte code offset #138 // Java source line #110 -> byte code offset #146 // Java source line #111 -> byte code offset #154 // Java source line #112 -> byte code offset #162 // Java source line #113 -> byte code offset #170 // Java source line #114 -> byte code offset #178 // Java source line #115 -> byte code offset #186 // Java source line #116 -> byte code offset #194 // Java source line #118 -> byte code offset #202 // Java source line #120 -> byte code offset #210 // Java source line #122 -> byte code offset #218 // Java source line #125 -> byte code offset #228 // Java source line #126 -> byte code offset #237 // Java source line #127 -> byte code offset #264 // Java source line #128 -> byte code offset #275 // Java source line #126 -> byte code offset #290 // Java source line #131 -> byte code offset #300 // Java source line #132 -> byte code offset #309 // Java source line #133 -> byte code offset #315 // Java source line #137 -> byte code offset #322 // Java source line #138 -> byte code offset #330 // Java source line #139 -> byte code offset #336 // Java source line #138 -> byte code offset #354 // Java source line #143 -> byte code offset #364 // Java source line #145 -> byte code offset #372 // Java source line #146 -> byte code offset #380 // Java source line #147 -> byte code offset #387 // Java source line #146 -> byte code offset #405 // Java source line #151 -> byte code offset #420 // Java source line #153 -> byte code offset #428 // Java source line #155 -> byte code offset #436 // Java source line #158 -> byte code offset #446 // Java source line #159 -> byte code offset #457 // Java source line #160 -> byte code offset #483 // Java source line #161 -> byte code offset #486 // Java source line #165 -> byte code offset #494 // Java source line #166 -> byte code offset #502 // Java source line #167 -> byte code offset #510 // Java source line #169 -> byte code offset #518 // Java source line #171 -> byte code offset #537 // Java source line #172 -> byte code offset #549 // Java source line #173 -> byte code offset #554 // Java source line #174 -> byte code offset #559 // Java source line #175 -> byte code offset #568 // Java source line #173 -> byte code offset #571 // Java source line #174 -> byte code offset #576 // Java source line #176 -> byte code offset #585 // Local variable table: // start length slot name signature // 0 586 0 this ConsoleServlet // 0 586 1 request HttpServletRequest // 0 586 2 response HttpServletResponse // 1 126 3 refresh int // 61 462 4 builder StringBuilder // 235 176 5 nodes List<String> // 247 44 6 localIterator java.util.Iterator // 313 7 6 rightColumnSize int // 262 7 7 proxy org.openqa.grid.internal.RemoteProxy // 307 13 7 size int // 273 5 8 beta org.openqa.grid.internal.utils.HtmlRenderer // 320 61 8 leftColumnSize int // 331 27 9 i int // 382 27 9 i int // 535 37 9 in InputStream // 552 17 10 localObject Object // 28 1 16 localNumberFormatException NumberFormatException // Exception table: // from to target type // 13 25 28 java/lang/NumberFormatException // 537 552 552 finally } private Object getRequestQueue() { StringBuilder builder = new StringBuilder(); builder.append("<div>"); int numUnprocessedRequests = getRegistry().getNewSessionRequestCount(); if (numUnprocessedRequests > 0) { builder.append(String.format("%d requests waiting for a slot to be free.", new Object[] { Integer.valueOf(numUnprocessedRequests) })); } builder.append("<ul>"); for (DesiredCapabilities req : getRegistry().getDesiredCapabilities()) { builder.append("<li>").append(req).append("</li>"); } builder.append("</ul>"); builder.append("</div>"); return builder.toString(); } private Object getHeader() { StringBuilder builder = new StringBuilder(); builder.append("<div id='header'>"); builder.append("<h1><a href='/grid/console'>Selenium</a></h1>"); builder.append("<h2>Grid Console v."); builder.append(coreVersion).append(coreRevision); builder.append("</h2>"); builder.append("<div><a id='helplink' target='_blank' href='http://code.google.com/p/selenium/wiki/Grid2'>Help</a></div>"); builder.append("</div>"); builder.append(""); return builder.toString(); } private String getConfigInfo(boolean verbose) { StringBuilder builder = new StringBuilder(); GridHubConfiguration config = getRegistry().getConfiguration(); builder.append("<div id='hubConfig'>"); builder.append("<b>Config for the hub :</b><br/>"); builder.append(prettyHtmlPrint(config)); if (verbose) { GridHubConfiguration tmp = new GridHubConfiguration(); tmp.loadDefault(); builder.append("<b>Config details :</b><br/>"); builder.append("<b>hub launched with :</b>"); for (int i = 0; i < config.getArgs().length; i++) { builder.append(config.getArgs()[i]).append(" "); } builder.append("<br/><b>the final configuration comes from :</b><br/>"); builder.append("<b>the default :</b><br/>"); builder.append(prettyHtmlPrint(tmp)); builder.append("<b>updated with grid1 config :</b>"); if (config.getGrid1Yml() != null) { builder.append(config.getGrid1Yml()).append("<br/>"); tmp.loadFromGridYml(config.getGrid1Yml()); builder.append(prettyHtmlPrint(tmp)); } else { builder.append("No grid1 file specified. To specify one, use -grid1Yml XXX.yml where XXX.yml is a grid1 config file</br>"); } builder.append("<br/><b>updated with grid2 config : </b>"); if (config.getGrid2JSON() != null) { builder.append(config.getGrid2JSON()).append("<br/>"); tmp.loadFromJSON(config.getGrid2JSON()); builder.append(prettyHtmlPrint(tmp)); } else { builder.append("No hub config file specified. To specify one, use -hubConfig XXX.json where XXX.json is a hub config file</br>"); } builder.append("<br/><b>updated with params :</b></br>"); tmp.loadFromCommandLine(config.getArgs()); builder.append(prettyHtmlPrint(tmp)); } builder.append("</div>"); return builder.toString(); } private String key(String key) { return "<abbr title='" + GridDocHelper.getGridParam(key) + "'>" + key + " : </abbr>"; } private String prettyHtmlPrint(GridHubConfiguration config) { StringBuilder b = new StringBuilder(); b.append(key("host")).append(config.getHost()).append("</br>"); b.append(key("port")).append(config.getPort()).append("</br>"); b.append(key("cleanUpCycle")).append(config.getCleanupCycle()).append("</br>"); b.append(key("timeout")).append(config.getTimeout()).append("</br>"); b.append(key("browserTimeout")).append(config.getBrowserTimeout()).append("</br>"); b.append(key("newSessionWaitTimeout")).append(config.getNewSessionWaitTimeout()) .append("</br>"); b.append(key("grid1Mapping")).append(config.getGrid1Mapping()).append("</br>"); b.append(key("throwOnCapabilityNotPresent")).append(config.isThrowOnCapabilityNotPresent()) .append("</br>"); b.append(key("capabilityMatcher")) .append( config.getCapabilityMatcher() == null ? "null" : config.getCapabilityMatcher() .getClass().getCanonicalName()).append("</br>"); b.append(key("prioritizer")) .append( config.getPrioritizer() == null ? "null" : config.getPrioritizer().getClass() .getCanonicalName()).append("</br>"); b.append(key("servlets")); for (String s : config.getServlets()) { b.append(s.getClass().getCanonicalName()).append(","); } b.append("</br></br>"); b.append("<u>all params :</u></br></br>"); List<String> keys = new ArrayList(); keys.addAll(config.getAllParams().keySet()); Collections.sort(keys); for (String s : keys) { b.append(key(s.replaceFirst("-", ""))).append(config.getAllParams().get(s)).append("</br>"); } b.append("</br>"); return b.toString(); } private void getVersion() { Properties p = new Properties(); InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("VERSION.txt"); if (stream == null) { log.severe("Couldn't determine version number"); return; } try { p.load(stream); } catch (IOException e) { log.severe("Cannot load version from VERSION.txt" + e.getMessage()); } coreVersion = p.getProperty("selenium.core.version"); coreRevision = p.getProperty("selenium.core.revision"); if (coreVersion == null) { log.severe("Cannot load selenium.core.version from VERSION.txt"); } } } /* Location: * Qualified Name: org.openqa.grid.web.servlet.beta.ConsoleServlet * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ package org.openqa.grid.web.servlet.beta; import org.openqa.grid.internal.RemoteProxy; import org.openqa.grid.internal.TestSlot; import org.openqa.grid.web.utils.BrowserNameUtils; import org.openqa.selenium.remote.DesiredCapabilities; public class MiniCapability { private String browser; private String version; private DesiredCapabilities capabilities; private RemoteProxy proxy; public MiniCapability(TestSlot slot) { DesiredCapabilities cap = new DesiredCapabilities(slot.getCapabilities()); browser = cap.getBrowserName(); version = cap.getVersion(); capabilities = cap; proxy = slot.getProxy(); } public String getVersion() { return version; } public String getIcon() { return BrowserNameUtils.getConsoleIconPath(new DesiredCapabilities(capabilities), proxy.getRegistry()); } public int hashCode() { int result = 1; result = 31 * result + (browser == null ? 0 : browser.hashCode()); result = 31 * result + (version == null ? 0 : version.hashCode()); return result; } public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } MiniCapability other = (MiniCapability)obj; if (browser == null) { if (browser != null) { return false; } } else if (!b Further reading...For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.New!JAR listings
|