* ONAP Policy Engine
* ================================================================================
* Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
connection.setRequestProperty("Content-Type",PolicyController.getContenttype());
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = null;
- try {
- root = mapper.readTree(request.getReader());
- }catch (Exception e1) {
- policyLogger.error("Exception Occured while calling PAP"+e1);
- }
+ JsonNode root = getJsonNode(request, mapper);
ObjectMapper mapper1 = new ObjectMapper();
mapper1.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
Object obj = mapper1.treeToValue(root, Object.class);
String json = mapper1.writeValueAsString(obj);
- Object content = new ByteArrayInputStream(json.getBytes());
-
- if (content instanceof InputStream) {
- // send current configuration
- try (OutputStream os = connection.getOutputStream()) {
- int count = IOUtils.copy((InputStream) content, os);
- if (policyLogger.isDebugEnabled()) {
- policyLogger.debug("copied to output, bytes=" + count);
- }
+ // send current configuration
+ try(InputStream content = new ByteArrayInputStream(json.getBytes());
+ OutputStream os = connection.getOutputStream()) {
+ int count = IOUtils.copy(content, os);
+ if (policyLogger.isDebugEnabled()) {
+ policyLogger.debug("copied to output, bytes=" + count);
}
}
}else{
}
}
}
-
- connection.connect();
-
- int responseCode = connection.getResponseCode();
- if(responseCode == 200){
- // get the response content into a String
- String responseJson = null;
- // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
- try(java.util.Scanner scanner = new java.util.Scanner(connection.getInputStream())) {
- scanner.useDelimiter("\\A");
- responseJson = scanner.hasNext() ? scanner.next() : "";
- } catch (Exception e){
- //Reason for rethrowing the exception is if any exception occurs during reading of inputsteam
- //then the exception handling is done by the outer block without returning the response immediately
- //Also finally block is existing only in outer block and not here so all exception handling is
- //done in only one place
- policyLogger.error("Exception Occured"+e);
- throw e;
- }
-
- policyLogger.info("JSON response from PAP: " + responseJson);
- return responseJson;
- }
-
+ return doConnect(connection);
} catch (Exception e) {
policyLogger.error("Exception Occured"+e);
}finally{
return null;
}
+ private JsonNode getJsonNode(HttpServletRequest request, ObjectMapper mapper) {
+ JsonNode root = null;
+ try {
+ root = mapper.readTree(request.getReader());
+ }catch (Exception e1) {
+ policyLogger.error("Exception Occured while calling PAP"+e1);
+ }
+ return root;
+ }
+
+ private String doConnect(final HttpURLConnection connection) throws IOException{
+ connection.connect();
+ int responseCode = connection.getResponseCode();
+ if(responseCode == 200){
+ // get the response content into a String
+ String responseJson = null;
+ // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
+ try(java.util.Scanner scanner = new java.util.Scanner(connection.getInputStream())) {
+ scanner.useDelimiter("\\A");
+ responseJson = scanner.hasNext() ? scanner.next() : "";
+ } catch (Exception e){
+ //Reason for rethrowing the exception is if any exception occurs during reading of inputsteam
+ //then the exception handling is done by the outer block without returning the response immediately
+ //Also finally block is existing only in outer block and not here so all exception handling is
+ //done in only one place
+ policyLogger.error("Exception Occured"+e);
+ throw e;
+ }
+
+ policyLogger.info("JSON response from PAP: " + responseJson);
+ return responseJson;
+ }
+ return null;
+ }
+
@RequestMapping(value={"/getDictionary/*"}, method={RequestMethod.GET})
public void getDictionaryController(HttpServletRequest request, HttpServletResponse response){
String uri = request.getRequestURI().replace("/getDictionary", "");