/** * Checks if this started server has already a configured proxy and returns the associated port if * it is still free, or associate a new port if the previous port is not avaiable anymore, or * create a new port if none existed before. * * @param startedServer * @return the proxy port * @throws CoreException */ private int getProxyPort(final IServer startedServer) throws CoreException { final IServer liveReloadServer = getServer(); @SuppressWarnings("unchecked") final Map<String, Integer> proxyPorts = liveReloadServer.getAttribute(PROXY_PORTS, new HashMap<String, Integer>()); final String startedServerId = startedServer.getId(); if (proxyPorts.containsKey(startedServerId)) { final int port = proxyPorts.get(startedServerId); if (!SocketUtil.isPortInUse(port)) { return port; } } final IServerWorkingCopy swc = getServer().createWorkingCopy(); final int port = SocketUtil.findUnusedPort(50000, 60000); proxyPorts.put(startedServerId, port); swc.setAttribute(PROXY_PORTS, proxyPorts); swc.saveAll(true, null); return port; }
@Before public void setup() throws IOException, CoreException { // remove all servers for (final IServer server : ServerCore.getServers()) { server.stop(true); TaskMonitor monitor = new TaskMonitor() { @Override public boolean isComplete() { return !(server.canStop().isOK()); } }; TimeoutUtils.timeout(monitor, 2, TimeUnit.SECONDS); server.delete(); } // EventService.getInstance().resetSubscribers(); liveReloadServerPort = SocketUtil.findUnusedPort(50000, 55000); }