List of usage examples for org.apache.commons.httpclient.server ResponseWriter flush
public void flush() throws IOException
From source file:org.eclipse.ecf.tests.filetransfer.URLRetrieveTest.java
License:asdf
protected void setUp() throws Exception { super.setUp(); tmpFile = File.createTempFile("ECFTest", ""); server = new SimpleServer(getName()); SimpleHttpServer simple = server.getSimpleHttpServer(); simple.setRequestHandler(new HttpRequestHandler() { public boolean processRequest(SimpleHttpServerConnection conn, SimpleRequest request) throws IOException { trace("Responding to request " + request.getRequestLine()); ResponseWriter w = conn.getWriter(); writeLines(w, new String[] { "HTTP/1.0 200 OK", "Content-Length: 2", "Content-Type: text/plain; charset=UTF-8", "" }); w.flush(); for (int i = 0; i < 2; i++) { w.write("x"); }// www.j ava2 s. c om w.flush(); conn.setKeepAlive(true); return true; } }); }
From source file:org.eclipse.ecf.tests.filetransfer.URLRetrieveTestCancelConnectJob.java
public void testReceiveFile_cancelTransferJob() throws Exception { final Object[] doCancel = new Object[1]; final IFileTransferListener listener = createFileTransferListener(); final FileTransferListenerWrapper lw = new FileTransferListenerWrapper(listener) { protected void handleStartConnectEvent(final IFileTransferConnectStartEvent event) { assertNotNull(event.getFileID()); assertNotNull(event.getFileID().getFilename()); FileTransferJob connectJob = event.prepareConnectJob(null); connectJob.addJobChangeListener(new JobChangeTraceListener(startTime)); event.connectUsingJob(connectJob); }/*from w w w. j a v a 2 s . c om*/ protected void handleStartEvent(final IIncomingFileTransferReceiveStartEvent event) { spawnCancelThread(doCancel, new ICancelable() { public void cancel() { waitForSocketInRead(); assertNotNull(socketInReadWrapper); assertTrue(socketInReadWrapper.inRead); event.cancel(); } }); try { createTempFile(); event.receive(tmpFile); } catch (IOException e) { e.printStackTrace(); fail(e.toString()); } } }; final SimpleServer server = new SimpleServer(getName()); SimpleHttpServer simple = server.getSimpleHttpServer(); simple.setRequestHandler(new HttpRequestHandler() { public boolean processRequest(SimpleHttpServerConnection conn, SimpleRequest request) throws IOException { trace("Responding to request but never provide full body" + request.getRequestLine()); ResponseWriter w = conn.getWriter(); writeLines(w, new String[] { "HTTP/1.0 200 OK", "Content-Length: 9", "Content-Type: text/plain; charset=UTF-8", "" }); w.flush(); synchronized (doCancel) { doCancel[0] = Boolean.TRUE; } conn.setKeepAlive(true); // return stalledInRequestHandler(doCancel); } }); try { // path does not matter as server does not respond. testReceive(server.getServerURL() + "/foo", lw); assertHasEvent(startConnectEvents, IFileTransferConnectStartEvent.class); assertHasEvent(startEvents, IIncomingFileTransferReceiveStartEvent.class); assertDoneCancelled(); assertNotNull(tmpFile); assertTrue(tmpFile.exists()); assertEquals(0, tmpFile.length()); assertFalse(socketInReadWrapper.inRead); socketEvents.validateOneSocketCreatedAndClosed(); } finally { server.shutdown(); } }
From source file:org.eclipse.ecf.tests.filetransfer.URLRetrieveTestCancelConnectJob.java
public void testReceiveFile_cancelTransferJobInMiddle(final long len, final boolean expectedSocketInRead) throws Exception { final Object[] doCancel = new Object[1]; final IFileTransferListener listener = createFileTransferListener(); final FileTransferListenerWrapper lw = new FileTransferListenerWrapper(listener) { protected void handleStartConnectEvent(final IFileTransferConnectStartEvent event) { assertNotNull(event.getFileID()); assertNotNull(event.getFileID().getFilename()); FileTransferJob connectJob = event.prepareConnectJob(null); connectJob.addJobChangeListener(new JobChangeTraceListener(startTime)); event.connectUsingJob(connectJob); }//from w ww . ja v a 2 s.co m protected void handleStartEvent(final IIncomingFileTransferReceiveStartEvent event) { spawnCancelThread(doCancel, new ICancelable() { public void cancel() { if (expectedSocketInRead) { waitForSocketInRead(); } event.cancel(); } }); try { createTempFile(); event.receive(tmpFile); } catch (IOException e) { e.printStackTrace(); fail(e.toString()); } } }; final SimpleServer server = new SimpleServer(getName()); SimpleHttpServer simple = server.getSimpleHttpServer(); simple.setRequestHandler(new HttpRequestHandler() { public boolean processRequest(SimpleHttpServerConnection conn, SimpleRequest request) throws IOException { trace("Responding to request but never provide only 50% of body" + request.getRequestLine()); ResponseWriter w = conn.getWriter(); writeLines(w, new String[] { "HTTP/1.0 200 OK", "Content-Length: " + len, "Content-Type: text/plain; charset=UTF-8", "" }); w.flush(); for (int i = 0; i < len / 2; i++) { w.write("x"); } w.flush(); conn.setKeepAlive(true); try { // give it a bit of time to receive the data Thread.sleep(200); } catch (InterruptedException e) { } return stalledInRequestHandler(doCancel); } }); try { // path does not matter as server does not respond. testReceive(server.getServerURL() + "/foo", lw); assertHasEvent(startConnectEvents, IFileTransferConnectStartEvent.class); assertHasEvent(startEvents, IIncomingFileTransferReceiveStartEvent.class); assertHasMoreThanEventCount(dataEvents, IIncomingFileTransferReceiveDataEvent.class, 0); assertDoneCancelled(); assertNotNull(tmpFile); assertTrue(tmpFile.exists()); assertEquals(len / 2, tmpFile.length()); assertFalse(socketInReadWrapper.inRead); socketEvents.validateOneSocketCreatedAndClosed(); } finally { server.shutdown(); } }