gitextract_k296bzti/ ├── .gitignore ├── AUTHORS ├── LICENSE ├── README.md ├── ci/ │ └── jenkins.groovy ├── config/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── ru/ │ │ │ └── qatools/ │ │ │ └── gridrouter/ │ │ │ └── config/ │ │ │ ├── GridRouterException.java │ │ │ ├── HostSelectionStrategy.java │ │ │ ├── RandomHostSelectionStrategy.java │ │ │ ├── RegionWithCount.java │ │ │ ├── SequentialHostSelectionStrategy.java │ │ │ ├── VersionWithCount.java │ │ │ ├── WithBrowserVersionFind.java │ │ │ ├── WithCopy.java │ │ │ ├── WithCount.java │ │ │ ├── WithRoute.java │ │ │ ├── WithRoutesMap.java │ │ │ ├── WithVersionFind.java │ │ │ └── WithXmlView.java │ │ └── resources/ │ │ └── xsd/ │ │ ├── bindings.xjb │ │ └── config.xsd │ └── test/ │ └── java/ │ └── ru/ │ └── qatools/ │ └── gridrouter/ │ └── config/ │ └── RandomHostSelectionStrategyTest.java ├── pom.xml ├── proxy/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── ru/ │ │ │ └── qatools/ │ │ │ └── gridrouter/ │ │ │ ├── ConfigRepository.java │ │ │ ├── ConfigRepositoryXml.java │ │ │ ├── JsonWireUtils.java │ │ │ ├── PingServlet.java │ │ │ ├── ProxyServlet.java │ │ │ ├── QuotaServlet.java │ │ │ ├── RequestUtils.java │ │ │ ├── RouteServlet.java │ │ │ ├── SessionStorageEvictionScheduler.java │ │ │ ├── SpringHttpServlet.java │ │ │ ├── StatsServlet.java │ │ │ ├── caps/ │ │ │ │ ├── AppiumCapabilityProcessor.java │ │ │ │ ├── CapabilityProcessor.java │ │ │ │ ├── CapabilityProcessorFactory.java │ │ │ │ ├── DummyCapabilityProcessor.java │ │ │ │ └── IECapabilityProcessor.java │ │ │ ├── json/ │ │ │ │ ├── Describable.java │ │ │ │ ├── JsonFormatter.java │ │ │ │ ├── JsonMessageFactory.java │ │ │ │ ├── JsonWithAnyProperties.java │ │ │ │ ├── WithErrorMessage.java │ │ │ │ └── WithJsonView.java │ │ │ └── sessions/ │ │ │ ├── AvailableBrowserCheckExeption.java │ │ │ ├── AvailableBrowsersChecker.java │ │ │ ├── BrowserVersion.java │ │ │ ├── BrowsersCountMap.java │ │ │ ├── GridRouterUserStats.java │ │ │ ├── MemoryStatsCounter.java │ │ │ ├── SkipAvailableBrowsersChecker.java │ │ │ ├── StatsCounter.java │ │ │ ├── WaitAvailableBrowserTimeoutException.java │ │ │ └── WaitAvailableBrowsersChecker.java │ │ ├── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── spring/ │ │ │ │ └── application-context.xml │ │ │ ├── application.properties │ │ │ ├── log4j.properties │ │ │ └── xsd/ │ │ │ ├── json.xjb │ │ │ └── json.xsd │ │ └── webapp/ │ │ └── WEB-INF/ │ │ └── web.xml │ └── test/ │ ├── java/ │ │ └── ru/ │ │ └── qatools/ │ │ └── gridrouter/ │ │ ├── CommandDecodingTest.java │ │ ├── JsonWireUtilsTest.java │ │ ├── PingServletTest.java │ │ ├── ProxyServletExceptionsWithHubTest.java │ │ ├── ProxyServletExceptionsWithoutHubTest.java │ │ ├── ProxyServletTest.java │ │ ├── ProxyServletWithBrokenAndOkHubsTest.java │ │ ├── ProxyServletWithBrokenHubTest.java │ │ ├── ProxyServletWithOneHubTest.java │ │ ├── ProxyServletWithTwoHubsTest.java │ │ ├── ProxyServletWithoutHubTest.java │ │ ├── QuotaReloadTest.java │ │ ├── QuotaServletTest.java │ │ ├── RegionsTest.java │ │ ├── RouteServletTest.java │ │ ├── StatsServletTest.java │ │ ├── caps/ │ │ │ ├── AppiumCapabilityProcessorTest.java │ │ │ ├── CapabilityProcessorFactoryTest.java │ │ │ └── IECapabilityProcessorTest.java │ │ ├── json/ │ │ │ └── JsonMessageTest.java │ │ ├── sessions/ │ │ │ ├── MemoryStatsCounterTest.java │ │ │ └── WaitAvailableBrowsersCheckerTest.java │ │ └── utils/ │ │ ├── FindElementCallback.java │ │ ├── GridRouterRule.java │ │ ├── HttpUtils.java │ │ ├── HubEmulator.java │ │ ├── HubEmulatorRule.java │ │ ├── JettyRule.java │ │ ├── JsonUtils.java │ │ ├── MatcherUtils.java │ │ ├── QuotaUtils.java │ │ ├── RememberUrlCallback.java │ │ ├── SocketUtil.java │ │ └── TestConfigRepository.java │ └── resources/ │ ├── META-INF/ │ │ └── spring/ │ │ └── test-application-context.xml │ ├── application.properties │ ├── log4j.properties │ └── quota/ │ ├── user1.xml │ ├── user2.xml │ └── user3.xml └── testing/ ├── group_vars/ │ └── all.yml ├── ping-local-gridrouter.sh ├── roles/ │ ├── start/ │ │ ├── files/ │ │ │ └── gridrouter/ │ │ │ ├── conf/ │ │ │ │ ├── application.properties │ │ │ │ ├── quota/ │ │ │ │ │ └── selenium.xml │ │ │ │ └── users.properties │ │ │ └── webapps/ │ │ │ └── ROOT.xml │ │ └── tasks/ │ │ ├── before.yml │ │ ├── main.yml │ │ ├── start-gridrouter.yml │ │ └── start-selenium.yml │ ├── stop/ │ │ └── tasks/ │ │ ├── before.yml │ │ ├── main.yml │ │ ├── stop-gridrouter.yml │ │ └── stop-selenium.yml │ └── test/ │ ├── files/ │ │ ├── java/ │ │ │ ├── pom.xml │ │ │ ├── run.sh │ │ │ └── src/ │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── SeleniumTest.java │ │ ├── js/ │ │ │ ├── config.json │ │ │ ├── fixtures/ │ │ │ │ └── big-script.js │ │ │ ├── package.json │ │ │ ├── run.sh │ │ │ └── test/ │ │ │ ├── selenium-test-sync.js │ │ │ └── selenium-test-wd.js │ │ └── python/ │ │ ├── requirements.txt │ │ ├── run.sh │ │ └── src/ │ │ └── test_selenium.py │ └── tasks/ │ ├── after.yml │ ├── before.yml │ ├── main.yml │ └── run-tests.yml ├── start.yml ├── stop.yml └── test.yml