List of usage examples for org.apache.http.nio.reactor SessionRequest waitFor
void waitFor() throws InterruptedException;
From source file:com.ok2c.lightmtp.examples.LocalMailClientTransportExample.java
public static void main(final String[] args) throws Exception { String text1 = "From: root\r\n" + "To: testuser1\r\n" + "Subject: test message 1\r\n" + "\r\n" + "This is a short test message 1\r\n"; String text2 = "From: root\r\n" + "To: testuser1, testuser2\r\n" + "Subject: test message 2\r\n" + "\r\n" + "This is a short test message 2\r\n"; String text3 = "From: root\r\n" + "To: testuser1, testuser2, testuser3\r\n" + "Subject: test message 3\r\n" + "\r\n" + "This is a short test message 3\r\n"; DeliveryRequest request1 = new BasicDeliveryRequest("root", Arrays.asList("testuser1"), new ByteArraySource(text1.getBytes("US-ASCII"))); DeliveryRequest request2 = new BasicDeliveryRequest("root", Arrays.asList("testuser1", "testuser2"), new ByteArraySource(text2.getBytes("US-ASCII"))); DeliveryRequest request3 = new BasicDeliveryRequest("root", Arrays.asList("testuser1", "testuser2", "testuser3"), new ByteArraySource(text3.getBytes("US-ASCII"))); Queue<DeliveryRequest> queue = new ConcurrentLinkedQueue<DeliveryRequest>(); queue.add(request1);//from ww w.j av a 2s.c o m queue.add(request2); queue.add(request3); CountDownLatch messageCount = new CountDownLatch(queue.size()); IOReactorConfig config = IOReactorConfig.custom().setIoThreadCount(1).build(); MailClientTransport mua = new LocalMailClientTransport(config); mua.start(new MyDeliveryRequestHandler(messageCount)); SessionEndpoint endpoint = new SessionEndpoint(new InetSocketAddress("localhost", 2525)); SessionRequest sessionRequest = mua.connect(endpoint, queue, null); sessionRequest.waitFor(); IOSession iosession = sessionRequest.getSession(); if (iosession != null) { messageCount.await(); } else { IOException ex = sessionRequest.getException(); if (ex != null) { System.out.println("Connection failed: " + ex.getMessage()); } } System.out.println("Shutting down I/O reactor"); try { mua.shutdown(); } catch (IOException ex) { mua.forceShutdown(); } System.out.println("Done"); }