@Override public HttpServerFileUpload streamToFileSystem(String filename) { pause(); context.owner().fileSystem().open(filename, new OpenOptions(), ar -> { if (ar.succeeded()) { file = ar.result(); Pump p = Pump.pump(HttpServerFileUploadImpl.this, ar.result()); p.start(); resume(); } else { notifyExceptionHandler(ar.cause()); } }); return this; }
@Override public void start() throws Exception { vertx.createNetServer().connectHandler(sock -> { // Create a pump Pump.pump(sock, sock).start(); }).listen(1234); System.out.println("Echo server is now listening"); } }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws); }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull2() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws, 1000); }
@Test(expected = NullPointerException.class) public void testPumpReadStreamNull() { FakeReadStream<MyClass> rs = new FakeReadStream<>(); Pump.pump(rs, null); }
@Test(expected = NullPointerException.class) public void testPumpReadStreamNull2() { FakeReadStream<MyClass> rs = new FakeReadStream<>(); Pump.pump(rs, null, 1000); }
@Override public void start() throws Exception { vertx.createHttpServer().requestHandler(req -> { req.pause(); String filename = UUID.randomUUID() + ".uploaded"; vertx.fileSystem().open(filename, new OpenOptions(), ares -> { AsyncFile file = ares.result(); Pump pump = Pump.pump(req, file); req.endHandler(v1 -> file.close(v2 -> { System.out.println("Uploaded to " + filename); req.response().end(); })); pump.start(); req.resume(); }); }).listen(8080); } }
@Override public void start() throws Exception { NetServerOptions options = new NetServerOptions() .setSsl(true).setKeyStoreOptions(new JksOptions().setPath("server-keystore.jks").setPassword("wibble")); vertx.createNetServer(options).connectHandler(sock -> { // Create a pump Pump.pump(sock, sock).start(); }).listen(1234); System.out.println("Echo server is now listening"); } }
@Override public void start() throws Exception { HttpClientRequest req = vertx.createHttpClient(new HttpClientOptions()).put(8080, "localhost", "/someurl", resp -> { System.out.println("Response " + resp.statusCode()); }); String filename = "upload.txt"; FileSystem fs = vertx.fileSystem(); fs.props(filename, ares -> { FileProps props = ares.result(); System.out.println("props is " + props); long size = props.size(); req.headers().set("content-length", "" + size); fs.open(filename, new OpenOptions(), ares2 -> { AsyncFile file = ares2.result(); Pump pump = Pump.pump(file, req); file.endHandler(v -> { req.end(); }); pump.start(); }); }); } }
if (ar.succeeded()) { WriteStream ws = ar.result(); Pump p = Pump.pump(rs, ws); p.start(); rs.endHandler(v -> {
@Test public void testPump() { String str = TestUtils.randomUnicodeString(100); ReadStream<String> consumer = eb.<String>consumer(ADDRESS1).bodyStream(); consumer.handler(message -> { if (message.equals(str)) { testComplete(); } }); MessageProducer<String> producer = eb.sender(ADDRESS2); Pump.pump(consumer, producer); producer.write(str); }
@Test public void testPumpBasic() throws Exception { FakeReadStream<MyClass> rs = new FakeReadStream<>(); FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump p = Pump.pump(rs, ws, 1001); for (int i = 0; i < 10; i++) { // Repeat a few times p.start(); List<MyClass> inp = new ArrayList<>(); for (int j = 0; j < 10; j++) { MyClass myClass = new MyClass(); inp.add(myClass); rs.addData(myClass); } assertEquals(inp, ws.received); assertFalse(rs.paused); assertEquals(0, rs.pauseCount); assertEquals(0, rs.resumeCount); p.stop(); ws.clearReceived(); MyClass myClass = new MyClass(); rs.addData(myClass); assertEquals(0, ws.received.size()); } }
@Test public void testPumpPauseResume() throws Exception { FakeReadStream<MyClass> rs = new FakeReadStream<>(); FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump p = Pump.pump(rs, ws, 5); p.start(); for (int i = 0; i < 10; i++) { // Repeat a few times List<MyClass> inp = new ArrayList<>(); for (int j = 0; j < 4; j++) { MyClass myClass = new MyClass(); inp.add(myClass); rs.addData(myClass); assertFalse(rs.paused); assertEquals(i, rs.pauseCount); assertEquals(i, rs.resumeCount); } MyClass myClass = new MyClass(); inp.add(myClass); rs.addData(myClass); assertTrue(rs.paused); assertEquals(i + 1, rs.pauseCount); assertEquals(i, rs.resumeCount); assertEquals(inp, ws.received); ws.clearReceived(); assertFalse(rs.paused); assertEquals(i + 1, rs.pauseCount); assertEquals(i + 1, rs.resumeCount); } }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws); }
@Test(expected = NullPointerException.class) public void testPumpWriteStreamNull2() { FakeWriteStream<MyClass> ws = new FakeWriteStream<>(); Pump.pump(null, ws, 1000); }
@Test(expected = NullPointerException.class) public void testPumpReadStreamNull2() { FakeReadStream<MyClass> rs = new FakeReadStream<>(); Pump.pump(rs, null, 1000); }