1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server;
21
22 import java.io.IOException;
23 import java.net.DatagramSocket;
24 import java.net.ServerSocket;
25 import java.net.URI;
26
27 import com.sun.jersey.api.client.Client;
28 import com.sun.jersey.api.client.ClientResponse;
29
30 public class WebTestUtils {
31
32 private static boolean available(int port) {
33 if (port < 1111 || port > 9999) {
34 throw new IllegalArgumentException("Invalid start port: " + port);
35 }
36
37 ServerSocket ss = null;
38 DatagramSocket ds = null;
39 try {
40 ss = new ServerSocket(port);
41 ss.setReuseAddress(true);
42 ds = new DatagramSocket(port);
43 ds.setReuseAddress(true);
44 return true;
45 } catch (IOException e) {
46 } finally {
47 if (ds != null) {
48 ds.close();
49 }
50
51 if (ss != null) {
52 try {
53 ss.close();
54 } catch (IOException e) {
55 throw new RuntimeException(e);
56 }
57 }
58 }
59
60 return false;
61 }
62
63 public static int nextAvailablePortNumber() {
64 int nonPriveledgedPortNumber = 1111;
65 while (!available(nonPriveledgedPortNumber)) {
66 nonPriveledgedPortNumber++;
67 }
68 return nonPriveledgedPortNumber;
69 }
70
71 public static ClientResponse sendGetRequestTo(URI targetUri) {
72 return Client.create().resource(targetUri).get(ClientResponse.class);
73 }
74 }