// function to do the join use case public static void share() throws Exception { HttpPost method = new HttpPost(url + "/share"); String ipAddress = null; Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); while (en.hasMoreElements()) { NetworkInterface ni = (NetworkInterface) en.nextElement(); if (ni.getName().equals("eth0")) { Enumeration<InetAddress> en2 = ni.getInetAddresses(); while (en2.hasMoreElements()) { InetAddress ip = (InetAddress) en2.nextElement(); if (ip instanceof Inet4Address) { ipAddress = ip.getHostAddress(); break; } } break; } } method.setEntity(new StringEntity(username + ';' + ipAddress, "UTF-8")); try { ResponseHandler<String> responseHandler = new BasicResponseHandler(); connIp = client.execute(method, responseHandler); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } // get present time date = new Date(); long start = date.getTime(); // Execute the vishwa share process Process p = Runtime.getRuntime().exec("java -jar vishwa/JVishwa.jar " + connIp); String ch = "alive"; System.out.println("Type kill to unjoin from the grid"); while (!ch.equals("kill")) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); ch = in.readLine(); } p.destroy(); date = new Date(); long end = date.getTime(); long durationInt = end - start; String duration = String.valueOf(durationInt); method = new HttpPost(url + "/shareAck"); method.setEntity(new StringEntity(username + ";" + duration, "UTF-8")); try { client.execute(method); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } }
// function to do the compute use case public static void compute() throws Exception { HttpPost method = new HttpPost(url + "/compute"); method.setEntity(new StringEntity(username, "UTF-8")); try { ResponseHandler<String> responseHandler = new BasicResponseHandler(); connIp = client.execute(method, responseHandler); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } System.out.println("Give the file name which has to be put in the grid for computation"); // input of the file name to be computed BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String name = in.readLine(); // get the absolute path of the current working directory File directory = new File("."); String pwd = directory.getAbsolutePath(); // get present time date = new Date(); long start = date.getTime(); String cmd = "java -classpath " + pwd + "/vishwa/JVishwa.jar:. " + name + " " + connIp; System.out.println(cmd); // Execute the vishwa compute process Process p = Runtime.getRuntime().exec(cmd); // wait till the compute process is completed // check for the status code (0 for successful termination) int status = p.waitFor(); if (status == 0) { System.out.println("Compute operation successful. Check the directory for results"); } date = new Date(); long end = date.getTime(); long durationInt = end - start; String duration = String.valueOf(durationInt); method = new HttpPost(url + "/computeAck"); method.setEntity(new StringEntity(username + ";" + duration, "UTF-8")); try { client.execute(method); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } }
@Override public long setTargetVersion(PublishingTargetItem target, long newVersion, String site) { long resoponseVersion = -1; if (target.getVersionUrl() != null && !target.getVersionUrl().isEmpty()) { LOGGER.debug("Set deployment agent version for target {0}", target.getName()); URL versionUrl = null; try { versionUrl = new URL(target.getVersionUrl()); } catch (MalformedURLException e) { LOGGER.error("Invalid set version URL for target [%s]", target.getName()); return resoponseVersion; } PostMethod postMethod = null; HttpClient client = null; try { postMethod = new PostMethod(target.getVersionUrl()); postMethod.addParameter(TARGET_REQUEST_PARAMETER, target.getTarget()); postMethod.addParameter(VERSION_REQUEST_PARAMETER, String.valueOf(newVersion)); String siteId = target.getSiteId(); if (StringUtils.isEmpty(siteId)) { siteId = site; } postMethod.addParameter(SITE_REQUEST_PARAMETER, site); client = new HttpClient(); int status = client.executeMethod(postMethod); if (status == HttpStatus.SC_OK) { String responseText = postMethod.getResponseBodyAsString(); if (responseText != null && !responseText.isEmpty()) { resoponseVersion = Long.parseLong(responseText); } else { resoponseVersion = 0; } } } catch (Exception e) { LOGGER.error( "Target {0} responded with error while setting target version. Set version failed for url {1}", target.getName(), target.getVersionUrl()); } finally { if (client != null) { HttpConnectionManager mgr = client.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } if (postMethod != null) { postMethod.releaseConnection(); } postMethod = null; client = null; } } return resoponseVersion; }
@Override public long getTargetVersion(PublishingTargetItem target, String site) { long version = -1; if (target.getVersionUrl() != null && !target.getVersionUrl().isEmpty()) { LOGGER.debug(String.format("Get deployment agent version for target ", target.getName())); URL versionUrl = null; try { versionUrl = new URL(target.getVersionUrl()); } catch (MalformedURLException e) { LOGGER.error(String.format("Invalid get version URL for target [%s]", target.getName()), e); } GetMethod getMethod = null; HttpClient client = null; try { getMethod = new GetMethod(target.getVersionUrl()); String siteId = target.getSiteId(); if (StringUtils.isEmpty(siteId)) { siteId = site; } getMethod.setQueryString( new NameValuePair[] { new NameValuePair(TARGET_REQUEST_PARAMETER, target.getTarget()), new NameValuePair(SITE_REQUEST_PARAMETER, siteId) }); client = new HttpClient(); int status = client.executeMethod(getMethod); if (status == HttpStatus.SC_OK) { String responseText = getMethod.getResponseBodyAsString(); if (responseText != null && !responseText.isEmpty()) { version = Long.parseLong(responseText.trim()); } else { version = 0; } } } catch (Exception e) { // LOGGER.error(String.format("Target (%s) responded with error while checking target // version. Get version failed for url %s", target.getName(), target.getVersionUrl())); } finally { if (client != null) { HttpConnectionManager mgr = client.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } if (getMethod != null) { getMethod.releaseConnection(); } getMethod = null; client = null; } } return version; }
public String getData(String url) { HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); String response = ""; try { ResponseHandler<String> responseHandler = new BasicResponseHandler(); response = client.execute(get, responseHandler); } catch (Exception e) { debug(e.toString()); } return response; }
public Result<InputStream> getInputStream(String endpoint) throws IOException { HttpClient cli = createClient(); HttpGet get = createGet(endpoint); HttpResponse res = cli.execute(get); Object result = null; if (res.getStatusLine().getStatusCode() == 200) result = res.getEntity().getContent(); else { RestResponse resp = new RestResponse(res); result = unmarshalPOJO(resp, InputStream.class); cli.getConnectionManager().shutdown(); } return new Result<InputStream>(result); }
private String getJsonResponse(String jsonUrl) throws PhrescoException { if (debugEnabled) { S_LOGGER.debug("Entering Method CIManagerImpl.getJsonResponse(String jsonUrl)"); S_LOGGER.debug("getJsonResponse() JSonUrl = " + jsonUrl); } try { HttpClient httpClient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(jsonUrl); ResponseHandler<String> responseHandler = new BasicResponseHandler(); return httpClient.execute(httpget, responseHandler); } catch (IOException e) { throw new PhrescoException(e); } }
/** * this is the primary method that sends a query to the CIPRes REST service. It expects to receive * an XML file, which it returns in Document if the root tag matc hes xmlRootTag */ public Document cipresQuery(HttpClient httpclient, String URL, String xmlRootTag) { if (StringUtil.blank(URL)) return null; try { HttpGet httpget = new HttpGet(URL); httpget.addHeader("cipres-appkey", CIPRESkey); try { HttpResponse response = httpclient.execute(httpget); HttpEntity responseEntity = response.getEntity(); InputStream instream = responseEntity.getContent(); BufferedReader br = new BufferedReader(new InputStreamReader(instream)); String line = ""; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line + StringUtil.lineEnding()); } Document cipresResponseDoc = loadXMLFile(xmlRootTag, sb.toString()); if (cipresResponseDoc != null && verbose) { ownerModule.logln(sb.toString()); } if (cipresResponseDoc == null) { Document errorDoc = loadXMLFile(sb.toString()); if (errorDoc != null) reportError(errorDoc, "Error in communicating with CIPRes", true); } EntityUtils.consume(response.getEntity()); return cipresResponseDoc; } catch (IOException e) { Debugg.printStackTrace(e); } catch (Exception e) { Debugg.printStackTrace(e); } } catch (Exception e) { Debugg.printStackTrace(e); } return null; }
/** * Tests method setRequestContent of HttpClient. * * @throws IOException I/O Exception */ @Test public void writeMultipartMessage() throws IOException { final HttpRequest req = new HttpRequest(); req.isMultipart = true; req.payloadAttrs.put("media-type", "multipart/alternative"); req.payloadAttrs.put("boundary", "boundary42"); final Part p1 = new Part(); p1.headers.put("Content-Type", "text/plain; charset=us-ascii"); p1.bodyAttrs.put("media-type", "text/plain"); final String plain = "...plain text...."; p1.bodyContent.add(Str.get(plain + '\n')); final Part p2 = new Part(); p2.headers.put("Content-Type", "text/richtext"); p2.bodyAttrs.put("media-type", "text/richtext"); final String rich = ".... richtext version..."; p2.bodyContent.add(Str.get(rich)); final Part p3 = new Part(); p3.headers.put("Content-Type", "text/x-whatever"); p3.bodyAttrs.put("media-type", "text/x-whatever"); final String fancy = ".... fanciest formatted version..."; p3.bodyContent.add(Str.get(fancy)); req.parts.add(p1); req.parts.add(p2); req.parts.add(p3); final FakeHttpConnection fakeConn = new FakeHttpConnection(new URL("http://www.test.com")); HttpClient.setRequestContent(fakeConn.getOutputStream(), req); final String expResult = "--boundary42" + CRLF + "Content-Type: text/plain; charset=us-ascii" + CRLF + CRLF + plain + Prop.NL + CRLF + "--boundary42" + CRLF + "Content-Type: text/richtext" + CRLF + CRLF + rich + CRLF + "--boundary42" + CRLF + "Content-Type: text/x-whatever" + CRLF + CRLF + fancy + CRLF + "--boundary42--" + CRLF; // Compare results assertEquals(expResult, fakeConn.getOutputStream().toString()); }
@Override public boolean checkConnection(PublishingTargetItem target) { boolean connOk = false; if (target.getStatusUrl() != null && !target.getStatusUrl().isEmpty()) { LOGGER.debug(String.format("Check deployment agent status for target ", target.getName())); URL statusUrl = null; try { statusUrl = new URL(target.getStatusUrl()); } catch (MalformedURLException e) { LOGGER.error( String.format( "Invalid endpoint status URL for publishing channel [%s]", target.getName()), e); } GetMethod getMethod = null; HttpClient client = null; try { getMethod = new GetMethod(target.getStatusUrl()); client = new HttpClient(); int status = client.executeMethod(getMethod); if (status == HttpStatus.SC_OK) { connOk = true; } } catch (Exception e) { LOGGER.error( String.format( "Target (%s) is not available. Status check failed for url %s", target.getName(), target.getStatusUrl())); } finally { if (client != null) { HttpConnectionManager mgr = client.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } if (getMethod != null) { getMethod.releaseConnection(); } getMethod = null; client = null; } } return connOk; }
/*.................................................................................................................*/ public void deleteJob(HttpClient httpclient, String URL) { HttpDelete httpdelete = new HttpDelete(URL); httpdelete.addHeader("cipres-appkey", CIPRESkey); try { HttpResponse response = httpclient.execute(httpdelete); } catch (IOException e) { Debugg.printStackTrace(e); } }
/** * Tests writing of body content when @method is raw and output is xs:hexBinary. * * @throws IOException I/O Exception */ @Test public void writeHex() throws IOException { // Case 1: content is xs:hexBinary final HttpRequest req1 = new HttpRequest(); req1.payloadAttrs.put("method", SerialMethod.BASEX.toString()); req1.bodyContent.add(new Hex(token("test"))); final FakeHttpConnection fakeConn1 = new FakeHttpConnection(new URL("http://www.test.com")); HttpClient.setRequestContent(fakeConn1.getOutputStream(), req1); assertEquals(fakeConn1.out.toString(Strings.UTF8), "test"); // Case 2: content is a node final HttpRequest req2 = new HttpRequest(); req2.payloadAttrs.put("method", SerialMethod.BASEX.toString()); final FElem e3 = new FElem("a").add("test"); req2.bodyContent.add(e3); final FakeHttpConnection fakeConn2 = new FakeHttpConnection(new URL("http://www.test.com")); HttpClient.setRequestContent(fakeConn2.getOutputStream(), req2); assertEquals(fakeConn2.out.toString(), "<a>test</a>"); }
/** * Tests writing of request content with different combinations of the body attributes media-type * and method. * * @throws IOException IO exception */ @Test public void writeMessage() throws IOException { // Case 1: No method, media-type='text/xml' final HttpRequest req1 = new HttpRequest(); final FakeHttpConnection fakeConn1 = new FakeHttpConnection(new URL("http://www.test.com")); req1.payloadAttrs.put(SerializerOptions.MEDIA_TYPE.name(), "text/xml"); // Node child final FElem e1 = new FElem("a").add("a"); req1.bodyContent.add(e1); // String item child req1.bodyContent.add(Str.get("<b>b</b>")); HttpClient.setRequestContent(fakeConn1.getOutputStream(), req1); assertEquals("<a>a</a><b>b</b>", fakeConn1.out.toString(Strings.UTF8)); // Case 2: No method, media-type='text/plain' final HttpRequest req2 = new HttpRequest(); final FakeHttpConnection fakeConn2 = new FakeHttpConnection(new URL("http://www.test.com")); req2.payloadAttrs.put(SerializerOptions.MEDIA_TYPE.name(), "text/plain"); // Node child final FElem e2 = new FElem("a").add("a"); req2.bodyContent.add(e2); // String item child req2.bodyContent.add(Str.get("<b>b</b>")); HttpClient.setRequestContent(fakeConn2.getOutputStream(), req2); assertEquals("a<b>b</b>", fakeConn2.out.toString()); // Case 3: method='text', media-type='text/xml' final HttpRequest req3 = new HttpRequest(); final FakeHttpConnection fakeConn3 = new FakeHttpConnection(new URL("http://www.test.com")); req3.payloadAttrs.put(SerializerOptions.MEDIA_TYPE.name(), "text/xml"); req3.payloadAttrs.put("method", "text"); // Node child final FElem e3 = new FElem("a").add("a"); req3.bodyContent.add(e3); // String item child req3.bodyContent.add(Str.get("<b>b</b>")); HttpClient.setRequestContent(fakeConn3.getOutputStream(), req3); assertEquals("a<b>b</b>", fakeConn3.out.toString()); }
void requestToken(String authorizationCode) { try { String url = this.service_.getTokenEndpoint(); StringBuilder ss = new StringBuilder(); ss.append("grant_type=authorization_code") .append("&client_id=") .append(Utils.urlEncode(this.service_.getClientId())) .append("&client_secret=") .append(Utils.urlEncode(this.service_.getClientSecret())) .append("&redirect_uri=") .append(Utils.urlEncode(this.service_.getGenerateRedirectEndpoint())) .append("&code=") .append(authorizationCode); HttpClient client = new HttpClient(this); client.setTimeout(15); client .done() .addListener( this, new Signal2.Listener<Exception, HttpMessage>() { public void trigger(Exception event1, HttpMessage event2) { OAuthProcess.this.handleToken(event1, event2); } }); Method m = this.service_.getTokenRequestMethod(); if (m == Method.Get) { boolean hasQuery = url.indexOf('?') != -1; url += (hasQuery ? '&' : '?') + ss.toString(); client.get(url); } else { HttpMessage post = new HttpMessage(); post.setHeader("Content-Type", "application/x-www-form-urlencoded"); post.addBodyText(ss.toString()); client.post(url, post); } } catch (Exception e) { e.printStackTrace(); } }
public static void main(String[] args) throws Exception { final Config config = Config.loadFromDisk("nexus-importer"); final HTTPCache http = HttpClient.createHttpCache(config); final XmlParser xmlParser = new XmlParser(); final BoneCPDataSource boneCp = config.createBoneCp(); XmlParser.debugXml = false; ObjectManager<NexusServerDto, ActorRef<NexusServer>> serverManager = new ObjectManager<>( "Nexus server", Collections.<NexusServerDto>emptySet(), new ObjectFactory<NexusServerDto, ActorRef<NexusServer>>() { public ActorRef<NexusServer> create(NexusServerDto server) { final NexusClient client = new NexusClient(http, server.url); String name = server.name; return ObjectUtil.threadedActor( name, config.nexusUpdateInterval, boneCp, "Nexus Server: " + name, new NexusServer(client, server, xmlParser)); } }); final AtomicBoolean shouldRun = new AtomicBoolean(true); config.addShutdownHook(currentThread(), shouldRun); while (shouldRun.get()) { try { List<NexusServerDto> newKeys; try (Connection c = boneCp.getConnection()) { newKeys = new NexusDao(c).selectServer(); } serverManager.update(newKeys); } catch (SQLException e) { e.printStackTrace(System.out); } synchronized (shouldRun) { shouldRun.wait(60 * 1000); } } serverManager.close(); }
// function to check login public static boolean login(String pass) throws Exception { HttpPost method = new HttpPost(url + "/login"); method.setEntity(new StringEntity(username + ';' + pass, "UTF-8")); try { ResponseHandler<String> responseHandler = new BasicResponseHandler(); connIp = client.execute(method, responseHandler); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } return connIp.equals("true"); }
/*.................................................................................................................*/ public void cipresDownload(HttpClient httpclient, String URL, String filePath) { HttpGet httpget = new HttpGet(URL); httpget.addHeader("cipres-appkey", CIPRESkey); try { HttpResponse response = httpclient.execute(httpget); HttpEntity responseEntity = response.getEntity(); BufferedInputStream bis = new BufferedInputStream(responseEntity.getContent()); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(filePath))); int inByte; while ((inByte = bis.read()) != -1) bos.write(inByte); bis.close(); bos.close(); EntityUtils.consume(response.getEntity()); } catch (IOException e) { Debugg.printStackTrace(e); } }
/* * (non-Javadoc) * @see org.jasig.portlet.weather.dao.IWeatherDao#find(java.lang.String) */ public Collection<Location> find(String location) { final String url = FIND_URL .replace("@KEY@", key) .replace("@QUERY@", QuietUrlCodec.encode(location, Constants.URL_ENCODING)); HttpMethod getMethod = new GetMethod(url); InputStream inputStream = null; try { // Execute the method. int statusCode = httpClient.executeMethod(getMethod); if (statusCode != HttpStatus.SC_OK) { final String statusText = getMethod.getStatusText(); throw new DataRetrievalFailureException( "get of '" + url + "' failed with status '" + statusCode + "' due to '" + statusText + "'"); } // Read the response body inputStream = getMethod.getResponseBodyAsStream(); List<Location> locations = deserializeSearchResults(inputStream); return locations; } catch (HttpException e) { throw new RuntimeException( "http protocol exception while getting data from weather service from: " + url, e); } catch (IOException e) { throw new RuntimeException( "IO exception while getting data from weather service from: " + url, e); } catch (JAXBException e) { throw new RuntimeException( "Parsing exception while getting data from weather service from: " + url, e); } finally { // try to close the inputstream IOUtils.closeQuietly(inputStream); // release the connection getMethod.releaseConnection(); } }
protected Object getAndDeserialize(String url, TemperatureUnit unit) { HttpMethod getMethod = new GetMethod(url); InputStream inputStream = null; try { // Execute the method. int statusCode = httpClient.executeMethod(getMethod); if (statusCode != HttpStatus.SC_OK) { final String statusText = getMethod.getStatusText(); throw new DataRetrievalFailureException( "get of '" + url + "' failed with status '" + statusCode + "' due to '" + statusText + "'"); } // Read the response body inputStream = getMethod.getResponseBodyAsStream(); Weather weather = deserializeWeatherResult(inputStream, unit); return weather; } catch (HttpException e) { throw new RuntimeException( "http protocol exception while getting data from weather service from: " + url, e); } catch (IOException e) { throw new RuntimeException( "IO exception while getting data from weather service from: " + url, e); } catch (JAXBException e) { throw new RuntimeException( "Parsing exception while getting data from weather service from: " + url, e); } catch (ParseException e) { throw new RuntimeException( "Parsing exception while getting data from weather service from: " + url, e); } finally { // try to close the inputstream IOUtils.closeQuietly(inputStream); // release the connection getMethod.releaseConnection(); } }
/** * Tests writing of request content when @src is set. * * @throws IOException I/O Exception */ @Test public void writeFromResource() throws IOException { // Create a file form which will be read final IOFile file = new IOFile(Prop.TMP, Util.className(FnHttpTest.class)); file.write(token("test")); // Request final HttpRequest req = new HttpRequest(); req.payloadAttrs.put("src", file.url()); req.payloadAttrs.put("method", "binary"); // HTTP connection final FakeHttpConnection fakeConn = new FakeHttpConnection(new URL("http://www.test.com")); HttpClient.setRequestContent(fakeConn.getOutputStream(), req); // Delete file file.delete(); assertEquals(fakeConn.out.toString(Strings.UTF8), "test"); }
/** The core method that initiates a job on CIPRes. */ public boolean postJob( HttpClient httpclient, MultipartEntityBuilder builder, MesquiteString jobURL) { if (builder == null) return false; String URL = baseURL + "/job/" + username; HttpPost httppost = new HttpPost(URL); httppost.addHeader("cipres-appkey", CIPRESkey); // some of this from // http://stackoverflow.com/questions/18964288/upload-a-file-through-an-http-form-via-multipartentitybuilder-with-a-progress HttpEntity cipresEntity = builder.build(); httppost.setEntity(cipresEntity); try { HttpResponse response = httpclient.execute(httppost); HttpEntity responseEntity = response.getEntity(); InputStream instream = responseEntity.getContent(); BufferedReader br = new BufferedReader(new InputStreamReader(instream)); StringBuffer sb = new StringBuffer(); String line = ""; while ((line = br.readLine()) != null) { sb.append(line + StringUtil.lineEnding()); } Document cipresResponseDoc = loadXMLFile("jobstatus", sb.toString()); // let's see how it went boolean success = false; if (cipresResponseDoc != null) { processJobSubmissionResponse(cipresResponseDoc, jobURL); if (verbose) ownerModule.logln(sb.toString()); if (jobURL != null) success = StringUtil.notEmpty(jobURL.getValue()); else success = true; } else { cipresResponseDoc = loadXMLFile(sb.toString()); reportError(cipresResponseDoc, "Error with CIPRes run", false); } EntityUtils.consume(response.getEntity()); return success; } catch (IOException e) { Debugg.printStackTrace(e); } return false; }
private void configureHttpMethod( boolean skipContentCache, CacheData cacheData, long onceTimeOut, HttpMethod httpMethod) { if (skipContentCache && null != cacheData) { if (null != cacheData.getLastModifiedHeader() && Constants.NULL != cacheData.getLastModifiedHeader()) { httpMethod.addRequestHeader(Constants.IF_MODIFIED_SINCE, cacheData.getLastModifiedHeader()); } if (null != cacheData.getMd5() && Constants.NULL != cacheData.getMd5()) { httpMethod.addRequestHeader(Constants.CONTENT_MD5, cacheData.getMd5()); } } httpMethod.addRequestHeader(Constants.ACCEPT_ENCODING, "gzip,deflate"); HttpMethodParams params = new HttpMethodParams(); params.setSoTimeout((int) onceTimeOut); httpMethod.setParams(params); httpClient .getHostConfiguration() .setHost( diamondConfigure.getDomainNameList().get(this.domainNamePos.get()), diamondConfigure.getPort()); }
protected void initHttpClient() { if (MockServer.isTestMode()) { return; } HostConfiguration hostConfiguration = new HostConfiguration(); hostConfiguration.setHost( diamondConfigure.getDomainNameList().get(this.domainNamePos.get()), diamondConfigure.getPort()); MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager(); connectionManager.closeIdleConnections(diamondConfigure.getPollingIntervalTime() * 10); HttpConnectionManagerParams params = new HttpConnectionManagerParams(); params.setStaleCheckingEnabled(diamondConfigure.isConnectionStaleCheckingEnabled()); params.setMaxConnectionsPerHost(hostConfiguration, diamondConfigure.getMaxHostConnections()); params.setMaxTotalConnections(diamondConfigure.getMaxTotalConnections()); params.setConnectionTimeout(diamondConfigure.getConnectionTimeout()); params.setSoTimeout(60 * 1000); connectionManager.setParams(params); httpClient = new HttpClient(connectionManager); httpClient.setHostConfiguration(hostConfiguration); }
/* (non-Javadoc) * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ public void afterPropertiesSet() throws Exception { final HttpConnectionManager httpConnectionManager = httpClient.getHttpConnectionManager(); final HttpConnectionManagerParams params = httpConnectionManager.getParams(); params.setConnectionTimeout(connectionTimeout); params.setSoTimeout(readTimeout); params.setParameter( HttpMethodParams.RETRY_HANDLER, new HttpMethodRetryHandler() { public boolean retryMethod( final HttpMethod method, final IOException exception, int executionCount) { if (executionCount >= timesToRetry) { // Do not retry if over max retry count return false; } if (exception instanceof NoHttpResponseException) { // Retry if the server dropped connection on us return true; } if (exception instanceof SocketException) { // Retry if the server reset connection on us return true; } if (exception instanceof SocketTimeoutException) { // Retry if the read timed out return true; } if (!method.isRequestSent()) { // Retry if the request has not been sent fully or // if it's OK to retry methods that have been sent return true; } // otherwise do not retry return false; } }); }
/** * Makes a rest request of any type at the specified urlSuffix. The urlSuffix should be of the * form /userService/users. If CS throws an exception it handled and transalated to a Openfire * exception if possible. This is done using the check fault method that tries to throw the best * maching exception. * * @param type Must be GET or DELETE * @param urlSuffix The url suffix of the rest request * @param xmlParams The xml with the request params, must be null if type is GET or DELETE only * @return The response as a xml doc. * @throws ConnectionException Thrown if there are issues perfoming the request. * @throws Exception Thrown if the response from Clearspace contains an exception. */ public Element executeRequest(HttpType type, String urlSuffix, String xmlParams) throws ConnectionException, Exception { if (Log.isDebugEnabled()) { Log.debug("Outgoing REST call [" + type + "] to " + urlSuffix + ": " + xmlParams); } String wsUrl = getConnectionURI() + WEBSERVICES_PATH + urlSuffix; String secret = getSharedSecret(); HttpClient client = new HttpClient(); HttpMethod method; // Configures the authentication client.getParams().setAuthenticationPreemptive(true); Credentials credentials = new UsernamePasswordCredentials(OPENFIRE_USERNAME, secret); AuthScope scope = new AuthScope(host, port, AuthScope.ANY_REALM); client.getState().setCredentials(scope, credentials); // Creates the method switch (type) { case GET: method = new GetMethod(wsUrl); break; case POST: PostMethod pm = new PostMethod(wsUrl); StringRequestEntity requestEntity = new StringRequestEntity(xmlParams); pm.setRequestEntity(requestEntity); method = pm; break; case PUT: PutMethod pm1 = new PutMethod(wsUrl); StringRequestEntity requestEntity1 = new StringRequestEntity(xmlParams); pm1.setRequestEntity(requestEntity1); method = pm1; break; case DELETE: method = new DeleteMethod(wsUrl); break; default: throw new IllegalArgumentException(); } method.setRequestHeader("Accept", "text/xml"); method.setDoAuthentication(true); try { // Executes the request client.executeMethod(method); // Parses the result String body = method.getResponseBodyAsString(); if (Log.isDebugEnabled()) { Log.debug("Outgoing REST call results: " + body); } // Checks the http status if (method.getStatusCode() != 200) { if (method.getStatusCode() == 401) { throw new ConnectionException( "Invalid password to connect to Clearspace.", ConnectionException.ErrorType.AUTHENTICATION); } else if (method.getStatusCode() == 404) { throw new ConnectionException( "Web service not found in Clearspace.", ConnectionException.ErrorType.PAGE_NOT_FOUND); } else if (method.getStatusCode() == 503) { throw new ConnectionException( "Web service not avaible in Clearspace.", ConnectionException.ErrorType.SERVICE_NOT_AVAIBLE); } else { throw new ConnectionException( "Error connecting to Clearspace, http status code: " + method.getStatusCode(), new HTTPConnectionException(method.getStatusCode()), ConnectionException.ErrorType.OTHER); } } else if (body.contains("Clearspace Upgrade Console")) { // TODO Change CS to send a more standard error message throw new ConnectionException( "Clearspace is in an update state.", ConnectionException.ErrorType.UPDATE_STATE); } Element response = localParser.get().parseDocument(body).getRootElement(); // Check for exceptions checkFault(response); // Since there is no exception, returns the response return response; } catch (DocumentException e) { throw new ConnectionException( "Error parsing the response of Clearspace.", e, ConnectionException.ErrorType.OTHER); } catch (HttpException e) { throw new ConnectionException( "Error performing http request to Clearspace", e, ConnectionException.ErrorType.OTHER); } catch (UnknownHostException e) { throw new ConnectionException( "Unknown Host " + getConnectionURI() + " trying to connect to Clearspace", e, ConnectionException.ErrorType.UNKNOWN_HOST); } catch (IOException e) { throw new ConnectionException( "Error peforming http request to Clearspace.", e, ConnectionException.ErrorType.OTHER); } finally { method.releaseConnection(); } }
String getConfigureInformation( String dataId, String group, long timeout, boolean skipContentCache) { start(); if (!isRun) { throw new RuntimeException( "DiamondSubscriber is not running, so can't fetch from ConfigureInformation"); } if (null == group) { group = Constants.DEFAULT_GROUP; } // =======================ʹ�ò���ģʽ======================= if (MockServer.isTestMode()) { return MockServer.getConfigInfo(dataId, group); } if (!skipContentCache) { String key = makeCacheKey(dataId, group); String content = contentCache.get(key); if (content != null) { return content; } } long waitTime = 0; String uri = getUriString(dataId, group); if (log.isInfoEnabled()) { log.info(uri); } CacheData cacheData = getCacheData(dataId, group); int retryTimes = this.getDiamondConfigure().getRetrieveDataRetryTimes(); log.info("Retry times is " + retryTimes); int tryCount = 0; while (0 == timeout || timeout > waitTime) { tryCount++; if (tryCount > retryTimes + 1) { log.warn("Retry time reach the limit, so break"); break; } log.info("Fetch config " + tryCount + "times, waitTime:" + waitTime); long onceTimeOut = getOnceTimeOut(waitTime, timeout); waitTime += onceTimeOut; HttpMethod httpMethod = new GetMethod(uri); configureHttpMethod(skipContentCache, cacheData, onceTimeOut, httpMethod); try { int httpStatus = httpClient.executeMethod(httpMethod); switch (httpStatus) { case SC_OK: { String result = getSuccess(dataId, group, cacheData, httpMethod); return result; } case SC_NOT_MODIFIED: { String result = getNotModified(dataId, cacheData, httpMethod); return result; } case SC_NOT_FOUND: { log.warn("DataID:" + dataId + "not found"); cacheData.setMd5(Constants.NULL); this.snapshotConfigInfoProcessor.removeSnapshot(dataId, group); return null; } case SC_SERVICE_UNAVAILABLE: { rotateToNextDomain(); } break; default: { log.warn("HTTP State: " + httpStatus + ":" + httpClient.getState()); rotateToNextDomain(); } } } catch (HttpException e) { log.error("Fetch config HttpException", e); rotateToNextDomain(); } catch (IOException e) { log.error("Fetch config IOException", e); rotateToNextDomain(); } catch (Exception e) { log.error("Unknown Exception", e); rotateToNextDomain(); } finally { httpMethod.releaseConnection(); } } throw new RuntimeException( "Fetch config timeout, DataID=" + dataId + ", Group=" + group + ",timeout=" + timeout); }
@Override public void deployItemsToTarget( String site, List<PublishingSyncItem> filteredItems, PublishingTargetItem target) throws ContentNotFoundForPublishingException, UploadFailedException { LOGGER.debug( "Start deploying items for site \"{0}\", target \"{1}\", number of items \"{2}\"", site, target.getName(), filteredItems.size()); URL requestUrl = null; try { requestUrl = new URL(target.getServerUrl()); } catch (MalformedURLException e) { LOGGER.error("Invalid server URL for target {0}", target.getName()); throw new UploadFailedException(site, target.getName(), target.getServerUrl(), e); } ByteArrayPartSource baps = null; PartSource metadataPart = null; StringPart stringPart = null; FilePart filePart = null; int numberOfBuckets = filteredItems.size() / target.getBucketSize() + 1; Iterator<PublishingSyncItem> iter = filteredItems.iterator(); LOGGER.debug( "Divide all deployment items into {0} bucket(s) for target {1}", numberOfBuckets, target.getName()); List<DeploymentEventItem> eventItems = new ArrayList<DeploymentEventItem>(); for (int bucketIndex = 0; bucketIndex < numberOfBuckets; bucketIndex++) { int cntFiles = 0; StringBuilder sbDeletedFiles = new StringBuilder(); List<Part> formParts = new ArrayList<Part>(); formParts.add(new StringPart(PASSWORD_REQUEST_PARAMETER, target.getPassword())); formParts.add(new StringPart(TARGET_REQUEST_PARAMETER, target.getTarget())); String siteId = target.getSiteId(); if (StringUtils.isEmpty(siteId)) { siteId = site; } formParts.add(new StringPart(SITE_REQUEST_PARAMETER, siteId)); LOGGER.debug( "Preparing deployment items (bucket {0}) for target {1}", bucketIndex + 1, target.getName()); int loopSize = (filteredItems.size() - (bucketIndex * target.getBucketSize()) > target.getBucketSize()) ? target.getBucketSize() : filteredItems.size() - bucketIndex * target.getBucketSize(); for (int j = 0; j < loopSize; j++) { if (iter.hasNext()) { PublishingSyncItem item = iter.next(); LOGGER.debug( "Parsing \"{0}\" , site \"{1}\"; for publishing on target \"{2}\"", item.getPath(), item.getSite(), target.getName()); DeploymentEventItem eventItem = new DeploymentEventItem(); eventItem.setSite(item.getSite()); eventItem.setPath(item.getPath()); eventItem.setUser(item.getUser()); eventItem.setDateTime(new Date()); if (item.getAction() == PublishingSyncItem.Action.DELETE) { eventItem.setState(DeploymentEventItem.STATE_DELETED); if (sbDeletedFiles.length() > 0) { sbDeletedFiles.append(FILES_SEPARATOR).append(item.getPath()); } else { sbDeletedFiles.append(item.getPath()); } if (item.getPath().endsWith("/" + _indexFile)) { sbDeletedFiles .append(FILES_SEPARATOR) .append(item.getPath().replace("/" + _indexFile, "")); } } else { if (item.getAction() == PublishingSyncItem.Action.NEW) { eventItem.setState(DeploymentEventItem.STATE_NEW); } else if (item.getAction() == PublishingSyncItem.Action.MOVE) { eventItem.setState(DeploymentEventItem.STATE_MOVED); } else { eventItem.setState(DeploymentEventItem.STATE_UPDATED); } LOGGER.debug("Get content for \"{0}\" , site \"{1}\"", item.getPath(), item.getSite()); InputStream input = _contentRepository.getContent(site, null, item.getEnvironment(), item.getPath()); try { if (input == null || input.available() < 0) { if (!_contentRepository.isFolder(site, item.getPath()) && _contentRepository.contentExists(site, item.getPath())) { baps = null; stringPart = null; filePart = null; formParts = null; throw new ContentNotFoundForPublishingException( site, target.getName(), item.getPath()); } else { // Content does not exist - skip deploying file continue; } } } catch (IOException err) { LOGGER.error( "Error reading input stream for content at path: " + item.getPath() + " site: " + item.getSite()); if (_contentRepository.contentExists(site, item.getPath())) { baps = null; stringPart = null; filePart = null; formParts = null; throw new ContentNotFoundForPublishingException( site, target.getName(), item.getPath()); } else { // Content does not exist - skip deploying file continue; } } String fileName = _contentRepository.getFilename(site, item.getPath()); byte[] byteArray = null; try { byteArray = IOUtils.toByteArray(input); } catch (IOException e) { LOGGER.error("Error while converting input stream to byte array", e); baps = null; stringPart = null; filePart = null; formParts = null; if (_contentRepository.contentExists(site, item.getPath())) { throw new ContentNotFoundForPublishingException( site, target.getName(), item.getPath()); } else { // Content does not exist - skip deploying file continue; } } finally { IOUtils.closeQuietly(input); input = null; } baps = new ByteArrayPartSource(fileName, byteArray); LOGGER.debug( "Create http request parameters for \"{0}\" , site \"{1}\"; publishing on target \"{2}\"", item.getPath(), item.getSite(), target.getName()); int idx = item.getPath().lastIndexOf("/"); String relativePath = item.getPath().substring(0, idx + 1) + fileName; stringPart = new StringPart(CONTENT_LOCATION_REQUEST_PARAMETER + cntFiles, relativePath); formParts.add(stringPart); filePart = new FilePart(CONTENT_FILE_REQUEST_PARAMETER + cntFiles, baps); formParts.add(filePart); if (item.getAction() == PublishingSyncItem.Action.MOVE) { if (item.getOldPath() != null && !item.getOldPath().equalsIgnoreCase(item.getPath())) { LOGGER.debug( "Add old path to be deleted for MOVE action (\"{0}\")", item.getOldPath()); eventItem.setOldPath(item.getOldPath()); if (sbDeletedFiles.length() > 0) { sbDeletedFiles.append(",").append(item.getOldPath()); } else { sbDeletedFiles.append(item.getOldPath()); } if (item.getOldPath().endsWith("/" + _indexFile)) { sbDeletedFiles .append(FILES_SEPARATOR) .append(item.getOldPath().replace("/" + _indexFile, "")); } } } if (target.isSendMetadata()) { LOGGER.debug( "Adding meta data for content \"{0}\" site \"{0}\"", item.getPath(), item.getSite()); InputStream metadataStream = null; try { metadataStream = _contentRepository.getMetadataStream(site, item.getPath()); metadataPart = new ByteArrayPartSource( fileName + ".meta", IOUtils.toByteArray(metadataStream)); formParts.add( new FilePart(METADATA_FILE_REQUEST_PARAMETER + cntFiles, metadataPart)); } catch (IOException e) { LOGGER.error("Error while creating input stream with content metadata", e); baps = null; stringPart = null; filePart = null; formParts = null; } finally { IOUtils.closeQuietly(metadataStream); metadataPart = null; } } } cntFiles++; eventItems.add(eventItem); } } if (sbDeletedFiles.length() > 0) { formParts.add(new StringPart(DELETED_FILES_REQUEST_PARAMETER, sbDeletedFiles.toString())); } LOGGER.debug( "Create http request to deploy bucket {0} for target {1}", bucketIndex + 1, target.getName()); PostMethod postMethod = null; HttpClient client = null; try { LOGGER.debug("Create HTTP Post Method"); postMethod = new PostMethod(requestUrl.toString()); postMethod.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE, true); Part[] parts = new Part[formParts.size()]; for (int i = 0; i < formParts.size(); i++) parts[i] = formParts.get(i); postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams())); client = new HttpClient(); LOGGER.debug("Execute HTTP POST request \"{0}\"", postMethod.getURI()); int status = client.executeMethod(postMethod); if (status == HttpStatus.SC_OK) { LOGGER.info( "Successfully deployed bucket number {0} on target {1}", bucketIndex + 1, target.getName()); } else { LOGGER.error( "Deployment failed for bucket number {0} on target {1}. Deployment agent returned status {2}", bucketIndex + 1, target.getName(), HttpStatus.getStatusText(status)); throw new UploadFailedException(site, target.getName(), target.getServerUrl()); } } catch (HttpException e) { LOGGER.error( "Publish failed for target {0} due to http protocol exception", target.getName()); throw new UploadFailedException(site, target.getName(), target.getServerUrl(), e); } catch (IOException e) { LOGGER.error( "Publish failed for target {0} due to I/O (transport) exception", target.getName()); throw new UploadFailedException(site, target.getName(), target.getServerUrl(), e); } finally { LOGGER.debug("Release http connection and release resources"); if (client != null) { HttpConnectionManager mgr = client.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } if (postMethod != null) { postMethod.releaseConnection(); postMethod = null; client = null; } baps = null; stringPart = null; filePart = null; formParts = null; } } LOGGER.debug( "Publishing deployment event for target \"{0}\" with \"{1}\" items.", target.getName(), eventItems.size()); _contentRepository.publishDeployEvent(target.getName(), eventItems); LOGGER.info("Deployment successful on target {0}", target.getName()); LOGGER.debug( "Finished deploying items for site \"{0}\", target \"{1}\", number of items \"{2}\"", site, target.getName(), filteredItems.size()); }
Set<String> checkUpdateDataIds(long timeout) { if (!isRun) { throw new RuntimeException("DiamondSubscriber is not running. checkUpdateDataIds return."); } if (MockServer.isTestMode()) { return testData(); } long waitTime = 0; String probeUpdateString = getProbeUpdateString(); if (StringUtils.isBlank(probeUpdateString)) { return null; } while (0 == timeout || timeout > waitTime) { long onceTimeOut = getOnceTimeOut(waitTime, timeout); waitTime += onceTimeOut; PostMethod postMethod = new PostMethod(Constants.HTTP_URI_FILE); postMethod.addParameter(Constants.PROBE_MODIFY_REQUEST, probeUpdateString); HttpMethodParams params = new HttpMethodParams(); params.setSoTimeout((int) onceTimeOut); postMethod.setParams(params); try { httpClient .getHostConfiguration() .setHost( diamondConfigure.getDomainNameList().get(this.domainNamePos.get()), this.diamondConfigure.getPort()); int httpStatus = httpClient.executeMethod(postMethod); switch (httpStatus) { case SC_OK: { Set<String> result = getUpdateDataIds(postMethod); return result; } case SC_SERVICE_UNAVAILABLE: { rotateToNextDomain(); } break; default: { log.warn("checkUpdateDataIds HTTP State: " + httpStatus); rotateToNextDomain(); } } } catch (HttpException e) { log.error("checkUpdateDataIds HttpException", e); rotateToNextDomain(); } catch (IOException e) { log.error("checkUpdateDataIds IOException", e); rotateToNextDomain(); } catch (Exception e) { log.error("checkUpdateDataIds Unknown Exception", e); rotateToNextDomain(); } finally { postMethod.releaseConnection(); } } throw new RuntimeException( "checkUpdateDataIds timeout " + diamondConfigure.getDomainNameList().get(this.domainNamePos.get()) + ", timeout=" + timeout); }
@Override public BatchHttpResult getConfigureInformationBatch( List<String> dataIds, String group, int timeout) { if (dataIds == null) { log.error("dataId list cannot be null,group=" + group); return new BatchHttpResult(HttpStatus.SC_BAD_REQUEST); } if (group == null) { group = Constants.DEFAULT_GROUP; } StringBuilder dataIdBuilder = new StringBuilder(); for (String dataId : dataIds) { dataIdBuilder.append(dataId).append(Constants.LINE_SEPARATOR); } String dataIdStr = dataIdBuilder.toString(); PostMethod post = new PostMethod(Constants.HTTP_URI_FILE_BATCH); post.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, timeout); BatchHttpResult response = null; try { NameValuePair dataIdValue = new NameValuePair("dataIds", dataIdStr); NameValuePair groupValue = new NameValuePair("group", group); post.setRequestBody(new NameValuePair[] {dataIdValue, groupValue}); httpClient .getHostConfiguration() .setHost( diamondConfigure.getDomainNameList().get(this.domainNamePos.get()), this.diamondConfigure.getPort()); int status = httpClient.executeMethod(post); String responseMsg = post.getResponseBodyAsString(); if (status == HttpStatus.SC_OK) { String json = null; try { json = responseMsg; List<ConfigInfoEx> configInfoExList = new LinkedList<ConfigInfoEx>(); Object resultObj = JSONUtils.deserializeObject(json, new TypeReference<List<ConfigInfoEx>>() {}); if (!(resultObj instanceof List<?>)) { throw new RuntimeException( "batch query deserialize type error, not list, json=" + json); } List<ConfigInfoEx> resultList = (List<ConfigInfoEx>) resultObj; for (ConfigInfoEx configInfoEx : resultList) { configInfoExList.add(configInfoEx); } response = new BatchHttpResult(configInfoExList); log.info( "batch query success,dataIds=" + dataIdStr + ",group=" + group + ",json=" + json); } catch (Exception e) { response = new BatchHttpResult(Constants.BATCH_OP_ERROR); log.error( "batch query deserialize error,dataIdStr=" + dataIdStr + ",group=" + group + ",json=" + json, e); } } else if (status == HttpStatus.SC_REQUEST_TIMEOUT) { response = new BatchHttpResult(HttpStatus.SC_REQUEST_TIMEOUT); log.error( "batch query timeout, socket timeout(ms):" + timeout + ",dataIds=" + dataIdStr + ",group=" + group); } else { response = new BatchHttpResult(status); log.error( "batch query fail, status:" + status + ", response:" + responseMsg + ",dataIds=" + dataIdStr + ",group=" + group); } } catch (HttpException e) { response = new BatchHttpResult(Constants.BATCH_HTTP_EXCEPTION); log.error("batch query http exception,dataIds=" + dataIdStr + ",group=" + group, e); } catch (IOException e) { response = new BatchHttpResult(Constants.BATCH_IO_EXCEPTION); log.error("batch query io exception, dataIds=" + dataIdStr + ",group=" + group, e); } finally { post.releaseConnection(); } return response; }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { address = PAConfiguration.getAddress(); port = PAConfiguration.getPort(instantiation); poslAddress = PAConfiguration.getPOSL(instantiation, topic); rdfAddress = PAConfiguration.getRDFTaxonomy(instantiation); messageEndpoint = PAConfiguration.getEndpointName(instantiation, topic); } catch (BadConfigurationException e) { System.out.println(e.getMessage()); e.printStackTrace(); System.exit(0); } response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); try { System.out.println("5 Publicty Chair Servlet"); System.out.println(response.toString()); BufferedReader brd = request.getReader(); String input = ""; String message = ""; while (!input.equals("</RuleML>")) { input = brd.readLine(); message = message + input; } String[] varOrder = getVariableOrder(message); System.out.println("Received Message: " + message); // BackwardReasoner br = new BackwardReasoner(); // Iterator solit =null; // DefiniteClause dc = null; // SymbolTable.reset(); POSLParser pp = new POSLParser(); // String contents = "c(a).\nc(b).\nc(c)."; Date t1 = new GregorianCalendar().getTime(); System.out.println(t1.getHours() + ":" + t1.getMinutes()); // append time to contents System.out.println("day: " + t1.getDay()); System.out.println("day: " + t1.getYear()); System.out.println("day: " + t1.getMonth()); // time String time = "time(" + t1.getHours() + ":integer)."; System.out.println(time); String url = poslAddress; // String url = "http://www.jdrew.org/oojdrew/test.posl"; String contents = ""; // day of the week int day = t1.getDay(); boolean weekday = true; if (day == 0 || day == 6) { weekday = false; } String dayOfWeek; if (weekday) { dayOfWeek = "day(weekday)."; } else { dayOfWeek = "day(weekend)."; } // full date Calendar cal = new GregorianCalendar(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day2 = cal.get(Calendar.DAY_OF_MONTH); String date; String day3 = "" + day2; if (day2 == 1 || day2 == 2 || day2 == 3 || day2 == 4 || day2 == 5 || day2 == 6 || day2 == 7 || day2 == 8 || day2 == 9) { day3 = "0" + day2; } if (month == 10 || month == 11 || month == 12) date = "" + year + month + day3; else date = "" + year + "0" + month + day3; date = "date(" + date + ":integer)."; System.out.println(date); String url2 = rdfAddress; HttpClient client2 = new HttpClient(); GetMethod method2 = new GetMethod(url2); method2.setFollowRedirects(true); String typestr = ""; // Execute the GET method int statusCode2 = client2.executeMethod(method2); if (statusCode2 != -1) { typestr = method2.getResponseBodyAsString(); } System.out.println("Types: " + typestr); Types.reset(); RDFSParser.parseRDFSString(typestr); try { HttpClient client = new HttpClient(); GetMethod method = new GetMethod(url); method.setFollowRedirects(true); // Execute the GET method int statusCode = client.executeMethod(method); if (statusCode != -1) { contents = method.getResponseBodyAsString(); } } catch (Exception e) { e.printStackTrace(); } contents = contents + "\n" + time; contents = contents + "\n" + dayOfWeek; contents = contents + "\n" + date; BackwardReasoner br = new BackwardReasoner(); Iterator solit = null; DefiniteClause dc = null; SymbolTable.reset(); pp.parseDefiniteClauses(contents); br.loadClauses(pp.iterator()); System.out.println("TEST"); Iterator it = pp.iterator(); while (it.hasNext()) { DefiniteClause d = (DefiniteClause) it.next(); System.out.println("Loaded clause: " + d.toPOSLString()); } br = new BackwardReasoner(br.clauses, br.oids); MessageParser m = new MessageParser(message); Element atom = null; try { atom = m.parseForContent(); } catch (Exception e) { System.out.println("Invalid Message"); // out.flush(); } QueryBuilder q = new QueryBuilder(atom); String query = q.generateDoc(); System.out.println("ABOUT TO INPUT THIS QUERY:" + query); RuleMLParser qp = new RuleMLParser(); try { dc = qp.parseRuleMLQuery(query); } catch (Exception e) { System.out.println("Invalid Query"); // out.flush(); } // solit = br.iterativeDepthFirstSolutionIterator(dc); solit = br.iterativeDepthFirstSolutionIterator(dc); int varSize = 0; while (solit.hasNext()) { Vector data = new Vector(); BackwardReasoner.GoalList gl = (BackwardReasoner.GoalList) solit.next(); Hashtable varbind = gl.varBindings; javax.swing.tree.DefaultMutableTreeNode root = br.toTree(); root.setAllowsChildren(true); javax.swing.tree.DefaultTreeModel dtm = new DefaultTreeModel(root); int i = 0; Object[][] rowdata = new Object[varbind.size()][2]; varSize = varbind.size(); Enumeration e = varbind.keys(); while (e.hasMoreElements()) { Object k = e.nextElement(); Object val = varbind.get(k); String ks = (String) k; rowdata[i][0] = ks; rowdata[i][1] = val; i++; } data.addElement(rowdata); String[] messages = new String[data.size()]; MessageGenerator g = new MessageGenerator( data, varSize, messageEndpoint, m.getId(), m.getProtocol(), m.getRel(), varOrder); messages = g.Messages2(); String appender = ""; URL sender = new URL(address + ":" + port); HttpMessage msg = new HttpMessage(sender); Properties props = new Properties(); for (int i1 = 0; i1 < data.size(); i1++) { System.out.println(i1 + ")" + messages[i1].toString()); props.put("text", messages[i1].toString()); InputStream in = msg.sendGetMessage(props); } System.out.println("NEXT MESSAGE"); } MessageGenerator g = new MessageGenerator( null, varSize, messageEndpoint, m.getId(), m.getProtocol(), m.getRel()); URL sender = new URL(address + ":" + port); HttpMessage msg = new HttpMessage(sender); Properties props = new Properties(); String finalMessage = g.finalMessage(query); System.out.println(finalMessage); props.put("text", finalMessage); InputStream in = msg.sendGetMessage(props); System.out.println("Stop_Communication"); } catch (Exception e) { System.out.println("ERROR has occured : " + e.toString()); } out.close(); }