List of usage examples for org.apache.commons.httpclient HttpClient getParams
public HttpClientParams getParams()
From source file:org.apache.nutch.protocol.httpclient.HttpResponse.java
/** * Fetches the given <code>url</code> and prepares HTTP response. * /*from w w w. ja v a 2s .c om*/ * @param http * An instance of the implementation class of this plugin * @param url * URL to be fetched * @param datum * Crawl data * @param followRedirects * Whether to follow redirects; follows redirect if and only if this * is true * @return HTTP response * @throws IOException * When an error occurs */ HttpResponse(Http http, URL url, CrawlDatum datum, boolean followRedirects) throws IOException { // Prepare GET method for HTTP request this.url = url; GetMethod get = new GetMethod(url.toString()); get.setFollowRedirects(followRedirects); get.setDoAuthentication(true); if (http.isIfModifiedSinceEnabled() && datum.getModifiedTime() > 0) { get.setRequestHeader("If-Modified-Since", HttpDateFormat.toString(datum.getModifiedTime())); } // Set HTTP parameters HttpMethodParams params = get.getParams(); if (http.getUseHttp11()) { params.setVersion(HttpVersion.HTTP_1_1); } else { params.setVersion(HttpVersion.HTTP_1_0); } params.makeLenient(); params.setContentCharset("UTF-8"); if (http.isCookieEnabled()) { params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); params.setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true); } else { params.setCookiePolicy(CookiePolicy.IGNORE_COOKIES); } // XXX (ab) not sure about this... the default is to retry 3 times; if // XXX the request body was sent the method is not retried, so there is // XXX little danger in retrying... // params.setParameter(HttpMethodParams.RETRY_HANDLER, null); if (http.isCookieEnabled() && datum.getMetaData().containsKey(http.COOKIE)) { String cookie = ((Text) datum.getMetaData().get(http.COOKIE)).toString(); get.addRequestHeader("Cookie", cookie); } try { HttpClient client = Http.getClient(); client.getParams().setParameter("http.useragent", http.getUserAgent()); // NUTCH-1941 code = client.executeMethod(get); Header[] heads = get.getResponseHeaders(); for (int i = 0; i < heads.length; i++) { headers.set(heads[i].getName(), heads[i].getValue()); } // Limit download size int contentLength = Integer.MAX_VALUE; String contentLengthString = headers.get(Response.CONTENT_LENGTH); if (contentLengthString != null) { try { contentLength = Integer.parseInt(contentLengthString.trim()); } catch (NumberFormatException ex) { throw new HttpException("bad content length: " + contentLengthString); } } if (http.getMaxContent() >= 0 && contentLength > http.getMaxContent()) { contentLength = http.getMaxContent(); } // always read content. Sometimes content is useful to find a cause // for error. InputStream in = get.getResponseBodyAsStream(); try { byte[] buffer = new byte[HttpBase.BUFFER_SIZE]; int bufferFilled = 0; int totalRead = 0; ByteArrayOutputStream out = new ByteArrayOutputStream(); while ((bufferFilled = in.read(buffer, 0, buffer.length)) != -1 && totalRead + bufferFilled <= contentLength) { totalRead += bufferFilled; out.write(buffer, 0, bufferFilled); } content = out.toByteArray(); } catch (Exception e) { if (code == 200) throw new IOException(e.toString()); // for codes other than 200 OK, we are fine with empty content } finally { if (in != null) { in.close(); } get.abort(); } StringBuilder fetchTrace = null; if (Http.LOG.isTraceEnabled()) { // Trace message fetchTrace = new StringBuilder( "url: " + url + "; status code: " + code + "; bytes received: " + content.length); if (getHeader(Response.CONTENT_LENGTH) != null) fetchTrace.append("; Content-Length: " + getHeader(Response.CONTENT_LENGTH)); if (getHeader(Response.LOCATION) != null) fetchTrace.append("; Location: " + getHeader(Response.LOCATION)); } // Extract gzip, x-gzip and deflate content if (content != null) { // check if we have to uncompress it String contentEncoding = headers.get(Response.CONTENT_ENCODING); if (contentEncoding != null && Http.LOG.isTraceEnabled()) fetchTrace.append("; Content-Encoding: " + contentEncoding); if ("gzip".equals(contentEncoding) || "x-gzip".equals(contentEncoding)) { content = http.processGzipEncoded(content, url); if (Http.LOG.isTraceEnabled()) fetchTrace.append("; extracted to " + content.length + " bytes"); } else if ("deflate".equals(contentEncoding)) { content = http.processDeflateEncoded(content, url); if (Http.LOG.isTraceEnabled()) fetchTrace.append("; extracted to " + content.length + " bytes"); } } // Logger trace message if (Http.LOG.isTraceEnabled()) { Http.LOG.trace(fetchTrace.toString()); } } finally { get.releaseConnection(); } }
From source file:org.apache.nutch.protocol.httpclient.proxy.HttpResponse.java
/** * Fetches the given <code>url</code> and prepares HTTP response. * /*from w ww . jav a 2s. c om*/ * @param http * An instance of the implementation class of this plugin * @param url * URL to be fetched * @param datum * Crawl data * @param followRedirects * Whether to follow redirects; follows redirect if and only if this * is true * @return HTTP response * @throws IOException * When an error occurs */ HttpResponse(Http http, URL url, CrawlDatum datum, boolean followRedirects) throws IOException { // Prepare GET method for HTTP request this.url = url; GetMethod get = new GetMethod(url.toString()); get.setFollowRedirects(followRedirects); get.setDoAuthentication(true); if (http.isIfModifiedSinceEnabled() && datum.getModifiedTime() > 0) { get.setRequestHeader("If-Modified-Since", HttpDateFormat.toString(datum.getModifiedTime())); } // Set HTTP parameters HttpMethodParams params = get.getParams(); if (http.getUseHttp11()) { params.setVersion(HttpVersion.HTTP_1_1); } else { params.setVersion(HttpVersion.HTTP_1_0); } params.makeLenient(); params.setContentCharset("UTF-8"); params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); params.setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true); // XXX (ab) not sure about this... the default is to retry 3 times; if // XXX the request body was sent the method is not retried, so there is // XXX little danger in retrying... // params.setParameter(HttpMethodParams.RETRY_HANDLER, null); try { HttpClient client = Http.getClient(); client.getParams().setParameter("http.useragent", http.getUserAgent()); // NUTCH-1941 code = client.executeMethod(get); Header[] heads = get.getResponseHeaders(); for (int i = 0; i < heads.length; i++) { headers.set(heads[i].getName(), heads[i].getValue()); } // Limit download size int contentLength = Integer.MAX_VALUE; String contentLengthString = headers.get(Response.CONTENT_LENGTH); if (contentLengthString != null) { try { contentLength = Integer.parseInt(contentLengthString.trim()); } catch (NumberFormatException ex) { throw new HttpException("bad content length: " + contentLengthString); } } if (http.getMaxContent() >= 0 && contentLength > http.getMaxContent()) { contentLength = http.getMaxContent(); } // always read content. Sometimes content is useful to find a cause // for error. InputStream in = get.getResponseBodyAsStream(); try { byte[] buffer = new byte[HttpBase.BUFFER_SIZE]; int bufferFilled = 0; int totalRead = 0; ByteArrayOutputStream out = new ByteArrayOutputStream(); while ((bufferFilled = in.read(buffer, 0, buffer.length)) != -1 && totalRead + bufferFilled <= contentLength) { totalRead += bufferFilled; out.write(buffer, 0, bufferFilled); } content = out.toByteArray(); } catch (Exception e) { if (code == 200) throw new IOException(e.toString()); // for codes other than 200 OK, we are fine with empty content } finally { if (in != null) { in.close(); } get.abort(); } StringBuilder fetchTrace = null; if (Http.LOG.isTraceEnabled()) { // Trace message fetchTrace = new StringBuilder( "url: " + url + "; status code: " + code + "; bytes received: " + content.length); if (getHeader(Response.CONTENT_LENGTH) != null) fetchTrace.append("; Content-Length: " + getHeader(Response.CONTENT_LENGTH)); if (getHeader(Response.LOCATION) != null) fetchTrace.append("; Location: " + getHeader(Response.LOCATION)); } // Extract gzip, x-gzip and deflate content if (content != null) { // check if we have to uncompress it String contentEncoding = headers.get(Response.CONTENT_ENCODING); if (contentEncoding != null && Http.LOG.isTraceEnabled()) fetchTrace.append("; Content-Encoding: " + contentEncoding); if ("gzip".equals(contentEncoding) || "x-gzip".equals(contentEncoding)) { content = http.processGzipEncoded(content, url); if (Http.LOG.isTraceEnabled()) fetchTrace.append("; extracted to " + content.length + " bytes"); } else if ("deflate".equals(contentEncoding)) { content = http.processDeflateEncoded(content, url); if (Http.LOG.isTraceEnabled()) fetchTrace.append("; extracted to " + content.length + " bytes"); } } // Logger trace message if (Http.LOG.isTraceEnabled()) { Http.LOG.trace(fetchTrace.toString()); } } finally { get.releaseConnection(); } }
From source file:org.apache.nutch.protocol.webdriver.HttpResponse.java
/** * Fetches the given <code>url</code> and prepares HTTP response. Fetch the * content using WebDriver to extract HTML from Ajax site, other responses are * fetches using HTTPClient./* w w w . j a v a 2s . com*/ * * @param http * An instance of the implementation class of this plugin * @param url * URL to be fetched * @param page * WebPage * @param followRedirects * Whether to follow redirects; follows redirect if and only if this * is true * @return HTTP response * @throws IOException * When an error occurs */ HttpResponse(Http http, URL url, WebPage page, Configuration conf) throws IOException { // Prepare GET method for HTTP request this.url = url; this.conf = conf; GetMethod get = new GetMethod(url.toString()); get.setFollowRedirects(false); get.setDoAuthentication(true); if (page.getModifiedTime() > 0) { get.setRequestHeader("If-Modified-Since", HttpDateFormat.toString(page.getModifiedTime())); } // Set HTTP parameters HttpMethodParams params = get.getParams(); if (http.getUseHttp11()) { params.setVersion(HttpVersion.HTTP_1_1); } else { params.setVersion(HttpVersion.HTTP_1_0); } params.makeLenient(); params.setContentCharset("UTF-8"); try { HttpClient client = Http.getClient(); client.getParams().setParameter("http.useragent", http.getUserAgent()); // NUTCH-1941 code = client.executeMethod(get); Header[] heads = get.getResponseHeaders(); for (int i = 0; i < heads.length; i++) { headers.set(heads[i].getName(), heads[i].getValue()); } readPlainContent(url); StringBuilder fetchTrace = null; if (Http.LOG.isTraceEnabled()) { // Trace message fetchTrace = new StringBuilder( "url: " + url + "; status code: " + code + "; bytes received: " + content.length); if (getHeader(Response.CONTENT_LENGTH) != null) fetchTrace.append("; Content-Length: " + getHeader(Response.CONTENT_LENGTH)); if (getHeader(Response.LOCATION) != null) fetchTrace.append("; Location: " + getHeader(Response.LOCATION)); } // add headers in metadata to row if (page.getHeaders() != null) { page.getHeaders().clear(); } for (String key : headers.names()) { page.getHeaders().put(new Utf8(key), new Utf8(headers.get(key))); } // Logger trace message if (Http.LOG.isTraceEnabled()) { Http.LOG.trace(fetchTrace.toString()); } } finally { get.releaseConnection(); } }
From source file:org.apache.ode.axis2.httpbinding.HttpHelper.java
public static void configure(HttpClient client, URI targetURI, Element authPart, HttpParams params) throws URIException { if (log.isDebugEnabled()) log.debug("Configuring http client..."); /* Do not forget to wire params so that endpoint properties are passed around Down the road, when the request will be executed, the hierarchy of parameters will be the following: (-> means "is parent of")//from w w w .jav a 2 s . c o m default params -> params from endpoint properties -> HttpClient -> HostConfig -> Method This wiring is done by HttpClient. */ client.getParams().setDefaults(params); // Here we make sure HttpClient will not handle the default headers. // Actually HttpClient *appends* default headers while we want them to be ignored if the process assign them client.getParams().setParameter(HostParams.DEFAULT_HEADERS, Collections.EMPTY_LIST); // proxy configuration if (ProxyConf.isProxyEnabled(params, targetURI.getHost())) { if (log.isDebugEnabled()) log.debug("ProxyConf"); ProxyConf.configure(client.getHostConfiguration(), client.getState(), (HttpTransportProperties.ProxyProperties) params .getParameter(Properties.PROP_HTTP_PROXY_PREFIX)); } // security // ... // authentication /* We're expecting the following element: <xs:complexType name="credentialType"> <xs:attribute name="scheme" type="xs:string" default="server-decide" /> <xs:attribute name="username" type="xs:string" /> <xs:attribute name="password" type="xs:string" /> </xs:complexType> <xs:element type="rest_connector:credentialType" name="credentials" /> */ if (authPart != null) { // the part must be defined with an element, so take the fist child Element credentialsElement = DOMUtils.getFirstChildElement(authPart); if (credentialsElement != null && credentialsElement.getAttributes().getLength() != 0) { String scheme = DOMUtils.getAttribute(credentialsElement, "scheme"); String username = DOMUtils.getAttribute(credentialsElement, "username"); String password = DOMUtils.getAttribute(credentialsElement, "password"); if (scheme != null && !"server-decides".equalsIgnoreCase(scheme) && !"basic".equalsIgnoreCase(scheme) && !"digest".equalsIgnoreCase(scheme)) { throw new IllegalArgumentException("Unknown Authentication scheme: [" + scheme + "] Accepted values are: Basic, Digest, Server-Decides"); } else { if (log.isDebugEnabled()) log.debug("credentials provided: scheme=" + scheme + " user=" + username + " password=********"); client.getState().setCredentials( new AuthScope(targetURI.getHost(), targetURI.getPort(), AuthScope.ANY_REALM, scheme), new UsernamePasswordCredentials(username, password)); // save one round trip if basic client.getParams().setAuthenticationPreemptive("basic".equalsIgnoreCase(scheme)); } } } }
From source file:org.apache.oodt.cas.filemgr.system.XmlRpcFileManagerClient.java
/** * <p> Constructs a new XmlRpcFileManagerClient with the given <code>url</code>. </p> * * @param url The url pointer to the xml rpc file manager service. * @param testConnection Whether or not to check if server at given url is alive. *//*from w w w . jav a2 s . com*/ public XmlRpcFileManagerClient(final URL url, boolean testConnection) throws ConnectionException { // set up the configuration, if there is any if (System.getProperty("org.apache.oodt.cas.filemgr.properties") != null) { String configFile = System.getProperty("org.apache.oodt.cas.filemgr.properties"); LOG.log(Level.INFO, "Loading File Manager Configuration Properties from: [" + configFile + "]"); try { System.getProperties().load(new FileInputStream(new File(configFile))); } catch (Exception e) { LOG.log(Level.INFO, "Error loading configuration properties from: [" + configFile + "]"); } } XmlRpcTransportFactory transportFactory = new XmlRpcTransportFactory() { public XmlRpcTransport createTransport() throws XmlRpcClientException { HttpClient client = new HttpClient(); client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new HttpMethodRetryHandler() { public boolean retryMethod(HttpMethod method, IOException e, int count) { if (count < Integer .getInteger("org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retries", 3)) { try { Thread.sleep(Integer.getInteger( "org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retry.interval.seconds", 0) * 1000); return true; } catch (Exception ignored) { } } return false; } }); CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(url, client); transport.setConnectionTimeout(Integer.getInteger( "org.apache.oodt.cas.filemgr.system.xmlrpc.connectionTimeout.minutes", 20) * 60 * 1000); transport.setTimeout( Integer.getInteger("org.apache.oodt.cas.filemgr.system.xmlrpc.requestTimeout.minutes", 60) * 60 * 1000); return transport; } public void setProperty(String arg0, Object arg1) { } }; client = new XmlRpcClient(url, transportFactory); fileManagerUrl = url; if (testConnection && !isAlive()) { throw new ConnectionException("Exception connecting to filemgr: [" + this.fileManagerUrl + "]"); } }
From source file:org.apache.servicemix.http.ConsumerEndpointTest.java
public void testHttpInOutUnderLoad() throws Exception { final int nbThreads = 16; final int nbRequests = 8; final int endpointTimeout = 100; final int echoSleepTime = 90; final int soTimeout = 60 * 1000 * 1000; final int listenerTimeout = 5000; ExchangeCompletedListener listener = new ExchangeCompletedListener(listenerTimeout); container.addListener(listener);//from w w w.ja v a 2 s . com HttpComponent http = new HttpComponent(); //http.getConfiguration().setJettyConnectorClassName(SocketConnector.class.getName()); HttpConsumerEndpoint ep = new HttpConsumerEndpoint(); ep.setService(new QName("urn:test", "svc")); ep.setEndpoint("ep"); ep.setTargetService(new QName("urn:test", "echo")); ep.setLocationURI("http://localhost:8192/ep1/"); ep.setTimeout(endpointTimeout); http.setEndpoints(new HttpEndpointType[] { ep }); container.activateComponent(http, "http"); final CountDownLatch latchRecv = new CountDownLatch(nbThreads * nbRequests); EchoComponent echo = new EchoComponent() { protected boolean transform(MessageExchange exchange, NormalizedMessage in, NormalizedMessage out) throws MessagingException { latchRecv.countDown(); try { Thread.sleep(echoSleepTime); } catch (InterruptedException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } out.setContent(in.getContent()); return true; } }; echo.setService(new QName("urn:test", "echo")); echo.setEndpoint("endpoint"); container.activateComponent(echo, "echo"); ((ExecutorFactoryImpl) container.getExecutorFactory()).getDefaultConfig().setMaximumPoolSize(16); container.start(); final List<Throwable> throwables = new CopyOnWriteArrayList<Throwable>(); final CountDownLatch latchSent = new CountDownLatch(nbThreads * nbRequests); for (int t = 0; t < nbThreads; t++) { new Thread() { public void run() { final SourceTransformer transformer = new SourceTransformer(); final HttpClient client = new HttpClient(); client.getParams().setSoTimeout(soTimeout); for (int i = 0; i < nbRequests; i++) { try { PostMethod post = new PostMethod("http://localhost:8192/ep1/"); post.setRequestEntity(new StringRequestEntity("<hello>world</hello>")); client.executeMethod(post); if (post.getStatusCode() != 200) { throw new InvalidStatusResponseException(post.getStatusCode()); } Node node = transformer.toDOMNode(new StreamSource(post.getResponseBodyAsStream())); log.info(transformer.toString(node)); assertEquals("world", textValueOfXPath(node, "/hello/text()")); } catch (Throwable t) { throwables.add(t); } finally { latchSent.countDown(); //System.out.println("[" + System.currentTimeMillis() + "] Request " + latch.getCount() + " processed"); } } } }.start(); } latchSent.await(); latchRecv.await(); listener.assertExchangeCompleted(); for (Throwable t : throwables) { t.printStackTrace(); } }
From source file:org.apache.servicemix.http.processors.ProviderProcessor.java
protected HttpClient getClient() { HttpComponent comp = (HttpComponent) endpoint.getServiceUnit().getComponent(); HttpClient client = comp.getClient(); client.getParams().setSoTimeout(endpoint.getTimeout()); client.getParams().getDefaults().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, endpoint.getTimeout());//from w ww . j a va2s .c o m return client; }
From source file:org.apache.sling.discovery.impl.topology.connector.TopologyConnectorClient.java
/** ping the server and pass the announcements between the two **/ void ping(final boolean force) { if (autoStopped) { // then we suppress any further pings! logger.debug("ping: autoStopped=true, hence suppressing any further pings."); return;//from w w w. j a v a 2s . co m } if (force) { backoffPeriodEnd = -1; } else if (backoffPeriodEnd > 0) { if (System.currentTimeMillis() < backoffPeriodEnd) { logger.debug("ping: not issueing a heartbeat due to backoff instruction from peer."); return; } else { logger.debug("ping: backoff period ended, issuing another ping now."); } } final String uri = connectorUrl.toString() + "." + clusterViewService.getSlingId() + ".json"; if (logger.isDebugEnabled()) { logger.debug("ping: connectorUrl=" + connectorUrl + ", complete uri=" + uri); } HttpClient httpClient = new HttpClient(); final PutMethod method = new PutMethod(uri); Announcement resultingAnnouncement = null; try { String userInfo = connectorUrl.getUserInfo(); if (userInfo != null) { Credentials c = new UsernamePasswordCredentials(userInfo); httpClient.getState() .setCredentials(new AuthScope(method.getURI().getHost(), method.getURI().getPort()), c); } Announcement topologyAnnouncement = new Announcement(clusterViewService.getSlingId()); topologyAnnouncement.setServerInfo(serverInfo); final ClusterView clusterView = clusterViewService.getClusterView(); topologyAnnouncement.setLocalCluster(clusterView); if (force) { logger.debug("ping: sending a resetBackoff"); topologyAnnouncement.setResetBackoff(true); } announcementRegistry.addAllExcept(topologyAnnouncement, clusterView, new AnnouncementFilter() { public boolean accept(final String receivingSlingId, final Announcement announcement) { // filter out announcements that are of old cluster instances // which I dont really have in my cluster view at the moment final Iterator<InstanceDescription> it = clusterViewService.getClusterView().getInstances() .iterator(); while (it.hasNext()) { final InstanceDescription instance = it.next(); if (instance.getSlingId().equals(receivingSlingId)) { // then I have the receiving instance in my cluster view // all fine then return true; } } // looks like I dont have the receiving instance in my cluster view // then I should also not propagate that announcement anywhere return false; } }); final String p = requestValidator.encodeMessage(topologyAnnouncement.asJSON()); if (logger.isDebugEnabled()) { logger.debug("ping: topologyAnnouncement json is: " + p); } requestValidator.trustMessage(method, p); if (config.isGzipConnectorRequestsEnabled()) { // tell the server that the content is gzipped: method.addRequestHeader("Content-Encoding", "gzip"); // and gzip the body: final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final GZIPOutputStream gzipOut = new GZIPOutputStream(baos); gzipOut.write(p.getBytes("UTF-8")); gzipOut.close(); final byte[] gzippedEncodedJson = baos.toByteArray(); method.setRequestEntity(new ByteArrayRequestEntity(gzippedEncodedJson, "application/json")); lastRequestEncoding = "gzip"; } else { // otherwise plaintext: method.setRequestEntity(new StringRequestEntity(p, "application/json", "UTF-8")); lastRequestEncoding = "plaintext"; } // independent of request-gzipping, we do accept the response to be gzipped, // so indicate this to the server: method.addRequestHeader("Accept-Encoding", "gzip"); DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false); httpClient.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler); httpClient.getHttpConnectionManager().getParams() .setConnectionTimeout(1000 * config.getConnectionTimeout()); httpClient.getHttpConnectionManager().getParams().setSoTimeout(1000 * config.getSoTimeout()); method.getParams().setSoTimeout(1000 * config.getSoTimeout()); httpClient.executeMethod(method); if (logger.isDebugEnabled()) { logger.debug("ping: done. code=" + method.getStatusCode() + " - " + method.getStatusText()); } lastStatusCode = method.getStatusCode(); lastResponseEncoding = null; if (method.getStatusCode() == HttpServletResponse.SC_OK) { final Header contentEncoding = method.getResponseHeader("Content-Encoding"); if (contentEncoding != null && contentEncoding.getValue() != null && contentEncoding.getValue().contains("gzip")) { lastResponseEncoding = "gzip"; } else { lastResponseEncoding = "plaintext"; } String responseBody = requestValidator.decodeMessage(method); // limiting to 16MB, should be way enough if (logger.isDebugEnabled()) { logger.debug("ping: response body=" + responseBody); } if (responseBody != null && responseBody.length() > 0) { Announcement inheritedAnnouncement = Announcement.fromJSON(responseBody); final long backoffInterval = inheritedAnnouncement.getBackoffInterval(); if (backoffInterval > 0) { // then reset the backoffPeriodEnd: /* minus 1 sec to avoid slipping the interval by a few millis */ this.backoffPeriodEnd = System.currentTimeMillis() + (1000 * backoffInterval) - 1000; logger.debug("ping: servlet instructed to backoff: backoffInterval=" + backoffInterval + ", resulting in period end of " + new Date(backoffPeriodEnd)); } else { logger.debug("ping: servlet did not instruct any backoff-ing at this stage"); this.backoffPeriodEnd = -1; } if (inheritedAnnouncement.isLoop()) { if (logger.isDebugEnabled()) { logger.debug( "ping: connector response indicated a loop detected. not registering this announcement from " + inheritedAnnouncement.getOwnerId()); } if (inheritedAnnouncement.getOwnerId().equals(clusterViewService.getSlingId())) { // SLING-3316 : local-loop detected. Check config to see if we should stop this connector if (config.isAutoStopLocalLoopEnabled()) { inheritedAnnouncement = null; // results in connected -> false and representsloop -> true autoStopped = true; // results in isAutoStopped -> true } } } else { inheritedAnnouncement.setInherited(true); if (announcementRegistry.registerAnnouncement(inheritedAnnouncement) == -1) { if (logger.isDebugEnabled()) { logger.debug( "ping: connector response is from an instance which I already see in my topology" + inheritedAnnouncement); } statusDetails = "receiving side is seeing me via another path (connector or cluster) already (loop)"; return; } } resultingAnnouncement = inheritedAnnouncement; statusDetails = null; } else { statusDetails = "no response body received"; } } else { statusDetails = "got HTTP Status-Code: " + lastStatusCode; } // SLING-2882 : reset suppressPingWarnings_ flag in success case suppressPingWarnings_ = false; } catch (URIException e) { logger.warn("ping: Got URIException: " + e + ", uri=" + uri); statusDetails = e.toString(); } catch (IOException e) { // SLING-2882 : set/check the suppressPingWarnings_ flag if (suppressPingWarnings_) { if (logger.isDebugEnabled()) { logger.debug("ping: got IOException: " + e + ", uri=" + uri); } } else { suppressPingWarnings_ = true; logger.warn("ping: got IOException [suppressing further warns]: " + e + ", uri=" + uri); } statusDetails = e.toString(); } catch (JSONException e) { logger.warn("ping: got JSONException: " + e); statusDetails = e.toString(); } catch (RuntimeException re) { logger.warn("ping: got RuntimeException: " + re, re); statusDetails = re.toString(); } finally { method.releaseConnection(); lastInheritedAnnouncement = resultingAnnouncement; lastPingedAt = System.currentTimeMillis(); } }
From source file:org.apache.sling.ide.osgi.impl.HttpOsgiClient.java
private HttpClient getHttpClient() { HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(DEFAULT_CONNECT_TIMEOUT_SECONDS * 1000); client.getHttpConnectionManager().getParams().setSoTimeout(DEFAULT_SOCKET_TIMEOUT_SECONDS * 1000); client.getParams().setAuthenticationPreemptive(true); Credentials defaultcreds = new UsernamePasswordCredentials(repositoryInfo.getUsername(), repositoryInfo.getPassword()); client.getState().setCredentials(// w ww. j a va 2 s . c om new AuthScope(repositoryInfo.getHost(), repositoryInfo.getPort(), AuthScope.ANY_REALM), defaultcreds); return client; }
From source file:org.apache.sling.maven.bundlesupport.AbstractBundleInstallMojo.java
/** * Get the http client//from www . jav a2 s .com */ protected HttpClient getHttpClient() { final HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); // authentication stuff client.getParams().setAuthenticationPreemptive(true); Credentials defaultcreds = new UsernamePasswordCredentials(user, password); client.getState().setCredentials(AuthScope.ANY, defaultcreds); return client; }