/*******************************************************************************
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2013,2014 by Peter Pilgrim, Addiscombe, Surrey, XeNoNiQUe UK
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU GPL v3.0
* which accompanies this distribution, and is available at:
* http://www.gnu.org/licenses/gpl-3.0.txt
*
* Developers:
* Peter Pilgrim -- design, development and implementation
* -- Blog: http://www.xenonique.co.uk/blog/
* -- Twitter: @peter_pilgrim
*
* Contributors:
*
*******************************************************************************/
package je7hb.common.webcontainer.embedded.glassfish;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
* The type EmbeddedRunner
*
* @author Peter Pilgrim
*/
public class EmbeddedAsyncReaderRunner extends AbstractEmbeddedRunner {
private static final String LOREM_IPSUM =
"Lorem ipsum dolor sit amet, consectetur adipisicing " +
"elit, sed do eiusmod tempor incididunt ut labore et " +
"dolore magna aliqua. Ut enim ad minim veniam, quis " +
"nostrud exercitation ullamco laboris nisi ut " +
"aliquip ex ea commodo consequat. Duis aute irure " +
"dolor in reprehenderit in voluptate velit esse " +
"cillum dolore eu fugiat nulla pariatur. Excepteur " +
"sint occaecat cupidatat non proident, sunt in " +
"culpa qui officia deserunt mollit anim id " +
"est laborum.";
public EmbeddedAsyncReaderRunner(int port) {
super(port);
}
public static void main(String args[]) throws Exception {
EmbeddedAsyncReaderRunner runner =
(EmbeddedAsyncReaderRunner)
new EmbeddedAsyncReaderRunner(8080).init().start();
runner.deployWithRename(
"build/libs/ch06-servlets-basic-1.0.war", "mywebapp");
Thread.sleep(1000);
String path = String.format(
"http://localhost:%d/%s/%s", 8080, "mywebapp", "reader");
URL url = new URL(path);
System.out.printf("Client connecting to server on path %s\n", path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setChunkedStreamingMode(2);
conn.setDoOutput(true);
conn.connect();
try (BufferedWriter output = new BufferedWriter(
new OutputStreamWriter(conn.getOutputStream()))) {
System.out.println("Sending data ...");
output.write("Beginning Text");
output.flush();
System.out.println("Sleeping ...");
Thread.sleep(3000);
System.out.println("Sending more data ...");
StringTokenizer stk = new StringTokenizer(LOREM_IPSUM," \t,.");
while ( stk.hasMoreTokens()) {
output.write( stk.nextToken());
output.flush();
Thread.sleep(200);
}
System.out.println("Finishing client");
output.write("Ending Text");
output.flush();
output.close();
}
System.out.println("Check standard console ");
Thread.sleep(1000);
System.out.println("Disconnecting and shutdown");
conn.disconnect();
runner.stop();
System.exit(0);
}
}