use of com.questdb.BootstrapEnv in project questdb by bluestreak01.
the class HttpServerTest method testConnectionCount.
@Test
public void testConnectionCount() throws Exception {
final BootstrapEnv env = new BootstrapEnv();
env.configuration = new ServerConfiguration(new File(resourceFile("/site"), "conf/questdb.conf"));
env.configuration.setHttpMaxConnections(10);
env.matcher = new SimpleUrlMatcher() {
{
setDefaultHandler(new StaticContentHandler(env));
}
};
HttpServer server = new HttpServer(env);
server.start();
try {
CloseableHttpClient c1 = clientBuilder(true).build();
CloseableHttpClient c2 = clientBuilder(true).build();
CloseableHttpClient c3 = clientBuilder(true).build();
CloseableHttpClient c4 = clientBuilder(true).build();
Assert.assertNotNull(c1.execute(new HttpGet("https://localhost:9000/upload.html")));
Assert.assertEquals(1, server.getConnectionCount());
Assert.assertNotNull(c2.execute(new HttpGet("https://localhost:9000/upload.html")));
Assert.assertEquals(2, server.getConnectionCount());
Assert.assertNotNull(c3.execute(new HttpGet("https://localhost:9000/upload.html")));
Assert.assertEquals(3, server.getConnectionCount());
Assert.assertNotNull(c4.execute(new HttpGet("https://localhost:9000/upload.html")));
Assert.assertEquals(4, server.getConnectionCount());
c1.close();
c2.close();
Thread.sleep(300);
Assert.assertEquals(2, server.getConnectionCount());
c3.close();
c4.close();
Thread.sleep(300);
Assert.assertEquals(0, server.getConnectionCount());
} finally {
server.halt();
}
}
use of com.questdb.BootstrapEnv in project questdb by bluestreak01.
the class HttpServerTest method testSslConcurrentDownload.
@Test
public void testSslConcurrentDownload() throws Exception {
BootstrapEnv env = new BootstrapEnv();
env.configuration = new ServerConfiguration(new File(resourceFile("/site"), "conf/questdb.conf"));
env.configuration.getSslConfig().setSecure(true);
env.configuration.getSslConfig().setKeyStore(new FileInputStream(resourceFile("/keystore/singlekey.ks")), "changeit");
env.matcher = new SimpleUrlMatcher() {
{
setDefaultHandler(new StaticContentHandler(env));
}
};
final MimeTypes mimeTypes = new MimeTypes(env.configuration.getMimeTypes());
HttpServer server = new HttpServer(env);
server.start();
assertConcurrentDownload(mimeTypes, server, "https");
}
use of com.questdb.BootstrapEnv in project questdb by bluestreak01.
the class HttpServerTest method testFragmentedUrl.
@Test
public void testFragmentedUrl() throws Exception {
final long tick = DateFormatUtils.parseDateTime("2015-12-05T13:30:00.000Z");
final BootstrapEnv env = new BootstrapEnv();
env.configuration = new ServerConfiguration();
env.matcher = new SimpleUrlMatcher();
HttpServer server = new HttpServer(env);
server.setClock(() -> tick);
server.start();
try (SocketChannel channel = openChannel()) {
ByteBuffer buf = ByteBuffer.allocate(1024);
ByteBuffer out = ByteBuffer.allocate(1024);
int n = 5;
for (int i = 0; i < n; i++) {
buf.put((byte) request.charAt(i));
}
buf.flip();
ByteBuffers.copy(buf, channel);
buf.clear();
for (int i = n; i < request.length(); i++) {
buf.put((byte) request.charAt(i));
}
buf.flip();
ByteBuffers.copy(buf, channel);
channel.configureBlocking(false);
ByteBuffers.copyGreedyNonBlocking(channel, out, 100000);
final String expected = "HTTP/1.1 404 Not Found\r\n" + "Server: questDB/1.0\r\n" + "Date: Sat, 5 Dec 2015 13:30:00 GMT\r\n" + "Transfer-Encoding: chunked\r\n" + "Content-Type: text/html; charset=utf-8\r\n" + "\r\n" + "b\r\n" + "Not Found\r\n" + "\r\n" + "0\r\n" + "\r\n";
Assert.assertEquals(expected.length(), out.remaining());
for (int i = 0, k = expected.length(); i < k; i++) {
Assert.assertEquals(expected.charAt(i), out.get());
}
} finally {
server.halt();
}
}
use of com.questdb.BootstrapEnv in project questdb by bluestreak01.
the class HttpServerTest method testDefaultDirIndex.
@Test
public void testDefaultDirIndex() throws Exception {
final BootstrapEnv env = new BootstrapEnv();
env.configuration = new ServerConfiguration(new File(resourceFile("/site"), "conf/questdb.conf"));
env.configuration.getSslConfig().setSecure(false);
env.typeProbeCollection = TYPE_PROBE_COLLECTION;
env.matcher = new SimpleUrlMatcher() {
{
setDefaultHandler(new StaticContentHandler(env));
}
};
HttpServer server = new HttpServer(env);
server.start();
try {
HttpTestUtils.download(clientBuilder(false), "http://localhost:9000/", new File(temp.getRoot(), "index.html"));
} finally {
server.halt();
}
}
use of com.questdb.BootstrapEnv in project questdb by bluestreak01.
the class HttpServerTest method testImportNumberPrefixedColumn.
@Test
public void testImportNumberPrefixedColumn() throws Exception {
final ServerConfiguration configuration = new ServerConfiguration();
BootstrapEnv env = new BootstrapEnv();
env.configuration = configuration;
env.factory = getFactory();
env.typeProbeCollection = TYPE_PROBE_COLLECTION;
env.matcher = new SimpleUrlMatcher() {
{
put("/imp", new ImportHandler(env));
}
};
HttpServer server = new HttpServer(env);
server.start();
try {
Assert.assertEquals(200, HttpTestUtils.upload("/csv/test-import-num-prefix.csv", "http://localhost:9000/imp?fmt=json", null, null));
StringSink sink = new StringSink();
RecordSourcePrinter printer = new RecordSourcePrinter(sink);
QueryCompiler qc = new QueryCompiler(env);
try (RecordSource rs = qc.compile(env.factory, "select count(StrSym), count(IntSym), count(_1IntCol), count(long), count() from 'test-import-num-prefix.csv'")) {
printer.print(rs, env.factory);
}
TestUtils.assertEquals("126\t126\t128\t129\t129\n", sink);
} finally {
server.halt();
}
}
Aggregations