/* ESXX - The friendly ECMAscript/XML Application Server Copyright (C) 2007-2010 Martin Blom <martin@blom.org> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. PLEASE NOTE THAT THIS FILE'S LICENSE IS DIFFERENT FROM THE REST OF ESXX! */ package groovyx.net.http.thirdparty; import java.net.*; import java.util.concurrent.TimeUnit; import org.apache.http.conn.*; import org.apache.http.params.*; import org.apache.http.conn.routing.HttpRoute; import org.apache.http.conn.scheme.*; public class GAEConnectionManager implements ClientConnectionManager { public GAEConnectionManager() { SocketFactory no_socket_factory = new SocketFactory() { public Socket connectSocket(Socket sock, String host, int port, InetAddress localAddress, int localPort, HttpParams params) { return null; } public Socket createSocket() { return null; } public boolean isSecure(Socket s) { return false; } }; schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", no_socket_factory, 80)); schemeRegistry.register(new Scheme("https", no_socket_factory, 443)); } public SchemeRegistry getSchemeRegistry() { return schemeRegistry; } public ClientConnectionRequest requestConnection(final HttpRoute route, final Object state) { return new ClientConnectionRequest() { public void abortRequest() { // Nothing to do } public ManagedClientConnection getConnection(long timeout, TimeUnit tunit) { return GAEConnectionManager.this.getConnection(route, state); } }; } public void releaseConnection(ManagedClientConnection conn, long validDuration, TimeUnit timeUnit) { } public void closeIdleConnections(long idletime, TimeUnit tunit) { } public void closeExpiredConnections() { } public void shutdown() { } private ManagedClientConnection getConnection(HttpRoute route, Object state) { return new GAEClientConnection(this, route, state); } private SchemeRegistry schemeRegistry; }