/******************************************************************************* * Copyright 2016, 2017 Capital One Services, LLC and Bitwise, Inc. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/ package hydrograph.server.service; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.http.client.ClientProtocolException; import java.io.IOException; import java.io.InputStream; import java.sql.Timestamp; import java.util.Date; public class HydrographServiceClient { String JOB_ID = "CloneDebug"; String COMPONENT_ID = "input1"; String SOCKET_ID = "out0"; //TODO : Add values while testing the class, remove it once testing is done. String BASE_PATH = ""; String USER_ID = ""; String PASSWORD = ""; String FILE_SIZE_TO_READ = ""; String HOST_NAME = ""; String PORT = ""; public static void main(String[] args) { HydrographServiceClient client = new HydrographServiceClient(); try { System.out.println("+++ Start: " + new Timestamp((new Date()).getTime())); // client.calltoReadService(); // client.calltoFilterService(); // client.calltoReadMetastore(); client.chcekConnectionStatus(); // client.calltoDeleteLocalDebugService(); System.out.println("done:"); System.out.println("+++ End: " + new Timestamp((new Date()).getTime())); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void chcekConnectionStatus() throws IOException { HttpClient httpClient = new HttpClient(); //TODO : add connection details while testing only,remove it once done String teradatajson = "{\"username\":\"\",\"password\":\"\",\"hostname\":\"\",\"database\":\"\",\"dbtype\":\"\",\"port\":\"\"}"; PostMethod postMethod = new PostMethod("http://" + HOST_NAME + ":" + PORT + "/getConnectionStatus"); //postMethod.addParameter("request_parameters", redshiftjson); postMethod.addParameter("request_parameters", teradatajson); int response = httpClient.executeMethod(postMethod); InputStream inputStream = postMethod.getResponseBodyAsStream(); byte[] buffer = new byte[1024 * 1024 * 5]; String path = null; int length; while ((length = inputStream.read(buffer)) > 0) { path = new String(buffer); } System.out.println("Response of service: " + path); System.out.println("=================="); } public void calltoReadMetastore() throws IOException { HttpClient httpClient = new HttpClient(); //TODO : add connection details while testing only,remove it once done String teradatajson = "{\"table\":\"testting2\",\"username\":\"\",\"password\":\"\",\"hostname\":\"\",\"database\":\"\",\"dbtype\":\"\",\"port\":\"\"}"; PostMethod postMethod = new PostMethod("http://" + HOST_NAME + ":" + PORT + "/readFromMetastore"); //postMethod.addParameter("request_parameters", redshiftjson); postMethod.addParameter("request_parameters", teradatajson); int response = httpClient.executeMethod(postMethod); InputStream inputStream = postMethod.getResponseBodyAsStream(); byte[] buffer = new byte[1024 * 1024 * 5]; String path = null; int length; while ((length = inputStream.read(buffer)) > 0) { path = new String(buffer); } System.out.println("Response of service: " + path); System.out.println("=================="); } public void calltoFilterService() throws IOException { HttpClient httpClient = new HttpClient(); // String json = // "{\"condition\":\"abc\",\"schema\":[{\"fieldName\":\"f1\",\"dateFormat\":\"\",\"dataType\":\"1\",\"scale\":\"scale\",\"dataTypeValue\":\"java.lang.String\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f2\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.util.Date\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f3\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.util.Date\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f4\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.math.BigDecimal\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"}],\"fileSize\":1,\"jobDetails\":{\"host\":\"127.0.0.1\",\"port\":\"8005\",\"username\":\"hduser\",\"password\":\"Bitwise2012\",\"basepath\":\"C:/Users/santlalg/git/Hydrograph/hydrograph.engine/hydrograph.engine.command-line\",\"uniqueJobID\":\"debug_job\",\"componentID\":\"input\",\"componentSocketID\":\"out0\",\"isRemote\":false}}"; String json = "{\"condition\":\"(f1 LIKE 'should')\",\"schema\":[{\"fieldName\":\"f1\",\"dateFormat\":\"\",\"dataType\":\"1\",\"scale\":\"scale\",\"dataTypeValue\":\"java.lang.String\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f2\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.util.Date\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f3\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.lang.Float\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"},{\"fieldName\":\"f4\",\"dateFormat\":\"\",\"dataType\":1,\"scale\":\"scale\",\"dataTypeValue\":\"java.lang.Double\",\"scaleType\":1,\"scaleTypeValue\":\"scaleTypeValue\",\"precision\":\"precision\",\"description\":\"description\"}],\"fileSize\":" + FILE_SIZE_TO_READ + ",\"jobDetails\":{\"host\":\"" + HOST_NAME + "\",\"port\":\"" + PORT + "\",\"username\":\"" + USER_ID + "\",\"password\":\"" + PASSWORD + "\",\"basepath\":\"" + BASE_PATH + "\",\"uniqueJobID\":\"" + JOB_ID + "\",\"componentID\":\"" + COMPONENT_ID + "\",\"componentSocketID\":\"" + SOCKET_ID + "\",\"isRemote\":false}}"; PostMethod postMethod = new PostMethod("http://" + HOST_NAME + ":" + PORT + "/filter"); postMethod.addParameter("request_parameters", json); int response = httpClient.executeMethod(postMethod); InputStream inputStream = postMethod.getResponseBodyAsStream(); byte[] buffer = new byte[1024 * 1024 * 5]; String path = null; int length; while ((length = inputStream.read(buffer)) > 0) { path = new String(buffer); } System.out.println("response of service: " + path); } public void calltoReadService() throws IOException { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://" + HOST_NAME + ":" + PORT + "/read"); postMethod.addParameter("jobId", JOB_ID); postMethod.addParameter("componentId", COMPONENT_ID); postMethod.addParameter("socketId", SOCKET_ID); postMethod.addParameter("basePath", BASE_PATH); postMethod.addParameter("userId", USER_ID); postMethod.addParameter("password", PASSWORD); postMethod.addParameter("file_size", FILE_SIZE_TO_READ); postMethod.addParameter("host_name", HOST_NAME); InputStream inputStream = postMethod.getResponseBodyAsStream(); byte[] buffer = new byte[1024 * 1024 * 5]; String path = null; int length; while ((length = inputStream.read(buffer)) > 0) { path = new String(buffer); } System.out.println("response of service: " + path); } public void calltoDeleteLocalDebugService() throws IOException { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://" + HOST_NAME + ":" + PORT + "/deleteLocalDebugFile"); postMethod.addParameter("jobId", JOB_ID); postMethod.addParameter("componentId", COMPONENT_ID); postMethod.addParameter("socketId", SOCKET_ID); java.util.Date date = new java.util.Date(); System.out.println("+++ Start: " + new Timestamp(date.getTime())); int response = httpClient.executeMethod(postMethod); System.out.println("response: " + response); } }