[undertow-dev] unit testing was Re: Reducing Use of Undertow IdentityManager

Bill Burke bburke at redhat.com
Fri May 31 07:35:56 EDT 2013



On 5/31/2013 1:22 AM, Stuart Douglas wrote:
>
>
> ----- Original Message -----
>> From: "Bill Burke" <bburke at redhat.com>
>> To: undertow-dev at lists.jboss.org
>> Sent: Friday, 31 May, 2013 9:42:13 AM
>> Subject: [undertow-dev] unit testing was Re: Reducing Use of Undertow	IdentityManager
>>
>>
>>
>> On 5/30/2013 4:24 PM, Anil Saldhana wrote:
>>> Right, Jason.  It is not just Bill.  I need Undertow as my embedded web
>>> container for junit testing. Currently I use Jetty.
>>>
>>
>> I'm currently using Jetty for my servlet integration tests but am going
>> to switch to using Wildfly as soon as the next JBoss Modules is released
>> and shipped with Wildfly.  The "mavenized modules" feature I added to
>> JBoss Modules allows you to run unit tests without having to extract
>> 170m of jboss distro with each maven module you're are testing with.
>> I've already prototyped it and it works pretty good.  Its a little
>> slower than Jetty, specifically in the shutdown phase, but its good
>> enough to be able to replace jetty.
>>
>> It will also be cool to replace the TJWS micro-servlet container I use
>> for in-browser unit testing.  But Undertow is going to have to beat the
>> sub-microsecond startup and shutdown time of TJWS for me to replace it.
>
>
> long s = System.currentTimeMillis();
> Undertow server = Undertow.builder()
>          .addListener(8080, "localhost")
>          .setDefaultHandler(new HttpHandler() {
>             @Override
>             public void handleRequest(final HttpServerExchange exchange) throws Exception {
>                  exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
>                  exchange.getResponseSender().send("Hello World");
>             }
>          }).build();
> server.start();
> long f = System.currentTimeMillis();
> System.out.print("Time was " + (f - s) + "ms\n");
>
> Results in
>
> Time was 14ms
>
> So way to slow, not even close to microsecond territory :-)
>
> Not sure what the time is spend on, probably class loading and binding to the socket.
>
> We use an embedded Undertow container in our test suite, and the servlet tests seem to
> take about 0.02s accourding to JUnit, which generally involves setting up a servlet deployment
> and making at least one HTTP request.
>

Maybe I was exagerating on the sub microsecond.  14ms is good enough.


-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the undertow-dev mailing list