Hi Ryan / Alexey,
This is a much better approach in my opinion. I've just played around
with it a bit and it is much more usable. However, there are still a
couple of issues which I came across and which I think need addressing.
Let me know what you think.
While I can create a NIOTransportBuilder which can be used to construct
new TCP NIO transports, I am unable to fully configure them as far as I
can see. For example, I can configure things like the strategy and the
thread pool configuration, but I am not able to configure features like
keep alive, TCP no delay, etc. It would be nice to be able to be able to
do this.
Obviously these are transport protocol specific (UDP, TCP), which brings
me onto the next point (albeit minor): the build method loses type
information forcing application to have to do stuff like this:
final TCPNIOTransport transport =
*(TCPNIOTransport)* NIOTransportBuilder.defaultTCPTransportBuilder().build();
Therefore, could you consider providing a class hierarchy
(NIOTransportBuilder, TCPNIOTransportBuilder, UDPNIOTransportBuilder)
using a covariant return type for the build() method? The sub-classes
could provide protocol specific setters for things like TCP no delay,
etc. For example:
public abstract class NIOTransportBuilder {
// Override and use covariance.
public abstract NIOTransport build();
// Getters/setters common to both TCP and UDP.
public NIOTransportBuilder setIOStrategy(IOStrategy strategy) {
... }
...
}
public class TCPNIOTransportBuilder extends NIOTransportBuilder {
// Use covariance.
public TCPNIOTransport build() { ... }
// Getters/setters specific to TCP.
public TCPNIOTransportBuilder setTcpNoDelay(final boolean
tcpNoDelay) { ... }
...
}
This will allow transport configuration to be fully decoupled from
instantiation which I think is important if instantiation is performed
within a library out of reach from the application code.
Does this make sense?
Matt
On 03/01/11 23:58, rlubke_at_java.net wrote:
> Project: grizzly
> Repository: svn
> Revision: 5606
> Author: rlubke
> Date: 2011-01-03 22:58:01 UTC
> Link:
>
> Log Message:
> ------------
> - remove TransportFactory in favor of leveraging the builder pattern (NIOTransportBuilder) instead.
> * removed the concept of a global thread pool that was maintained by the
> TransportFactory.
> * Each transport will now have it's own pool for SelectorRunners only and,
> depending on the IOStrategy being used, a separate pool for worker threads.
>
>
>
>
> Revisions:
> ----------
> 5606
>
>
> Modified Paths:
> ---------------
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/ssl/SSLEncoderTransformer.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/AbstractTransport.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/strategies/WorkerThreadIOStrategy.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/memory/Buffers.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/SelectorRunner.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/StandaloneTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/IdleConnectionFilterTest.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpResponseStreamsTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/memory/MemoryUtils.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/SSLTest.java
> branches/2dot0/code/modules/websockets/src/main/java/org/glassfish/grizzly/websockets/frame/FixedLengthFrame.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/UDPNIOTransportTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/threadpool/GrizzlyExecutorService.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpRequestParseTest.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/KeepAliveTest.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/SkipRemainderTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/ssl/SSLDecoderTransformer.java
> branches/2dot0/code/modules/websockets/src/main/java/org/glassfish/grizzly/websockets/SecKey.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/transport/UDPNIOTransport.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/Transport.java
> branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GenericGrizzlyListener.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/CompositeBufferTest.java
> branches/2dot0/code/modules/rcm/src/test/java/org/glassfish/grizzly/rcm/RCMTest.java
> branches/2dot0/code/modules/websockets/src/test/java/org/glassfish/grizzly/websockets/WebSocketsHandshakeTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/ByteBufferStreamsTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/zip/GZipEncoder.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/AbstractTransformer.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpResponseParseTest.java
> branches/2dot0/code/modules/websockets/src/test/java/org/glassfish/grizzly/websockets/WSCommTest.java
> branches/2dot0/code/modules/http/src/main/java/org/glassfish/grizzly/http/Cookie.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/ProtocolChainCodecTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/strategies/SameThreadIOStrategy.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/BuffersBufferTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/TCPNIOTransportTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/GZipTest.java
> branches/2dot0/code/modules/websockets/src/main/java/org/glassfish/grizzly/websockets/frame/StreamFrame.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/JmxBasicTest.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/URIDecoderTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/CompositeBufferInStreamTest.java
> branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/BasicPUTest.java
> branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/HttpServer.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOInputSourcesTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/transport/TCPNIOTransport.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpCommTest.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpInputStreamsTest.java
> branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/NetworkListener.java
> branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOOutputSinksTest.java
> branches/2dot0/code/modules/websockets/src/test/java/org/glassfish/grizzly/websockets/WSSCommTest.java
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/memory/BuffersBuffer.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/ContentTest.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/GZipEncodingTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/FilterChainTest.java
> branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpSemanticsTest.java
> branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/SSLAndPlainTest.java
> branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GrizzlyConfig.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/AsyncWriteQueueTest.java
> branches/2dot0/code/modules/grizzly/src/test/java/org/glassfish/grizzly/FilterChainReadTest.java
>
>
> Added Paths:
> ------------
> branches/2dot0/code/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
>
>
> Diffs:
> ------
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/GZipEncodingTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/GZipEncodingTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/GZipEncodingTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,7 +43,7 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChain;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> @@ -120,14 +120,14 @@
> result.setStatusCode(200);
> result.addHeader("content-encoding", "gzip");
>
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + final MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
> result.setContent(Buffers.wrap(mm, "Echo:<nothing>"));
> doTest(request, result, gzipServerContentEncoding, null);
> }
>
>
> public void testGZipRequest() throws Throwable {
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + final MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> String reqString = "GZipped hello. Works?";
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> @@ -176,7 +176,7 @@
> }
> });
>
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + final MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> String reqString = generateBigString(16384);
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> @@ -225,7 +225,7 @@
> }
> });
>
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + final MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> String reqString = generateBigString(16384);
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> @@ -288,10 +288,10 @@
> filterChainBuilder.add(new SimpleResponseFilter());
> FilterChain filterChain = filterChainBuilder.build();
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChain);
>
> - TCPNIOTransport ctransport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport ctransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> try {
> transport.bind(PORT);
> transport.start();
> @@ -327,7 +327,6 @@
> } finally {
> transport.stop();
> ctransport.stop();
> - TransportFactory.getInstance().close();
> reportThreadErrors();
> }
> }
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpRequestParseTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpRequestParseTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpRequestParseTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,6 +40,7 @@
>
> package org.glassfish.grizzly.http.core;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.HttpPacket;
> import org.glassfish.grizzly.http.HttpContent;
> import org.glassfish.grizzly.http.HttpRequestPacket;
> @@ -47,7 +48,6 @@
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> import org.glassfish.grizzly.StandaloneProcessor;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -165,7 +165,7 @@
> @SuppressWarnings({"unchecked"})
> private HttpPacket doTestDecoder(String request, int limit) {
>
> - MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
> Buffer input = Buffers.wrap(mm, request);
>
> HttpServerFilter filter = new HttpServerFilter(true, limit, null, null);
> @@ -196,7 +196,7 @@
> filterChainBuilder.add(new HTTPRequestCheckFilter(parseResult,
> method, requestURI, protocol, Collections.<String, Pair<String, String>>emptyMap()));
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChainBuilder.build());
>
> try {
> @@ -235,7 +235,6 @@
> }
>
> transport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> @@ -287,7 +286,7 @@
> private final SocketAddress peerAddress;
>
> public StandaloneConnection() {
> - super(TransportFactory.getInstance().createTCPTransport());
> + super(NIOTransportBuilder.defaultTCPTransportBuilder().build());
> localAddress = new InetSocketAddress("127.0.0.1", 0);
> peerAddress = new InetSocketAddress("127.0.0.1", 0);
> }
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/URIDecoderTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/URIDecoderTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/URIDecoderTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,10 +40,10 @@
>
> package org.glassfish.grizzly.http.core;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.util.URLDecoder;
> import org.glassfish.grizzly.http.util.DataChunk;
> import org.glassfish.grizzly.Buffer;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.memory.MemoryManager;
> import java.net.URLEncoder;
> import java.nio.charset.Charset;
> @@ -75,7 +75,7 @@
> @SuppressWarnings({"unchecked"})
> private void testDecoder(String inputURI) throws Exception {
>
> - MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
> String encodedURI = URLEncoder.encode(inputURI, UTF8_CHARSET.name());
>
> Buffer b = Buffers.wrap(mm, encodedURI);
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpSemanticsTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpSemanticsTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpSemanticsTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,7 +43,7 @@
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.EmptyCompletionHandler;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.WriteResult;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.Filter;
> @@ -287,9 +287,9 @@
> filterChainBuilder.add(serverFilter);
> FilterChain filterChain = filterChainBuilder.build();
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChain);
> - TCPNIOTransport ctransport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport ctransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> try {
> transport.bind(PORT);
> transport.start();
> @@ -319,7 +319,6 @@
> } finally {
> transport.stop();
> ctransport.stop();
> - TransportFactory.getInstance().close();
> reportThreadErrors();
> }
> }
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpResponseParseTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpResponseParseTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpResponseParseTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,6 +40,7 @@
>
> package org.glassfish.grizzly.http.core;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.HttpPacket;
> import org.glassfish.grizzly.http.HttpContent;
> import org.glassfish.grizzly.http.HttpResponsePacket;
> @@ -47,7 +48,6 @@
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> import org.glassfish.grizzly.StandaloneProcessor;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -166,7 +166,7 @@
> @SuppressWarnings({"unchecked"})
> private HttpPacket doTestDecoder(String response, int limit) {
>
> - MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
> Buffer input = Buffers.wrap(mm, response);
>
> HttpClientFilter filter = new HttpClientFilter(limit);
> @@ -197,7 +197,7 @@
> filterChainBuilder.add(new HTTPResponseCheckFilter(parseResult,
> protocol, code, phrase, Collections.<String, Pair<String, String>>emptyMap()));
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChainBuilder.build());
>
> try {
> @@ -237,7 +237,6 @@
> }
>
> transport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> @@ -285,7 +284,7 @@
>
> protected static final class StandaloneConnection extends NIOConnection {
> public StandaloneConnection() {
> - super(TransportFactory.getInstance().createTCPTransport());
> + super(NIOTransportBuilder.defaultTCPTransportBuilder().build());
> }
>
> @Override
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/ContentTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/ContentTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/ContentTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,9 +40,9 @@
>
> package org.glassfish.grizzly.http.core;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.HttpRequestPacket;
> import org.glassfish.grizzly.Connection;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.WriteResult;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChain;
> @@ -82,7 +82,7 @@
> public void testExplicitContentLength() throws Exception {
> HttpRequestPacket httpRequest = HttpRequestPacket.builder().method("POST").protocol(Protocol.HTTP_1_1).uri("/default").contentLength(10).build();
> httpRequest.addHeader("Host", "localhost:" + PORT);
> - HttpContent content = httpRequest.httpContentBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "1234567890")).build();
> + HttpContent content = httpRequest.httpContentBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "1234567890")).build();
>
> doHttpRequestTest(content);
> }
> @@ -91,7 +91,7 @@
> public void testHeaderContentLength() throws Exception {
> HttpRequestPacket httpRequest = HttpRequestPacket.builder().method("POST").protocol(Protocol.HTTP_1_1).uri("/default").header("Content-Length", "10").build();
> httpRequest.addHeader("Host", "localhost:" + PORT);
> - HttpContent content = httpRequest.httpContentBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "1234567890")).build();
> + HttpContent content = httpRequest.httpContentBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "1234567890")).build();
>
> doHttpRequestTest(content);
> }
> @@ -100,7 +100,7 @@
> public void testSimpleChunked() throws Exception {
> HttpRequestPacket httpRequest = HttpRequestPacket.builder().method("POST").protocol(Protocol.HTTP_1_1).uri("/default").chunked(true).build();
> httpRequest.addHeader("Host", "localhost:" + PORT);
> - HttpContent content = httpRequest.httpTrailerBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "1234567890")).build();
> + HttpContent content = httpRequest.httpTrailerBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "1234567890")).build();
>
> doHttpRequestTest(content);
> }
> @@ -109,9 +109,9 @@
> public void testSeveralChunked() throws Exception {
> HttpRequestPacket httpRequest = HttpRequestPacket.builder().method("POST").protocol(Protocol.HTTP_1_1).uri("/default").chunked(true).build();
> httpRequest.addHeader("Host", "localhost:" + PORT);
> - HttpContent content1 = httpRequest.httpContentBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "1234567890")).build();
> - HttpContent content2 = httpRequest.httpContentBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "0987654321")).build();
> - HttpContent content3 = httpRequest.httpTrailerBuilder().content(Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), "final")).build();
> + HttpContent content1 = httpRequest.httpContentBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "1234567890")).build();
> + HttpContent content2 = httpRequest.httpContentBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "0987654321")).build();
> + HttpContent content3 = httpRequest.httpTrailerBuilder().content(Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, "final")).build();
>
> doHttpRequestTest(content1, content2, content3);
> }
> @@ -130,7 +130,7 @@
> filterChainBuilder.add(new HTTPRequestMergerFilter(parseResult));
> FilterChain filterChain = filterChainBuilder.build();
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChain);
>
> try {
> @@ -179,7 +179,6 @@
> }
>
> transport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpCommTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpCommTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/test/java/org/glassfish/grizzly/http/core/HttpCommTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,13 +40,13 @@
>
> package org.glassfish.grizzly.http.core;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.HttpClientFilter;
> import org.glassfish.grizzly.http.HttpContent;
> import org.glassfish.grizzly.http.HttpPacket;
> import org.glassfish.grizzly.http.HttpRequestPacket;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.WriteResult;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChain;
> @@ -91,7 +91,7 @@
> serverFilterChainBuilder.add(new HttpServerFilter());
> serverFilterChainBuilder.add(new DummyServerFilter());
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(serverFilterChainBuilder.build());
>
> Connection connection = null;
> @@ -142,7 +142,6 @@
> }
>
> transport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http/src/main/java/org/glassfish/grizzly/http/Cookie.java
> ===================================================================
> --- branches/2dot0/code/modules/http/src/main/java/org/glassfish/grizzly/http/Cookie.java (revision 5605)
> +++ branches/2dot0/code/modules/http/src/main/java/org/glassfish/grizzly/http/Cookie.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -59,7 +59,7 @@
> package org.glassfish.grizzly.http;
>
> import org.glassfish.grizzly.Buffer;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.http.util.CookieSerializerUtils;
> import org.glassfish.grizzly.memory.MemoryManager;
>
> @@ -547,7 +547,7 @@
>
> public Buffer asServerCookieBuffer(MemoryManager memoryManager) {
> if (memoryManager == null) memoryManager =
> - TransportFactory.getInstance().getDefaultMemoryManager();
> + NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> final Buffer buffer = memoryManager.allocate(4096);
> CookieSerializerUtils.serializeServerCookie(buffer, this);
> @@ -568,7 +568,7 @@
>
> public Buffer asClientCookieBuffer(MemoryManager memoryManager) {
> if (memoryManager == null) memoryManager =
> - TransportFactory.getInstance().getDefaultMemoryManager();
> + NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> final Buffer buffer = memoryManager.allocate(4096);
> CookieSerializerUtils.serializeClientCookies(buffer, this);
> Index: branches/2dot0/code/modules/rcm/src/test/java/org/glassfish/grizzly/rcm/RCMTest.java
> ===================================================================
> --- branches/2dot0/code/modules/rcm/src/test/java/org/glassfish/grizzly/rcm/RCMTest.java (revision 5605)
> +++ branches/2dot0/code/modules/rcm/src/test/java/org/glassfish/grizzly/rcm/RCMTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -42,6 +42,8 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import java.io.IOException;
> +
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> import org.glassfish.grizzly.filterchain.NextAction;
> import java.io.BufferedReader;
> @@ -55,7 +57,6 @@
> import java.nio.charset.CharsetEncoder;
> import java.util.Date;
> import junit.framework.TestCase;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.TransportFilter;
> @@ -144,7 +145,7 @@
> }
> });
>
> - transport = TransportFactory.getInstance().createTCPTransport();
> + transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(filterChainBuilder.build());
>
> transport.bind(port);
> @@ -157,7 +158,6 @@
> @Override
> protected void tearDown() throws Exception {
> transport.stop();
> - TransportFactory.getInstance().close();
> }
>
> public void testRCM() {
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/KeepAliveTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/KeepAliveTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/KeepAliveTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,8 +43,8 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.EmptyCompletionHandler;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.SocketConnectorHandler;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -90,7 +90,7 @@
>
> }, "/path");
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> final HttpClient client = new HttpClient(clientTransport);
>
> try {
> @@ -123,7 +123,6 @@
> client.close();
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> @@ -142,7 +141,7 @@
>
> }, "/path");
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> final HttpClient client = new HttpClient(clientTransport);
>
> try {
> @@ -186,7 +185,6 @@
> client.close();
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> @@ -208,7 +206,7 @@
> }, "/path");
> server.getListener("grizzly").getKeepAlive().setMaxRequestsCount(maxKeepAliveRequests);
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> final HttpClient client = new HttpClient(clientTransport);
>
> try {
> @@ -253,7 +251,6 @@
> client.close();
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOInputSourcesTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOInputSourcesTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOInputSourcesTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,7 +43,7 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -398,7 +398,7 @@
> throws Exception {
>
> final TCPNIOTransport clientTransport =
> - TransportFactory.getInstance().createTCPTransport();
> + (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> final HttpServer server = createWebServer(httpHandler);
> try {
> server.start();
> @@ -463,7 +463,7 @@
>
> if (content != null) {
> HttpContent.Builder cb = request.httpContentBuilder();
> - MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
> Buffer contentBuffer;
> if (encoding != null) {
> try {
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpResponseStreamsTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpResponseStreamsTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpResponseStreamsTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,7 +43,7 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -571,7 +571,7 @@
> sconfig.addHttpHandler(new TestHttpHandler(strategy), new String[] { "/*" });
>
> final FutureImpl<String> parseResult = SafeFutureImpl.create();
> - TCPNIOTransport ctransport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport ctransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> try {
> server.start();
>
> @@ -601,7 +601,6 @@
> } finally {
> server.stop();
> ctransport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/SkipRemainderTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/SkipRemainderTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/SkipRemainderTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,11 +40,11 @@
>
> package org.glassfish.grizzly.http.server;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.memory.Buffers;
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.SocketConnectorHandler;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.filterchain.FilterChainContext;
> @@ -155,7 +155,7 @@
> final LinkedTransferQueue<Integer> transferQueue)
> throws Exception, InterruptedException {
>
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> + final MemoryManager mm = NIOTransportBuilder.DEFAULT_MEMORY_MANAGER;
>
> final int contentSizeHalf = content.length / 2;
>
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpInputStreamsTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpInputStreamsTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/HttpInputStreamsTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -43,7 +43,7 @@
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> import org.glassfish.grizzly.filterchain.Filter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> @@ -934,7 +934,7 @@
> @SuppressWarnings({"unchecked"})
> private HttpPacket createRequest(final String method, final String content) {
> final Buffer contentBuffer = content != null ?
> - Buffers.wrap(TransportFactory.getInstance().getDefaultMemoryManager(), content) :
> + Buffers.wrap(NIOTransportBuilder.DEFAULT_MEMORY_MANAGER, content) :
> null;
>
> HttpRequestPacket.Builder b = HttpRequestPacket.builder();
> @@ -974,7 +974,7 @@
> ServerConfiguration sconfig = server.getServerConfiguration();
> sconfig.addHttpHandler(new SimpleResponseHttpHandler(strategy, testResult), "/*");
>
> - TCPNIOTransport ctransport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport ctransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> try {
> server.start();
> FilterChainBuilder clientFilterChainBuilder = FilterChainBuilder.stateless();
> @@ -1001,7 +1001,6 @@
> } finally {
> server.stop();
> ctransport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOOutputSinksTest.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOOutputSinksTest.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/test/java/org/glassfish/grizzly/http/server/NIOOutputSinksTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -42,7 +42,7 @@
>
> import org.glassfish.grizzly.Buffer;
> import org.glassfish.grizzly.Connection;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.asyncqueue.AsyncQueueWriter;
> import org.glassfish.grizzly.asyncqueue.TaskQueue;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> @@ -135,7 +135,7 @@
> });
>
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> clientTransport.setProcessor(filterChainBuilder.build());
> final AtomicInteger writeCounter = new AtomicInteger();
> final AtomicBoolean callbackInvoked = new AtomicBoolean(false);
> @@ -230,7 +230,6 @@
> } finally {
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
>
> }
> @@ -296,7 +295,7 @@
> });
>
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> clientTransport.setProcessor(filterChainBuilder.build());
> final AtomicInteger writeCounter = new AtomicInteger();
> final AtomicBoolean callbackInvoked = new AtomicBoolean(false);
> @@ -394,7 +393,6 @@
> } finally {
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
>
> }
> @@ -442,7 +440,7 @@
> }
> });
>
> - final TCPNIOTransport clientTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport clientTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> clientTransport.setProcessor(filterChainBuilder.build());
> final HttpHandler ga = new HttpHandler() {
>
> @@ -499,7 +497,6 @@
> } finally {
> clientTransport.stop();
> server.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/NetworkListener.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/NetworkListener.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/NetworkListener.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -42,7 +42,7 @@
>
> import org.glassfish.grizzly.Connection;
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.Filter;
> import org.glassfish.grizzly.filterchain.FilterChain;
> import org.glassfish.grizzly.http.ContentEncoding;
> @@ -117,7 +117,7 @@
> * The {_at_link TCPNIOTransport} used by this<code>NetworkListener</code>
> */
> private TCPNIOTransport transport =
> - TransportFactory.getInstance().createTCPTransport();
> + (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
>
>
> /**
> Index: branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/HttpServer.java
> ===================================================================
> --- branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/HttpServer.java (revision 5605)
> +++ branches/2dot0/code/modules/http-server/src/main/java/org/glassfish/grizzly/http/server/HttpServer.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2008-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -42,6 +42,7 @@
>
> import org.glassfish.grizzly.ConnectionProbe;
> import org.glassfish.grizzly.Grizzly;
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.Processor;
> import org.glassfish.grizzly.filterchain.FilterChain;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> @@ -58,7 +59,6 @@
> import java.util.logging.Level;
> import java.util.logging.Logger;
>
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.TransportProbe;
> import org.glassfish.grizzly.filterchain.TransportFilter;
> import org.glassfish.grizzly.http.ContentEncoding;
> @@ -391,7 +391,6 @@
> disableJMX();
> }
>
> - TransportFactory.getInstance().close();
> } catch (Exception e) {
> LOGGER.log(Level.WARNING, null, e);
> } finally {
> @@ -593,7 +592,7 @@
> @Override
> public Thread newThread(Runnable r) {
> final Thread newThread = new DefaultWorkerThread(
> - TransportFactory.getInstance().getDefaultAttributeBuilder(),
> + NIOTransportBuilder.DEFAULT_ATTRIBUTE_BUILDER,
> "HttpServer-" + threadCounter.getAndIncrement(),
> null,
> r);
> @@ -622,7 +621,7 @@
> @Override
> public Thread newThread(Runnable r) {
> final Thread newThread = new DefaultWorkerThread(
> - TransportFactory.getInstance().getDefaultAttributeBuilder(),
> + NIOTransportBuilder.DEFAULT_ATTRIBUTE_BUILDER,
> serverConfig.getName() + "-" + threadCounter.getAndIncrement(),
> null,
> r);
> Index: branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GrizzlyConfig.java
> ===================================================================
> --- branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GrizzlyConfig.java (revision 5605)
> +++ branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GrizzlyConfig.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -47,7 +47,6 @@
> import java.util.logging.Logger;
>
> import org.glassfish.grizzly.Grizzly;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.config.dom.NetworkConfig;
> import org.glassfish.grizzly.config.dom.NetworkListener;
> import org.glassfish.grizzly.memory.AbstractMemoryManager;
> @@ -83,13 +82,14 @@
> validateConfig(config);
> synchronized (listeners) {
> AbstractMemoryManager amm = null;
> - final MemoryManager mm = TransportFactory.getInstance().getDefaultMemoryManager();
> - if (mm instanceof AbstractMemoryManager) {
> - amm = (AbstractMemoryManager) mm;
> - }
> +
> for (final NetworkListener listener : config.getNetworkListeners().getNetworkListener()) {
> - final GrizzlyListener grizzlyListener = new GenericGrizzlyListener();
> + final GenericGrizzlyListener grizzlyListener = new GenericGrizzlyListener();
> grizzlyListener.configure(habitat, listener);
> + final MemoryManager mm = grizzlyListener.transport.getMemoryManager();
> + if (mm instanceof AbstractMemoryManager) {
> + amm = (AbstractMemoryManager) mm;
> + }
> listeners.add(grizzlyListener);
> final Thread thread = new DefaultWorkerThread(Grizzly.DEFAULT_ATTRIBUTE_BUILDER,
> grizzlyListener.getName(),
> Index: branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GenericGrizzlyListener.java
> ===================================================================
> --- branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GenericGrizzlyListener.java (revision 5605)
> +++ branches/2dot0/code/modules/config/src/main/java/org/glassfish/grizzly/config/GenericGrizzlyListener.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -56,8 +56,9 @@
> import java.util.concurrent.atomic.AtomicInteger;
> import java.util.logging.Level;
> import java.util.logging.Logger;
> +
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.SocketBinder;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.config.dom.Http;
> import org.glassfish.grizzly.config.dom.NetworkListener;
> import org.glassfish.grizzly.config.dom.PortUnification;
> @@ -118,7 +119,7 @@
> protected volatile String name;
> protected volatile InetAddress address;
> protected volatile int port;
> - protected NIOTransport transport;
> + NIOTransport transport;
> protected FilterChain rootFilterChain;
>
> private volatile ExecutorService auxExecutorService;
> @@ -248,7 +249,7 @@
> protected NIOTransport configureTCPTransport(final Habitat habitat,
> final Transport transportConfig) {
>
> - final TCPNIOTransport tcpTransport = TransportFactory.getInstance().createTCPTransport();
> + final TCPNIOTransport tcpTransport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> tcpTransport.setTcpNoDelay(Boolean.parseBoolean(transportConfig.getTcpNoDelay()));
> tcpTransport.setLinger(Integer.parseInt(transportConfig.getLinger()));
> tcpTransport.setServerConnectionBackLog(Integer.parseInt(transportConfig.getMaxConnectionsCount()));
> @@ -259,7 +260,7 @@
> protected NIOTransport configureUDPTransport(final Habitat habitat,
> final Transport transportConfig) {
>
> - return TransportFactory.getInstance().createUDPTransport();
> + return NIOTransportBuilder.defaultUDPTransportBuilder().build();
> }
>
> protected void configureProtocol(final Habitat habitat,
> @@ -476,7 +477,7 @@
> @Override
> public Thread newThread(Runnable r) {
> final Thread newThread = new DefaultWorkerThread(
> - TransportFactory.getInstance().getDefaultAttributeBuilder(),
> + transport.getAttributeBuilder(),
> getName() + "-" + threadCounter.getAndIncrement(),
> null,
> r);
> Index: branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/BasicPUTest.java
> ===================================================================
> --- branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/BasicPUTest.java (revision 5605)
> +++ branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/BasicPUTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -41,6 +41,8 @@
> package org.glassfish.grizzly.portunif;
>
> import java.nio.charset.Charset;
> +
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.filterchain.FilterChain;
> import java.io.IOException;
> import org.glassfish.grizzly.filterchain.BaseFilter;
> @@ -49,7 +51,6 @@
> import org.glassfish.grizzly.nio.transport.TCPNIOConnection;
> import java.util.concurrent.Future;
> import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.TransportFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.Connection;
> @@ -86,7 +87,7 @@
> .add(new StringFilter(CHARSET))
> .add(puFilter);
>
> - TCPNIOTransport transport = TransportFactory.getInstance().createTCPTransport();
> + TCPNIOTransport transport = (TCPNIOTransport) NIOTransportBuilder.defaultTCPTransportBuilder().build();
> transport.setProcessor(puFilterChainBuilder.build());
>
> try {
> @@ -123,7 +124,6 @@
> }
>
> transport.stop();
> - TransportFactory.getInstance().close();
> }
> }
>
> Index: branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/SSLAndPlainTest.java
> ===================================================================
> --- branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/SSLAndPlainTest.java (revision 5605)
> +++ branches/2dot0/code/modules/portunif/src/test/java/org/glassfish/grizzly/portunif/SSLAndPlainTest.java (revision 5606)
> @@ -1,7 +1,7 @@
> /*
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
> *
> - * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2007-2011 Oracle and/or its affiliates. All rights reserved.
> *
> * The contents of this file are subject to the terms of either the GNU
> * General Public License Version 2 only ("GPL") or the Common Development
> @@ -40,6 +40,7 @@
>
> package org.glassfish.grizzly.portunif;
>
> +import org.glassfish.grizzly.NIOTransportBuilder;
> import org.glassfish.grizzly.portunif.finders.SSLProtocolFinder;
> import org.glassfish.grizzly.utils.StringDecoder;
> import org.glassfish.grizzly.Buffer;
> @@ -54,7 +55,6 @@
> import java.util.concurrent.Future;
> import java.util.concurrent.TimeUnit;
> import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
> -import org.glassfish.grizzly.TransportFactory;
> import org.glassfish.grizzly.filterchain.TransportFilter;
> import org.glassfish.grizzly.filterchain.FilterChainBuilder;
> import org.glassfish.grizzly.Connection;
> @@ -146,7 +146,7 @@
> .add(new TransportFilter())
> .add(rootPuFilter);
>
> - TCPNIOTransport transport = Tra
> [truncated due to length]
>