use of com.lonepulse.robozombie.proxy.Zombie.Configuration in project RoboZombie by sahan.
the class ConfigurationService method getDefault.
/**
* <p>The <i>out-of-the-box</i> configuration for an instance of {@link HttpClient} which will be used for
* executing all endpoint requests. Below is a detailed description of all configured properties.</p>
* <br>
* <ul>
* <li>
* <p><b>HttpClient</b></p>
* <br>
* <p>It registers two {@link Scheme}s:</p>
* <br>
* <ol>
* <li><b>HTTP</b> on port <b>80</b> using sockets from {@link PlainSocketFactory#getSocketFactory}</li>
* <li><b>HTTPS</b> on port <b>443</b> using sockets from {@link SSLSocketFactory#getSocketFactory}</li>
* </ol>
*
* <p>It uses a {@link ThreadSafeClientConnManager} with the following parameters:</p>
* <br>
* <ol>
* <li><b>Redirecting:</b> enabled</li>
* <li><b>Connection Timeout:</b> 30 seconds</li>
* <li><b>Socket Timeout:</b> 30 seconds</li>
* <li><b>Socket Buffer Size:</b> 12000 bytes</li>
* <li><b>User-Agent:</b> via <code>System.getProperty("http.agent")</code></li>
* </ol>
* </li>
* </ul>
* @return the instance of {@link HttpClient} which will be used for request execution
* <br><br>
* @since 1.3.0
*/
@Override
public Configuration getDefault() {
return new Configuration() {
@Override
public HttpClient httpClient() {
try {
HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, true);
HttpConnectionParams.setConnectionTimeout(params, 30 * 1000);
HttpConnectionParams.setSoTimeout(params, 30 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 12000);
HttpProtocolParams.setUserAgent(params, System.getProperty("http.agent"));
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
ClientConnectionManager manager = new ThreadSafeClientConnManager(params, schemeRegistry);
return new DefaultHttpClient(manager, params);
} catch (Exception e) {
throw new ConfigurationFailedException(e);
}
}
};
}
use of com.lonepulse.robozombie.proxy.Zombie.Configuration in project RoboZombie by sahan.
the class ConfigurationService method register.
/**
* {@inheritDoc}
*/
@Override
public Configuration register(Class<?> endpointClass) {
try {
if (endpointClass.isAnnotationPresent(Config.class)) {
Configuration configuration = endpointClass.getAnnotation(Config.class).value().newInstance();
HttpClient httpClient = configuration.httpClient();
// currently the only configurable property
HttpClientDirectory.INSTANCE.bind(endpointClass, httpClient);
return configuration;
} else {
HttpClientDirectory.INSTANCE.bind(endpointClass, HttpClientDirectory.DEFAULT);
return new Configuration() {
};
}
} catch (Exception e) {
throw new ConfigurationFailedException(endpointClass, e);
}
}
Aggregations