Modify ONAP PAP REST classes basic checkstyle 19/58819/1
authorKrishnajinka <kris.jinka@samsung.com>
Fri, 3 Aug 2018 01:36:19 +0000 (10:36 +0900)
committerKrishnajinka <kris.jinka@samsung.com>
Fri, 3 Aug 2018 01:36:35 +0000 (10:36 +0900)
Modify tabs to space for checkstyle issue fix in ONAP PAP REST
module. It helps future reviews and refactoring. Remaining classes

Issue-ID: POLICY-1014
Change-Id: I677eadac9e8364b388be922024528c27fd1e2545
Signed-off-by: Krishnajinka <kris.jinka@samsung.com>
71 files changed:
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/DictionaryNames.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/UpdateOthersPAPS.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/WebConfig.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/daoimpl/CommonClassDaoImpl.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/ElasticSearchPolicyUpdate.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/ElkConnector.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/ElkConnectorImpl.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/PolicyElasticData.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/PolicyElasticSearchController.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/elk/client/PolicyLocator.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/PushPolicyHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/SavePolicyHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/model/RemoveGroupPolicy.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/policycontroller/PolicyCreation.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/DictionaryService.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/util/AbstractPolicyCreation.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/util/DictionaryUtils.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/util/JPAUtils.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/util/JsonMessage.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/AuthenticationService.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/PAPAuthenticationFilter.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/ia/DbAuditCompareEntriesTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/UpdateOthersPAPSTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/XACMLPAPTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/PAPRestConfigTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/WebConfigTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/XACMLPapServletTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/SearchDataTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectDataTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/ActionPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/FirewallConfigPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/DictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/ElasticSearchPolicyUpdateTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/ElkConnectorImplTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PairTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticDataTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticSearchControllerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyLocatorTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/PushPolicyHandlerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/jpa/PolicyEntityTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/model/RemoveGroupPolicyTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/ImportServiceTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/MetricServiceTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/restAuth/AuthenticationServiceTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/restAuth/PAPAuthenticationFilterTest.java

index 38e2c96..ce9cad4 100644 (file)
@@ -27,31 +27,31 @@ package org.onap.policy.pap.xacml.rest;
  *
  */
 public enum DictionaryNames {
-       
-       Attribute,
-       ActionPolicyDictionary,
-       OnapName,
-       MSPolicyDictionary,
-       OptimizationPolicyDictionary,
-       VNFType,
-       VSCLAction,
-       ClosedLoopService,
-       ClosedLoopSite,
-       PEPOptions,
-       VarbindDictionary,
-       BRMSParamDictionary,
-       BRMSControllerDictionary,
-       BRMSDependencyDictionary,
-       Settings,
-       PrefixList,
-       SecurityZone,
-       Zone,
-       ServiceList,
-       ServiceGroup,
-       AddressGroup,
-       ProtocolList,
-       ActionList,
-       TermList,
-       SearchCriteria
+
+    Attribute,
+    ActionPolicyDictionary,
+    OnapName,
+    MSPolicyDictionary,
+    OptimizationPolicyDictionary,
+    VNFType,
+    VSCLAction,
+    ClosedLoopService,
+    ClosedLoopSite,
+    PEPOptions,
+    VarbindDictionary,
+    BRMSParamDictionary,
+    BRMSControllerDictionary,
+    BRMSDependencyDictionary,
+    Settings,
+    PrefixList,
+    SecurityZone,
+    Zone,
+    ServiceList,
+    ServiceGroup,
+    AddressGroup,
+    ProtocolList,
+    ActionList,
+    TermList,
+    SearchCriteria
 }
 
index c1891b3..bd00038 100644 (file)
@@ -64,177 +64,177 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 @Controller
 public class UpdateOthersPAPS {
-       
-       private static final Logger     policyLogger    = FlexLogger.getLogger(UpdateOthersPAPS.class);
-       
-       private static CommonClassDao commonClassDao;
-       
-       private static final String contentType = "application/json";
-       private static String configType =".Config_";
-       private static String actionType =".Action_";
-       private static String error ="error";
-       public static CommonClassDao getCommonClassDao() {
-               return commonClassDao;
-       }
-
-       public static void setCommonClassDao(CommonClassDao commonClassDao) {
-               UpdateOthersPAPS.commonClassDao = commonClassDao;
-       }
-
-       @Autowired
-       private UpdateOthersPAPS(CommonClassDao commonClassDao){
-               UpdateOthersPAPS.commonClassDao = commonClassDao;
-       }
-       
-       public UpdateOthersPAPS() {
-               //Empty Constructor
-       }
-
-       @RequestMapping(value="/notifyOtherPAPs", method= RequestMethod.POST)
-       public void  notifyOthersPAPsToUpdateConfigurations(HttpServletRequest request, HttpServletResponse response){
-               Map<String, Object> model = new HashMap<>();
-               ObjectMapper mapper = new ObjectMapper();
-               UpdateObjectData body = new UpdateObjectData();
-               body.setAction(request.getParameter("action"));
-               body.setNewPolicyName(request.getParameter("newPolicyName"));
-               body.setOldPolicyName(request.getParameter("oldPolicyName"));
-
-               String currentPap = XACMLRestProperties.getProperty("xacml.rest.pap.url");
-               List<Object> getPAPUrls = commonClassDao.getData(PolicyDBDaoEntity.class);
-               if(getPAPUrls != null && !getPAPUrls.isEmpty()){
-                       for(int i = 0; i < getPAPUrls.size(); i++){
-                               PolicyDBDaoEntity papId = (PolicyDBDaoEntity) getPAPUrls.get(i);
-                               String papUrl = papId.getPolicyDBDaoUrl();
-                               if(!papUrl.equals(currentPap)){
-                                       String userName = papId.getUsername();
-                                       String password = papId.getPassword();
-                                       Base64.Encoder encoder = Base64.getEncoder();
-                                       String txt;
-                                       try{
-                                               txt = new String(CryptoUtils.decryptTxt(password), StandardCharsets.UTF_8);
-                                       } catch(Exception e){
-                                               policyLogger.debug(e);
-                                               //if we can't decrypt, might as well try it anyway
-                                               txt = password;
-                                       }
-                                       String encoding = encoder.encodeToString((userName+":"+txt).getBytes(StandardCharsets.UTF_8));
-                                       HttpHeaders headers = new HttpHeaders();
-                                       headers.set("Authorization", "Basic " + encoding);
-                                       headers.set("Content-Type", contentType);
-
-                                       RestTemplate restTemplate = new RestTemplate();
-                                       HttpEntity<?> requestEntity = new HttpEntity<>(body, headers);
-                                       HttpClientErrorException exception = null;
-
-                                       try{
-                                               restTemplate.exchange(papUrl + "onap/updateConfiguration", HttpMethod.POST, requestEntity, String.class);
-                                       }catch(Exception e){
-                                               policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl, e);
-                                               exception = new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
-                                               if("409 Conflict".equals(e.getMessage())){
-                                                       policyLogger.error(e.getMessage());
-                                   response.addHeader(error, e.getMessage());
-                                               }
-                                       }
-                                       if(exception != null && exception.getStatusCode()!=null){
-                                               String message;
-                                               if(exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)){
-                                                       message = XACMLErrorConstants.ERROR_PERMISSIONS +":"+exception.getStatusCode()+":" + "ERROR_AUTH_GET_PERM" ;
-                                                       policyLogger.error(message);
-                                               }else if(exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)){
-                                                       message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString();
-                                                       policyLogger.error(message);
-                                               }else if(exception.getStatusCode().equals(HttpStatus.NOT_FOUND)){
-                                                       message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl + exception;
-                                                       policyLogger.error(message);
-                                               }else{
-                                                       message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString();
-                                                       policyLogger.error(message);
-                                               }
-                                               model.put(papUrl, message);
-                                       }else{
-                                               model.put(papUrl, "Success");
-                                       }
-                               }
-                       }
-                       JsonMessage msg;
-                       try {
-                               msg = new JsonMessage(mapper.writeValueAsString(model));
-                               JSONObject j = new JSONObject(msg);
-                               response.getWriter().write(j.toString());
-                       } catch (Exception e) {
-                               policyLogger.error("Exception Occured"+e);
-                       }
-               }
-       }
-       
-       @RequestMapping(value="/updateConfiguration", method= RequestMethod.POST)
-       @ResponseBody
-       public void updateConfiguration(@RequestBody UpdateObjectData data, HttpServletResponse response){
-               String action = data.getAction();
-               String newPolicyName = data.getNewPolicyName();
-               String oldPolicyName = data.getOldPolicyName();
-               try{
-                       if("rename".equals(action)){
-                               if(oldPolicyName.contains(configType) || oldPolicyName.contains(actionType)){
-                                       File file;
-                                       if(oldPolicyName.contains(configType)){
-                                               file = new File(Policy.getConfigHome() + File.separator + oldPolicyName);
-                                       }else{
-                                               file = new File(Policy.getActionHome() + File.separator + oldPolicyName);
-                                       }
-                                       if(file.exists()){
-                                               File renamefile;
-                                               if(oldPolicyName.contains(configType)){
-                                                       renamefile = new File(Policy.getConfigHome() + File.separator + newPolicyName);
-                                               }else{
-                                                       renamefile = new File(Policy.getActionHome() + File.separator + newPolicyName);
-                                               }
-                                               if(file.renameTo(renamefile)){
-                                                       policyLogger.info("Policy has been renamed Successfully"+newPolicyName);
-                                                       response.addHeader("rename", "Success");
-                                               }else{
-                                                       response.addHeader("rename", "Failure");
-                                               }
-                                       }
-                               }
-                       }else if("delete".equals(action)){
-                               if(oldPolicyName.contains(configType)){
-                                       Files.deleteIfExists(Paths.get(Policy.getConfigHome() + File.separator + oldPolicyName));
-                               }else if(oldPolicyName.contains("Action_")){
-                                       Files.deleteIfExists(Paths.get(Policy.getActionHome() + File.separator + oldPolicyName));
-                               }
-                       }else if("clonePolicy".equals(action) || "exportPolicy".equals(action)){
-                               if(newPolicyName.contains(configType)){
-                                       ConfigurationDataEntity configEntiy = (ConfigurationDataEntity) commonClassDao.getEntityItem(ConfigurationDataEntity.class, "configurationName", newPolicyName);
-                                       saveConfigurationData(configEntiy, newPolicyName);
-                               }else if(newPolicyName.contains(actionType)){
-                                       ActionBodyEntity actionEntiy = (ActionBodyEntity) commonClassDao.getEntityItem(ActionBodyEntity.class, "actionBodyName", newPolicyName);
-                                       saveActionBodyData(actionEntiy, newPolicyName);
-                               }
-                       }
-               } catch (IOException e) {
-                       policyLogger.error("Exception Occured While updating Configuration"+e);
-               }
-       }
-       
-       private void saveConfigurationData(ConfigurationDataEntity configEntiy, String newPolicyName){
-               try(FileWriter fw = new FileWriter(Policy.getConfigHome() + File.separator + newPolicyName)){
-                       BufferedWriter bw = new BufferedWriter(fw);
-                       bw.write(configEntiy.getConfigBody());
-                       bw.close();
-               }catch (IOException e) {
-                       policyLogger.error("Exception Occured While closing the File input stream"+e);
-               }
-       }
-       
-       private void saveActionBodyData(ActionBodyEntity actionEntiy , String newPolicyName){
-               try(FileWriter fw  = new FileWriter(Policy.getActionHome() + File.separator + newPolicyName)){
-                       BufferedWriter bw = new BufferedWriter(fw);
-                       bw.write(actionEntiy.getActionBody());
-                       bw.close();
-               }catch (IOException e) {
-                       policyLogger.error("Exception Occured While closing the File input stream"+e);
-               }
-       }
+
+    private static final Logger        policyLogger    = FlexLogger.getLogger(UpdateOthersPAPS.class);
+
+    private static CommonClassDao commonClassDao;
+
+    private static final String contentType = "application/json";
+    private static String configType =".Config_";
+    private static String actionType =".Action_";
+    private static String error ="error";
+    public static CommonClassDao getCommonClassDao() {
+        return commonClassDao;
+    }
+
+    public static void setCommonClassDao(CommonClassDao commonClassDao) {
+        UpdateOthersPAPS.commonClassDao = commonClassDao;
+    }
+
+    @Autowired
+    private UpdateOthersPAPS(CommonClassDao commonClassDao){
+        UpdateOthersPAPS.commonClassDao = commonClassDao;
+    }
+
+    public UpdateOthersPAPS() {
+        //Empty Constructor
+    }
+
+    @RequestMapping(value="/notifyOtherPAPs", method= RequestMethod.POST)
+    public void  notifyOthersPAPsToUpdateConfigurations(HttpServletRequest request, HttpServletResponse response){
+        Map<String, Object> model = new HashMap<>();
+        ObjectMapper mapper = new ObjectMapper();
+        UpdateObjectData body = new UpdateObjectData();
+        body.setAction(request.getParameter("action"));
+        body.setNewPolicyName(request.getParameter("newPolicyName"));
+        body.setOldPolicyName(request.getParameter("oldPolicyName"));
+
+        String currentPap = XACMLRestProperties.getProperty("xacml.rest.pap.url");
+        List<Object> getPAPUrls = commonClassDao.getData(PolicyDBDaoEntity.class);
+        if(getPAPUrls != null && !getPAPUrls.isEmpty()){
+            for(int i = 0; i < getPAPUrls.size(); i++){
+                PolicyDBDaoEntity papId = (PolicyDBDaoEntity) getPAPUrls.get(i);
+                String papUrl = papId.getPolicyDBDaoUrl();
+                if(!papUrl.equals(currentPap)){
+                    String userName = papId.getUsername();
+                    String password = papId.getPassword();
+                    Base64.Encoder encoder = Base64.getEncoder();
+                    String txt;
+                    try{
+                        txt = new String(CryptoUtils.decryptTxt(password), StandardCharsets.UTF_8);
+                    } catch(Exception e){
+                        policyLogger.debug(e);
+                        //if we can't decrypt, might as well try it anyway
+                        txt = password;
+                    }
+                    String encoding = encoder.encodeToString((userName+":"+txt).getBytes(StandardCharsets.UTF_8));
+                    HttpHeaders headers = new HttpHeaders();
+                    headers.set("Authorization", "Basic " + encoding);
+                    headers.set("Content-Type", contentType);
+
+                    RestTemplate restTemplate = new RestTemplate();
+                    HttpEntity<?> requestEntity = new HttpEntity<>(body, headers);
+                    HttpClientErrorException exception = null;
+
+                    try{
+                        restTemplate.exchange(papUrl + "onap/updateConfiguration", HttpMethod.POST, requestEntity, String.class);
+                    }catch(Exception e){
+                        policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl, e);
+                        exception = new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
+                        if("409 Conflict".equals(e.getMessage())){
+                            policyLogger.error(e.getMessage());
+                            response.addHeader(error, e.getMessage());
+                        }
+                    }
+                    if(exception != null && exception.getStatusCode()!=null){
+                        String message;
+                        if(exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)){
+                            message = XACMLErrorConstants.ERROR_PERMISSIONS +":"+exception.getStatusCode()+":" + "ERROR_AUTH_GET_PERM" ;
+                            policyLogger.error(message);
+                        }else if(exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)){
+                            message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString();
+                            policyLogger.error(message);
+                        }else if(exception.getStatusCode().equals(HttpStatus.NOT_FOUND)){
+                            message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl + exception;
+                            policyLogger.error(message);
+                        }else{
+                            message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString();
+                            policyLogger.error(message);
+                        }
+                        model.put(papUrl, message);
+                    }else{
+                        model.put(papUrl, "Success");
+                    }
+                }
+            }
+            JsonMessage msg;
+            try {
+                msg = new JsonMessage(mapper.writeValueAsString(model));
+                JSONObject j = new JSONObject(msg);
+                response.getWriter().write(j.toString());
+            } catch (Exception e) {
+                policyLogger.error("Exception Occured"+e);
+            }
+        }
+    }
+
+    @RequestMapping(value="/updateConfiguration", method= RequestMethod.POST)
+    @ResponseBody
+    public void updateConfiguration(@RequestBody UpdateObjectData data, HttpServletResponse response){
+        String action = data.getAction();
+        String newPolicyName = data.getNewPolicyName();
+        String oldPolicyName = data.getOldPolicyName();
+        try{
+            if("rename".equals(action)){
+                if(oldPolicyName.contains(configType) || oldPolicyName.contains(actionType)){
+                    File file;
+                    if(oldPolicyName.contains(configType)){
+                        file = new File(Policy.getConfigHome() + File.separator + oldPolicyName);
+                    }else{
+                        file = new File(Policy.getActionHome() + File.separator + oldPolicyName);
+                    }
+                    if(file.exists()){
+                        File renamefile;
+                        if(oldPolicyName.contains(configType)){
+                            renamefile = new File(Policy.getConfigHome() + File.separator + newPolicyName);
+                        }else{
+                            renamefile = new File(Policy.getActionHome() + File.separator + newPolicyName);
+                        }
+                        if(file.renameTo(renamefile)){
+                            policyLogger.info("Policy has been renamed Successfully"+newPolicyName);
+                            response.addHeader("rename", "Success");
+                        }else{
+                            response.addHeader("rename", "Failure");
+                        }
+                    }
+                }
+            }else if("delete".equals(action)){
+                if(oldPolicyName.contains(configType)){
+                    Files.deleteIfExists(Paths.get(Policy.getConfigHome() + File.separator + oldPolicyName));
+                }else if(oldPolicyName.contains("Action_")){
+                    Files.deleteIfExists(Paths.get(Policy.getActionHome() + File.separator + oldPolicyName));
+                }
+            }else if("clonePolicy".equals(action) || "exportPolicy".equals(action)){
+                if(newPolicyName.contains(configType)){
+                    ConfigurationDataEntity configEntiy = (ConfigurationDataEntity) commonClassDao.getEntityItem(ConfigurationDataEntity.class, "configurationName", newPolicyName);
+                    saveConfigurationData(configEntiy, newPolicyName);
+                }else if(newPolicyName.contains(actionType)){
+                    ActionBodyEntity actionEntiy = (ActionBodyEntity) commonClassDao.getEntityItem(ActionBodyEntity.class, "actionBodyName", newPolicyName);
+                    saveActionBodyData(actionEntiy, newPolicyName);
+                }
+            }
+        } catch (IOException e) {
+            policyLogger.error("Exception Occured While updating Configuration"+e);
+        }
+    }
+
+    private void saveConfigurationData(ConfigurationDataEntity configEntiy, String newPolicyName){
+        try(FileWriter fw = new FileWriter(Policy.getConfigHome() + File.separator + newPolicyName)){
+            BufferedWriter bw = new BufferedWriter(fw);
+            bw.write(configEntiy.getConfigBody());
+            bw.close();
+        }catch (IOException e) {
+            policyLogger.error("Exception Occured While closing the File input stream"+e);
+        }
+    }
+
+    private void saveActionBodyData(ActionBodyEntity actionEntiy , String newPolicyName){
+        try(FileWriter fw  = new FileWriter(Policy.getActionHome() + File.separator + newPolicyName)){
+            BufferedWriter bw = new BufferedWriter(fw);
+            bw.write(actionEntiy.getActionBody());
+            bw.close();
+        }catch (IOException e) {
+            policyLogger.error("Exception Occured While closing the File input stream"+e);
+        }
+    }
 }
\ No newline at end of file
index 89ab8bc..88ad91b 100644 (file)
@@ -28,16 +28,16 @@ import org.springframework.web.context.support.AnnotationConfigWebApplicationCon
 import org.springframework.web.servlet.DispatcherServlet;
 
 public class WebConfig implements WebApplicationInitializer {
-       
-       @Override
-       public void onStartup(ServletContext container) {
-               AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
-               ctx.register(PAPRestConfig.class);
-               ctx.setServletContext(container);
-               ctx.refresh();
-               ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(ctx));
-               dispatcher.setLoadOnStartup(1);
-               dispatcher.addMapping("/onap/*");
-       }
+
+    @Override
+    public void onStartup(ServletContext container) {
+        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
+        ctx.register(PAPRestConfig.class);
+        ctx.setServletContext(container);
+        ctx.refresh();
+        ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(ctx));
+        dispatcher.setLoadOnStartup(1);
+        dispatcher.addMapping("/onap/*");
+    }
 
 }
index 1acec1b..4406ad3 100644 (file)
@@ -107,191 +107,191 @@ import com.google.common.base.Splitter;
  * Servlet implementation class XacmlPapServlet
  */
 @WebServlet(
-               description = "Implements the XACML PAP RESTful API.", 
-               urlPatterns = { "/" }, 
-               loadOnStartup=1,
-               initParams = {
-                       @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.pap.properties", description = "The location of the properties file holding configuration information.")
-               })
+        description = "Implements the XACML PAP RESTful API.",
+        urlPatterns = { "/" },
+        loadOnStartup=1,
+        initParams = {
+            @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.pap.properties", description = "The location of the properties file holding configuration information.")
+        })
 public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeListener, Runnable {
-       private static final long serialVersionUID = 1L;
-       private static final Logger LOGGER      = FlexLogger.getLogger(XACMLPapServlet.class);
-       // audit (transaction) LOGGER
-       private static final Logger auditLogger = FlexLogger.getLogger("auditLogger");
-       //Persistence Unit for JPA 
-       private static final String PERSISTENCE_UNIT = "XACML-PAP-REST";
-       private static final String AUDIT_PAP_PERSISTENCE_UNIT = "auditPapPU";
-       // Client Headers. 
-       private static final String ENVIRONMENT_HEADER = "Environment";
-       private static final String ADD_GROUP_ERROR = "addGroupError";
-       private static final String PERSISTENCE_JDBC_PWD = "javax.persistence.jdbc.password";
-       
-       private static final String REGEX = "[0-9a-zA-Z._ ]*";
-       
-       /*
-        * List of Admin Console URLs.
-        * Used to send notifications when configuration changes.
-        * 
-        * The CopyOnWriteArrayList *should* protect from concurrency errors.
-        * This list is seldom changed but often read, so the costs of this approach make sense.
-        */
-       private static final CopyOnWriteArrayList<String> adminConsoleURLStringList = new CopyOnWriteArrayList<>();     
-       
-       private static String configHome;
-       private static String actionHome;
-       /*
-        * This PAP instance's own URL.
-        * Need this when creating URLs to send to the PDPs so they can GET the Policy files from this process. 
-        */
-       private static String papURL = null;
-       // The heartbeat thread.
-       private static Heartbeat heartbeat = null;
-       private static Thread heartbeatThread = null;
-       //The entity manager factory for JPA access
-       private static EntityManagerFactory emf;
-       private static PolicyDBDao policyDBDao;
-       /*
-        * papEngine - This is our engine workhorse that manages the PDP Groups and Nodes.
-        */
-       private static PAPPolicyEngine papEngine = null;
-       /*
-        * These are the parameters needed for DB access from the PAP
-        */
-       private static int papIntegrityAuditPeriodSeconds = -1;
-       private static String papDbDriver = null;
-       private static String papDbUrl = null;
-       private static String papDbUser = null;
-       private static String papDbPassword = null;
-       private static String papResourceName = null;
-       private static String[] papDependencyGroupsFlatArray = null;
-       private static String environment = null;
-       private static String pdpFile = null;
-       
-       private transient IntegrityMonitor im;
-       private transient IntegrityAudit ia;
-       
-       //MicroService Model Properties
-       private static String msOnapName;
-       private static String msPolicyName;
-       /*
-        * This thread may be invoked upon startup to initiate sending PDP policy/pip configuration when
-        * this servlet starts. Its configurable by the admin.
-        */
-       private static transient Thread initiateThread = null;
-       private transient ONAPLoggingContext baseLoggingContext = null;
-       
-       /**
-        * @see HttpServlet#HttpServlet()
-        */
-       public XACMLPapServlet() {
-               super();
-       }
-
-       /**
-        * @see Servlet#init(ServletConfig)
-        */
-       public void init(ServletConfig config) throws ServletException {
-               try {
-                       // Logging
-                       baseLoggingContext = new ONAPLoggingContext();
-                       // fixed data that will be the same in all logging output goes here
-                       try {
-                               String hostname = InetAddress.getLocalHost().getCanonicalHostName();
-                               baseLoggingContext.setServer(hostname);
-                       } catch (UnknownHostException e) {
-                               LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get hostname for logging", e);
-                       }
-                       // Initialize
-                       XACMLRest.xacmlInit(config);
-                       // Load the properties
-                       XACMLRest.loadXacmlProperties(null, null);
-                       /*
-                        * Retrieve the property values
-                        */
-                       setCommonProperties();
-                       String papSiteName = XACMLProperties.getProperty(XACMLRestProperties.PAP_SITE_NAME);
-                       if(papSiteName == null){
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papSiteName property entry");
-                               throw new PAPException("papSiteName is null");
-                       }
-                       String papNodeType = XACMLProperties.getProperty(XACMLRestProperties.PAP_NODE_TYPE);
-                       if(papNodeType == null){
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papNodeType property entry");
-                               throw new PAPException("papNodeType is null");
-                       }
-                       //Integer will throw an exception of anything is missing or unrecognized
-                       int papTransWait = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT));
-                       int papTransTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT));
-                       int papAuditTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_TIMEOUT));
-                       //Boolean will default to false if anything is missing or unrecognized
-                       boolean papAuditFlag = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG));
-                       boolean papFileSystemAudit = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_FLAG));
-                       String papDependencyGroups = XACMLProperties.getProperty(XACMLRestProperties.PAP_DEPENDENCY_GROUPS);
-                       if(papDependencyGroups == null){
-                               throw new PAPException("papDependencyGroups is null");
-                       }
-                       setPAPDependencyGroups(papDependencyGroups);
-                       //Integer will throw an exception of anything is missing or unrecognized
-                       int fpMonitorInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL));
-                       int failedCounterThreshold = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD));
-                       int testTransInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL));
-                       int writeFpcInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL));
-                       LOGGER.debug("\n\n\n**************************************"
-                                       + "\n*************************************"
-                                       + "\n"
-                                       + "\n   papDbDriver = " + papDbDriver
-                                       + "\n   papDbUrl = " + papDbUrl
-                                       + "\n   papDbUser = " + papDbUser
-                                       + "\n   papTransWait = " + papTransWait
-                                       + "\n   papTransTimeout = " + papTransTimeout
-                                       + "\n   papAuditTimeout = " + papAuditTimeout
-                                       + "\n   papAuditFlag = " + papAuditFlag
-                                       + "\n   papFileSystemAudit = " + papFileSystemAudit
-                                       + "\n   papResourceName = " + papResourceName
-                                       + "\n   fpMonitorInterval = " + fpMonitorInterval
-                                       + "\n   failedCounterThreshold = " + failedCounterThreshold
-                                       + "\n   testTransInterval = " + testTransInterval
-                                       + "\n   writeFpcInterval = " + writeFpcInterval
-                                       + "\n   papSiteName = " + papSiteName
-                                       + "\n   papNodeType = " + papNodeType
-                                       + "\n   papDependencyGroupsList = " + papDependencyGroups
-                                       + "\n   papIntegrityAuditPeriodSeconds = " + papIntegrityAuditPeriodSeconds
-                                       + "\n\n*************************************"
-                                       + "\n**************************************");
-                       // Pull custom persistence settings
-                       Properties properties;
-                       try {
-                               properties = XACMLProperties.getProperties();
-                               LOGGER.debug("\n\n\n**************************************"
-                                               + "\n**************************************"
-                                               + "\n\n"
-                                               + "properties = " + properties
-                                               + "\n\n**************************************");
-                       } catch (IOException e) {
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error loading properties with: "
-                                               + "XACMLProperties.getProperties()");
-                               throw new ServletException(e.getMessage(), e.getCause());
-                       }
-                       // Create an IntegrityMonitor
-                       if(properties.getProperty(PERSISTENCE_JDBC_PWD) != null ){
-                               properties.setProperty(PERSISTENCE_JDBC_PWD, CryptoUtils.decryptTxtNoExStr(properties.getProperty(PERSISTENCE_JDBC_PWD, "")));
-                       }
-                       im = IntegrityMonitor.getInstance(papResourceName,properties);
-                       // Create an IntegrityAudit
-                       ia = new IntegrityAudit(papResourceName, AUDIT_PAP_PERSISTENCE_UNIT, properties);
-                       ia.startAuditThread();
-                       // Create the entity manager factory
-                       setEMF(properties);
-                       // we are about to call the PDPs and give them their configuration.
-                       // To do that we need to have the URL of this PAP so we can construct the Policy file URLs
-                       setPAPURL(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_URL));
-                       //Create the policyDBDao
-                       setPolicyDBDao();
-                       // Load our PAP engine, first create a factory
-                       ONAPPapEngineFactory factory = ONAPPapEngineFactory.newInstance(XACMLProperties.getProperty(XACMLProperties.PROP_PAP_PAPENGINEFACTORY));
-                       // The factory knows how to go about creating a PAP Engine
-                       setPAPEngine((PAPPolicyEngine) factory.newEngine());
-                       PolicyDBDaoTransaction addNewGroup = null;
+    private static final long serialVersionUID = 1L;
+    private static final Logger LOGGER = FlexLogger.getLogger(XACMLPapServlet.class);
+    // audit (transaction) LOGGER
+    private static final Logger auditLogger = FlexLogger.getLogger("auditLogger");
+    //Persistence Unit for JPA
+    private static final String PERSISTENCE_UNIT = "XACML-PAP-REST";
+    private static final String AUDIT_PAP_PERSISTENCE_UNIT = "auditPapPU";
+    // Client Headers.
+    private static final String ENVIRONMENT_HEADER = "Environment";
+    private static final String ADD_GROUP_ERROR = "addGroupError";
+    private static final String PERSISTENCE_JDBC_PWD = "javax.persistence.jdbc.password";
+
+    private static final String REGEX = "[0-9a-zA-Z._ ]*";
+
+    /*
+     * List of Admin Console URLs.
+     * Used to send notifications when configuration changes.
+     *
+     * The CopyOnWriteArrayList *should* protect from concurrency errors.
+     * This list is seldom changed but often read, so the costs of this approach make sense.
+     */
+    private static final CopyOnWriteArrayList<String> adminConsoleURLStringList = new CopyOnWriteArrayList<>();
+
+    private static String configHome;
+    private static String actionHome;
+    /*
+     * This PAP instance's own URL.
+     * Need this when creating URLs to send to the PDPs so they can GET the Policy files from this process.
+     */
+    private static String papURL = null;
+    // The heartbeat thread.
+    private static Heartbeat heartbeat = null;
+    private static Thread heartbeatThread = null;
+    //The entity manager factory for JPA access
+    private static EntityManagerFactory emf;
+    private static PolicyDBDao policyDBDao;
+    /*
+     * papEngine - This is our engine workhorse that manages the PDP Groups and Nodes.
+     */
+    private static PAPPolicyEngine papEngine = null;
+    /*
+     * These are the parameters needed for DB access from the PAP
+     */
+    private static int papIntegrityAuditPeriodSeconds = -1;
+    private static String papDbDriver = null;
+    private static String papDbUrl = null;
+    private static String papDbUser = null;
+    private static String papDbPassword = null;
+    private static String papResourceName = null;
+    private static String[] papDependencyGroupsFlatArray = null;
+    private static String environment = null;
+    private static String pdpFile = null;
+
+    private transient IntegrityMonitor im;
+    private transient IntegrityAudit ia;
+
+    //MicroService Model Properties
+    private static String msOnapName;
+    private static String msPolicyName;
+    /*
+     * This thread may be invoked upon startup to initiate sending PDP policy/pip configuration when
+     * this servlet starts. Its configurable by the admin.
+     */
+    private static transient Thread initiateThread = null;
+    private transient ONAPLoggingContext baseLoggingContext = null;
+
+    /**
+     * @see HttpServlet#HttpServlet()
+     */
+    public XACMLPapServlet() {
+        super();
+    }
+
+    /**
+     * @see Servlet#init(ServletConfig)
+     */
+    public void init(ServletConfig config) throws ServletException {
+        try {
+            // Logging
+            baseLoggingContext = new ONAPLoggingContext();
+            // fixed data that will be the same in all logging output goes here
+            try {
+                String hostname = InetAddress.getLocalHost().getCanonicalHostName();
+                baseLoggingContext.setServer(hostname);
+            } catch (UnknownHostException e) {
+                LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get hostname for logging", e);
+            }
+            // Initialize
+            XACMLRest.xacmlInit(config);
+            // Load the properties
+            XACMLRest.loadXacmlProperties(null, null);
+            /*
+             * Retrieve the property values
+             */
+            setCommonProperties();
+            String papSiteName = XACMLProperties.getProperty(XACMLRestProperties.PAP_SITE_NAME);
+            if(papSiteName == null){
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papSiteName property entry");
+                throw new PAPException("papSiteName is null");
+            }
+            String papNodeType = XACMLProperties.getProperty(XACMLRestProperties.PAP_NODE_TYPE);
+            if(papNodeType == null){
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papNodeType property entry");
+                throw new PAPException("papNodeType is null");
+            }
+            //Integer will throw an exception of anything is missing or unrecognized
+            int papTransWait = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT));
+            int papTransTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT));
+            int papAuditTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_TIMEOUT));
+            //Boolean will default to false if anything is missing or unrecognized
+            boolean papAuditFlag = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG));
+            boolean papFileSystemAudit = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_FLAG));
+            String papDependencyGroups = XACMLProperties.getProperty(XACMLRestProperties.PAP_DEPENDENCY_GROUPS);
+            if(papDependencyGroups == null){
+                throw new PAPException("papDependencyGroups is null");
+            }
+            setPAPDependencyGroups(papDependencyGroups);
+            //Integer will throw an exception of anything is missing or unrecognized
+            int fpMonitorInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL));
+            int failedCounterThreshold = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD));
+            int testTransInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL));
+            int writeFpcInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL));
+            LOGGER.debug("\n\n\n**************************************"
+                    + "\n*************************************"
+                    + "\n"
+                    + "\n   papDbDriver = " + papDbDriver
+                    + "\n   papDbUrl = " + papDbUrl
+                    + "\n   papDbUser = " + papDbUser
+                    + "\n   papTransWait = " + papTransWait
+                    + "\n   papTransTimeout = " + papTransTimeout
+                    + "\n   papAuditTimeout = " + papAuditTimeout
+                    + "\n   papAuditFlag = " + papAuditFlag
+                    + "\n   papFileSystemAudit = " + papFileSystemAudit
+                    + "\n      papResourceName = " + papResourceName
+                    + "\n      fpMonitorInterval = " + fpMonitorInterval
+                    + "\n      failedCounterThreshold = " + failedCounterThreshold
+                    + "\n      testTransInterval = " + testTransInterval
+                    + "\n      writeFpcInterval = " + writeFpcInterval
+                    + "\n      papSiteName = " + papSiteName
+                    + "\n      papNodeType = " + papNodeType
+                    + "\n      papDependencyGroupsList = " + papDependencyGroups
+                    + "\n   papIntegrityAuditPeriodSeconds = " + papIntegrityAuditPeriodSeconds
+                    + "\n\n*************************************"
+                    + "\n**************************************");
+            // Pull custom persistence settings
+            Properties properties;
+            try {
+                properties = XACMLProperties.getProperties();
+                LOGGER.debug("\n\n\n**************************************"
+                        + "\n**************************************"
+                        + "\n\n"
+                        + "properties = " + properties
+                        + "\n\n**************************************");
+            } catch (IOException e) {
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error loading properties with: "
+                        + "XACMLProperties.getProperties()");
+                throw new ServletException(e.getMessage(), e.getCause());
+            }
+            // Create an IntegrityMonitor
+            if(properties.getProperty(PERSISTENCE_JDBC_PWD) != null ){
+                properties.setProperty(PERSISTENCE_JDBC_PWD, CryptoUtils.decryptTxtNoExStr(properties.getProperty(PERSISTENCE_JDBC_PWD, "")));
+            }
+            im = IntegrityMonitor.getInstance(papResourceName,properties);
+            // Create an IntegrityAudit
+            ia = new IntegrityAudit(papResourceName, AUDIT_PAP_PERSISTENCE_UNIT, properties);
+            ia.startAuditThread();
+            // Create the entity manager factory
+            setEMF(properties);
+            // we are about to call the PDPs and give them their configuration.
+            // To do that we need to have the URL of this PAP so we can construct the Policy file URLs
+            setPAPURL(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_URL));
+            //Create the policyDBDao
+            setPolicyDBDao();
+            // Load our PAP engine, first create a factory
+            ONAPPapEngineFactory factory = ONAPPapEngineFactory.newInstance(XACMLProperties.getProperty(XACMLProperties.PROP_PAP_PAPENGINEFACTORY));
+            // The factory knows how to go about creating a PAP Engine
+            setPAPEngine((PAPPolicyEngine) factory.newEngine());
+            PolicyDBDaoTransaction addNewGroup = null;
             if (((org.onap.policy.xacml.std.pap.StdEngine) papEngine).wasDefaultGroupJustAdded) {
                 try {
                     addNewGroup = policyDBDao.getNewTransaction();
@@ -310,52 +310,52 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                     }
                 }
             }
-                       policyDBDao.setPapEngine((PAPPolicyEngine) XACMLPapServlet.papEngine);
-               if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG))){
-                       /*
-                        * Auditing the local File System groups to be in sync with the Database
-                        */
-                       
-                       //get an AuditTransaction to lock out all other transactions
-                       PolicyDBDaoTransaction auditTrans = policyDBDao.getNewAuditTransaction();
-                       
-                       LOGGER.info("PapServlet: calling auditLocalFileSystem for PDP group audit");
+            policyDBDao.setPapEngine((PAPPolicyEngine) XACMLPapServlet.papEngine);
+            if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG))){
+                /*
+                 * Auditing the local File System groups to be in sync with the Database
+                 */
+
+                //get an AuditTransaction to lock out all other transactions
+                PolicyDBDaoTransaction auditTrans = policyDBDao.getNewAuditTransaction();
+
+                LOGGER.info("PapServlet: calling auditLocalFileSystem for PDP group audit");
                 LOGGER.info("PapServlet: old group is " + papEngine.getDefaultGroup().toString());
-                       //get the current filesystem group and update from the database if needed
+                //get the current filesystem group and update from the database if needed
                 StdPDPGroup group = (StdPDPGroup) papEngine.getDefaultGroup();
                 StdPDPGroup updatedGroup = policyDBDao.auditLocalFileSystem(group);
                 if(updatedGroup!=null) {
-                       papEngine.updateGroup(updatedGroup);
+                    papEngine.updateGroup(updatedGroup);
                 }    
                 LOGGER.info("PapServlet:  updated group is " + papEngine.getDefaultGroup().toString());
                 
-                       //release the transaction lock
-                       auditTrans.close();
-               }
-               
-                       // Sanity check for URL.
-                       if (XACMLPapServlet.papURL == null) {
-                               throw new PAPException("The property " + XACMLRestProperties.PROP_PAP_URL + " is not valid: " + XACMLPapServlet.papURL);
-                       }
-                       // Configurable - have the PAP servlet initiate sending the latest PDP policy/pip configuration
-                       // to all its known PDP nodes.
-                       if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_INITIATE_PDP_CONFIG))) {
-                           startInitiateThreadService(new Thread(this));
-                       }
-                       // After startup, the PAP does Heartbeat's to each of the PDPs periodically
-                       startHeartBeatService(new Heartbeat((PAPPolicyEngine) XACMLPapServlet.papEngine));
-
-               } catch (FactoryException | PAPException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine");
-                       throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; error: "+e);
-               } catch (Exception e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine - unexpected error");
-                       throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; unexpected error: "+e);
-               }
-       }
-
-       private static void startInitiateThreadService(Thread thread) {
-           initiateThread = thread;
+                //release the transaction lock
+                auditTrans.close();
+            }
+
+            // Sanity check for URL.
+            if (XACMLPapServlet.papURL == null) {
+                throw new PAPException("The property " + XACMLRestProperties.PROP_PAP_URL + " is not valid: " + XACMLPapServlet.papURL);
+            }
+            // Configurable - have the PAP servlet initiate sending the latest PDP policy/pip configuration
+            // to all its known PDP nodes.
+            if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_INITIATE_PDP_CONFIG))) {
+                startInitiateThreadService(new Thread(this));
+            }
+            // After startup, the PAP does Heartbeat's to each of the PDPs periodically
+            startHeartBeatService(new Heartbeat((PAPPolicyEngine) XACMLPapServlet.papEngine));
+
+        } catch (FactoryException | PAPException e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine");
+            throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; error: "+e);
+        } catch (Exception e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine - unexpected error");
+            throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; unexpected error: "+e);
+        }
+    }
+
+    private static void startInitiateThreadService(Thread thread) {
+        initiateThread = thread;
         initiateThread.start();
     }
 
@@ -368,13 +368,13 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
     }
 
     private static void startHeartBeatService(Heartbeat heartbeat) {
-           XACMLPapServlet.heartbeat = heartbeat;
+        XACMLPapServlet.heartbeat = heartbeat;
         XACMLPapServlet.heartbeatThread = new Thread(XACMLPapServlet.heartbeat);
         XACMLPapServlet.heartbeatThread.start();
     }
 
     private static void setPolicyDBDao() throws ServletException {
-           try {
+        try {
             policyDBDao = PolicyDBDao.getPolicyDBDaoInstance(getEmf());
         } catch (Exception e) {
             throw new ServletException("Unable to Create Policy DBDao Instance",e);
@@ -382,7 +382,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
     }
 
     private static void setEMF(Properties properties) throws ServletException {
-           emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, properties);
+        emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, properties);
         if (emf == null) {
             PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager factory with persistence unit: "
                     + PERSISTENCE_UNIT);
@@ -391,15 +391,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
     }
 
     private static void setPAPURL(String papURL) {
-           XACMLPapServlet.papURL = papURL;
+        XACMLPapServlet.papURL = papURL;
     }
 
     private static void setPAPEngine(PAPPolicyEngine newEngine) {
-           XACMLPapServlet.papEngine = newEngine;
+        XACMLPapServlet.papEngine = newEngine;
     }
 
     private static void setPAPDependencyGroups(String papDependencyGroups) throws PAPException {
-           try{
+        try{
             //Now we have flattened the array into a simple comma-separated list
             papDependencyGroupsFlatArray = papDependencyGroups.split("[;,]");
             //clean up the entries
@@ -423,7 +423,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
     }
 
     private static void setCommonProperties() throws PAPException {
-           setConfigHome();
+        setConfigHome();
         setActionHome();
         papDbDriver = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_DRIVER);
         if(papDbDriver == null){
@@ -470,1686 +470,1686 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
     }
 
     /**
-        * Thread used only during PAP startup to initiate change messages to all known PDPs.
-        * This must be on a separate thread so that any GET requests from the PDPs during this update can be serviced.
-        */
-       @Override
-       public void run() {
-               // send the current configuration to all the PDPs that we know about
-               changed();
-       }
-
-       /**
-        * @see Servlet#destroy()
-        * 
-        * Depending on how this servlet is run, we may or may not care about cleaning up the resources.
-        * For now we assume that we do care.
-        */
-       @Override
-       public void destroy() {
-               // Make sure our threads are destroyed
-               if (XACMLPapServlet.heartbeatThread != null) {
-                       // stop the heartbeat
-                       try {
-                               if (XACMLPapServlet.heartbeat != null) {
-                                       XACMLPapServlet.heartbeat.terminate();
-                               }
-                               XACMLPapServlet.heartbeatThread.interrupt();
-                               XACMLPapServlet.heartbeatThread.join();
-                       } catch (InterruptedException e) {
-                           XACMLPapServlet.heartbeatThread.interrupt();
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Error stopping heartbeat");
-                       }
-               }
-               if (initiateThread != null) {
-                       try {
-                               initiateThread.interrupt();
-                               initiateThread.join();
-                       } catch (InterruptedException e) {
-                           initiateThread.interrupt();
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Error stopping thread");
-                       }
-               }
-       }
-
-       /**
-        * Called by:
-        *      - PDP nodes to register themselves with the PAP, and
-        *      - Admin Console to make changes in the PDP Groups.
-        * 
-        * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
-        */
-       protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-               ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
-               loggingContext.transactionStarted();
-               loggingContext.setServiceName("PAP.post");
-               if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
-                       UUID requestID = UUID.randomUUID();
-                       loggingContext.setRequestID(requestID.toString());
-                       PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPost) so we generated one");
-               } else {
-                       PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doPost)");
-               }
-               PolicyDBDaoTransaction pdpTransaction = null;
-               loggingContext.metricStarted();
-               try {
-                       im.startTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
-               } catch (AdministrativeStateException ae){
-                       String message = "POST interface called for PAP " + papResourceName + " but it has an Administrative"
-                                       + " state of " + im.getStateManager().getAdminState()
-                                       + "\n Exception Message: " +  PolicyUtils.CATCH_EXCEPTION;
-                       LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, ae);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
-                       loggingContext.transactionEnded();                      
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }catch (StandbyStatusException se) {
-                       String message = "POST interface called for PAP " + papResourceName + " but it has a Standby Status"
-                                       + " of " + im.getStateManager().getStandbyStatus()
-                                       + "\n Exception Message: " + se.getMessage();
-                       LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, se);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               } catch (IntegrityMonitorException e) {
-                       String message = "POST interface called for PAP " + papResourceName + " but an exception occurred"
-                                       + "\n Exception Message: " + e.getMessage();
-                       LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, e);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }
-               try {
-                       loggingContext.metricStarted();
-                       XACMLRest.dumpRequest(request);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost dumpRequest");
-                       // since getParameter reads the content string, explicitly get the content before doing that.
-                       // Simply getting the inputStream seems to protect it against being consumed by getParameter.
-                       request.getInputStream();
-                       String groupId = request.getParameter("groupId");
-                       String apiflag = request.getParameter("apiflag");
-                       if(groupId != null) {
-                               // Is this from the Admin Console or API?
-                               if(apiflag!=null && apiflag.equalsIgnoreCase("api")) {
-                                       // this is from the API so we need to check the client credentials before processing the request
-                                       if(!authorizeRequest(request)){
-                                               String message = "PEP not Authorized for making this Request!!";
-                                               PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                                               loggingContext.transactionEnded();
-                                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                                               setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
-                                               im.endTransaction();
-                                               return;
-                                       }
-                               }
-                               loggingContext.metricStarted();
-                               doACPost(request, response, groupId, loggingContext);
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doPost doACPost");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               im.endTransaction();
-                               return;
-                       }
-                       // Request is from a PDP asking for its config.
-                       loggingContext.setServiceName("PDP:PAP.register");
-                       // Get the PDP's ID
-                       String id = this.getPDPID(request);
-                       String jmxport = this.getPDPJMX(request);
-                       LOGGER.info("Request(doPost) from PDP coming up: " + id);
-                       // Get the PDP Object
-                       OnapPDP pdp = XACMLPapServlet.papEngine.getPDP(id);
-                       // Is it known?
-                       if (pdp == null) {
-                               LOGGER.info("Unknown PDP: " + id);
-                               // Check PDP ID
-                               if(CheckPDP.validateID(id)){
-                                       pdpTransaction = policyDBDao.getNewTransaction();
-                                       try {
-                                               pdpTransaction.addPdpToGroup(id, XACMLPapServlet.papEngine.getDefaultGroup().getId(), id, "Registered on first startup", Integer.parseInt(jmxport), "PDP autoregister");
-                                               XACMLPapServlet.papEngine.newPDP(id, XACMLPapServlet.papEngine.getDefaultGroup(), id, "Registered on first startup", Integer.parseInt(jmxport));
-                                       } catch (NullPointerException | PAPException | IllegalArgumentException | IllegalStateException | PersistenceException | PolicyDBException e) {
-                                               pdpTransaction.rollbackTransaction();
-                                               String message = "Failed to create new PDP for id: " + id;
-                                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " " + message);
-                                               loggingContext.transactionEnded();
-                                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                                               im.endTransaction();
-                                               return;
-                                       }
-                                       // get the PDP we just created
-                           try{
-                               pdp = XACMLPapServlet.papEngine.getPDP(id);
-                           }catch(PAPException e){
-                               LOGGER.error(e);
-                           }
-                                       if (pdp == null) {
-                                               if(pdpTransaction != null){
-                                                       pdpTransaction.rollbackTransaction();
-                                               }
-                                               String message = "Failed to create new PDP for id: " + id;
-                                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " " + message);
-                                               loggingContext.transactionEnded();
-                                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                                               im.endTransaction();
-                                               return;
-                                       }
-                               } else {
-                                       String message = "PDP is Unauthorized to Connect to PAP: "+ id;
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                                       setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not Authorized to connect to this PAP. Please contact the PAP Admin for registration.");
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       im.endTransaction();
-                                       return;
-                               }
-                               try{
-                                       loggingContext.metricStarted();
-                                       pdpTransaction.commitTransaction();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doPost commitTransaction");
-                               } catch(Exception e){
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Could not commit transaction to put pdp in the database");
-                               }
-                       }
-                       if (jmxport != null && jmxport != ""){
-                           try{
-                       ((StdPDP) pdp).setJmxPort(Integer.valueOf(jmxport));
-                           }catch(NumberFormatException e){
-                               LOGGER.error(e);
-                           }
-                       }
-                       // Get the PDP's Group
-                       OnapPDPGroup group =null;
-                       try{
-                   group= XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
-                       }catch(PAPException e){
-                           LOGGER.error(e);
-                       }
-                       if (group == null) {
-                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " PDP not associated with any group, even the default");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not associated with any group, even the default");
-                               im.endTransaction();
-                               return;
-                       }
-                       // Determine what group the PDP node is in and get
-                       // its policy/pip properties.
-                       Properties policies = group.getPolicyProperties();
-                       Properties pipconfig = group.getPipConfigProperties();
-                       // Get the current policy/pip configuration that the PDP has
-                       Properties pdpProperties = new Properties();
-                       try{
-                   pdpProperties.load(request.getInputStream());
-                       }catch(IOException e){
-                           LOGGER.error(e);
-                       }
-                       LOGGER.info("PDP Current Properties: " + pdpProperties.toString());
-                       LOGGER.info("Policies: " + (policies != null ? policies.toString() : "null"));
-                       LOGGER.info("Pip config: " + (pipconfig != null ? pipconfig.toString() : "null"));
-                       // Validate the node's properties
-                       boolean isCurrent = this.isPDPCurrent(policies, pipconfig, pdpProperties);
-                       // Send back current configuration
-                       if (isCurrent == false) {
-                               // Tell the PDP we are sending back the current policies/pip config
-                               LOGGER.info("PDP configuration NOT current.");
-                               if (policies != null) {
-                                       // Put URL's into the properties in case the PDP needs to
-                                       // retrieve them.
-                                       this.populatePolicyURL(request.getRequestURL(), policies);
-                                       // Copy the properties to the output stream
-                                       try{
-                                           policies.store(response.getOutputStream(), "");
-                                       }catch(IOException e){
-                               LOGGER.error(e);
-                           }
-                               }
-                               if (pipconfig != null) {
-                                       // Copy the properties to the output stream
-                                       try{
-                                           pipconfig.store(response.getOutputStream(), "");
-                                       }catch(IOException e){
-                               LOGGER.error(e);
-                           }
-                               }
-                               // We are good - and we are sending them information
-                               response.setStatus(HttpServletResponse.SC_OK);
-                               try{
-                                   setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
-                               }catch(PAPException e){
-                       LOGGER.error(e);
-                   }
-                       } else {
-                               // Tell them they are good
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               try{
-                                   setPDPSummaryStatus(pdp, PDPStatus.Status.UP_TO_DATE);
-                               }catch(PAPException e){
-                       LOGGER.error(e);
-                   }
-                       }
-                       // tell the AC that something changed
-                       loggingContext.metricStarted();
-                       notifyAC();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPost notifyAC");
-                       loggingContext.transactionEnded();
-                       auditLogger.info("Success");
-                       PolicyLogger.audit("Transaction Ended Successfully");
-               } catch (PAPException | IOException | NumberFormatException e) {
-                       if(pdpTransaction != null){
-                               pdpTransaction.rollbackTransaction();
-                       }
-                       LOGGER.debug(XACMLErrorConstants.ERROR_PROCESS_FLOW + "POST exception: " + e, e);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       im.endTransaction();
-                       return;
-               }
-               //Catch anything that fell through
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Ended");
-               im.endTransaction();
-       }
-
-       private void setResponseError(HttpServletResponse response,int responseCode, String message) {
-           try {
-               if(message != null && !message.isEmpty()){
-                      response.sendError(responseCode, message);
-               }
+     * Thread used only during PAP startup to initiate change messages to all known PDPs.
+     * This must be on a separate thread so that any GET requests from the PDPs during this update can be serviced.
+     */
+    @Override
+    public void run() {
+        // send the current configuration to all the PDPs that we know about
+        changed();
+    }
+
+    /**
+     * @see Servlet#destroy()
+     *
+     * Depending on how this servlet is run, we may or may not care about cleaning up the resources.
+     * For now we assume that we do care.
+     */
+    @Override
+    public void destroy() {
+        // Make sure our threads are destroyed
+        if (XACMLPapServlet.heartbeatThread != null) {
+            // stop the heartbeat
+            try {
+                if (XACMLPapServlet.heartbeat != null) {
+                    XACMLPapServlet.heartbeat.terminate();
+                }
+                XACMLPapServlet.heartbeatThread.interrupt();
+                XACMLPapServlet.heartbeatThread.join();
+            } catch (InterruptedException e) {
+                XACMLPapServlet.heartbeatThread.interrupt();
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Error stopping heartbeat");
+            }
+        }
+        if (initiateThread != null) {
+            try {
+                initiateThread.interrupt();
+                initiateThread.join();
+            } catch (InterruptedException e) {
+                initiateThread.interrupt();
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Error stopping thread");
+            }
+        }
+    }
+
+    /**
+     * Called by:
+     *         - PDP nodes to register themselves with the PAP, and
+     *         - Admin Console to make changes in the PDP Groups.
+     *
+     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+     */
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
+        loggingContext.transactionStarted();
+        loggingContext.setServiceName("PAP.post");
+        if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+            UUID requestID = UUID.randomUUID();
+            loggingContext.setRequestID(requestID.toString());
+            PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPost) so we generated one");
+        } else {
+            PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doPost)");
+        }
+        PolicyDBDaoTransaction pdpTransaction = null;
+        loggingContext.metricStarted();
+        try {
+            im.startTransaction();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+        } catch (AdministrativeStateException ae){
+            String message = "POST interface called for PAP " + papResourceName + " but it has an Administrative"
+                    + " state of " + im.getStateManager().getAdminState()
+                    + "\n Exception Message: " +  PolicyUtils.CATCH_EXCEPTION;
+            LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, ae);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }catch (StandbyStatusException se) {
+            String message = "POST interface called for PAP " + papResourceName + " but it has a Standby Status"
+                    + " of " + im.getStateManager().getStandbyStatus()
+                    + "\n Exception Message: " + se.getMessage();
+            LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, se);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        } catch (IntegrityMonitorException e) {
+            String message = "POST interface called for PAP " + papResourceName + " but an exception occurred"
+                    + "\n Exception Message: " + e.getMessage();
+            LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, e);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }
+        try {
+            loggingContext.metricStarted();
+            XACMLRest.dumpRequest(request);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost dumpRequest");
+            // since getParameter reads the content string, explicitly get the content before doing that.
+            // Simply getting the inputStream seems to protect it against being consumed by getParameter.
+            request.getInputStream();
+            String groupId = request.getParameter("groupId");
+            String apiflag = request.getParameter("apiflag");
+            if(groupId != null) {
+                // Is this from the Admin Console or API?
+                if(apiflag!=null && apiflag.equalsIgnoreCase("api")) {
+                    // this is from the API so we need to check the client credentials before processing the request
+                    if(!authorizeRequest(request)){
+                        String message = "PEP not Authorized for making this Request!!";
+                        PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+                        im.endTransaction();
+                        return;
+                    }
+                }
+                loggingContext.metricStarted();
+                doACPost(request, response, groupId, loggingContext);
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doPost doACPost");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Ended Successfully");
+                im.endTransaction();
+                return;
+            }
+            // Request is from a PDP asking for its config.
+            loggingContext.setServiceName("PDP:PAP.register");
+            // Get the PDP's ID
+            String id = this.getPDPID(request);
+            String jmxport = this.getPDPJMX(request);
+            LOGGER.info("Request(doPost) from PDP coming up: " + id);
+            // Get the PDP Object
+            OnapPDP pdp = XACMLPapServlet.papEngine.getPDP(id);
+            // Is it known?
+            if (pdp == null) {
+                LOGGER.info("Unknown PDP: " + id);
+                // Check PDP ID
+                if(CheckPDP.validateID(id)){
+                    pdpTransaction = policyDBDao.getNewTransaction();
+                    try {
+                        pdpTransaction.addPdpToGroup(id, XACMLPapServlet.papEngine.getDefaultGroup().getId(), id, "Registered on first startup", Integer.parseInt(jmxport), "PDP autoregister");
+                        XACMLPapServlet.papEngine.newPDP(id, XACMLPapServlet.papEngine.getDefaultGroup(), id, "Registered on first startup", Integer.parseInt(jmxport));
+                    } catch (NullPointerException | PAPException | IllegalArgumentException | IllegalStateException | PersistenceException | PolicyDBException e) {
+                        pdpTransaction.rollbackTransaction();
+                        String message = "Failed to create new PDP for id: " + id;
+                        PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " " + message);
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                        im.endTransaction();
+                        return;
+                    }
+                    // get the PDP we just created
+                    try{
+                        pdp = XACMLPapServlet.papEngine.getPDP(id);
+                    }catch(PAPException e){
+                        LOGGER.error(e);
+                    }
+                    if (pdp == null) {
+                        if(pdpTransaction != null){
+                            pdpTransaction.rollbackTransaction();
+                        }
+                        String message = "Failed to create new PDP for id: " + id;
+                        PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " " + message);
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                        im.endTransaction();
+                        return;
+                    }
+                } else {
+                    String message = "PDP is Unauthorized to Connect to PAP: "+ id;
+                    loggingContext.transactionEnded();
+                    PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                    setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not Authorized to connect to this PAP. Please contact the PAP Admin for registration.");
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    im.endTransaction();
+                    return;
+                }
+                try{
+                    loggingContext.metricStarted();
+                    pdpTransaction.commitTransaction();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doPost commitTransaction");
+                } catch(Exception e){
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Could not commit transaction to put pdp in the database");
+                }
+            }
+            if (jmxport != null && jmxport != ""){
+                try{
+                    ((StdPDP) pdp).setJmxPort(Integer.valueOf(jmxport));
+                }catch(NumberFormatException e){
+                    LOGGER.error(e);
+                }
+            }
+            // Get the PDP's Group
+            OnapPDPGroup group =null;
+            try{
+                group= XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
+            }catch(PAPException e){
+                LOGGER.error(e);
+            }
+            if (group == null) {
+                PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " PDP not associated with any group, even the default");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not associated with any group, even the default");
+                im.endTransaction();
+                return;
+            }
+            // Determine what group the PDP node is in and get
+            // its policy/pip properties.
+            Properties policies = group.getPolicyProperties();
+            Properties pipconfig = group.getPipConfigProperties();
+            // Get the current policy/pip configuration that the PDP has
+            Properties pdpProperties = new Properties();
+            try{
+                pdpProperties.load(request.getInputStream());
+            }catch(IOException e){
+                LOGGER.error(e);
+            }
+            LOGGER.info("PDP Current Properties: " + pdpProperties.toString());
+            LOGGER.info("Policies: " + (policies != null ? policies.toString() : "null"));
+            LOGGER.info("Pip config: " + (pipconfig != null ? pipconfig.toString() : "null"));
+            // Validate the node's properties
+            boolean isCurrent = this.isPDPCurrent(policies, pipconfig, pdpProperties);
+            // Send back current configuration
+            if (isCurrent == false) {
+                // Tell the PDP we are sending back the current policies/pip config
+                LOGGER.info("PDP configuration NOT current.");
+                if (policies != null) {
+                    // Put URL's into the properties in case the PDP needs to
+                    // retrieve them.
+                    this.populatePolicyURL(request.getRequestURL(), policies);
+                    // Copy the properties to the output stream
+                    try{
+                        policies.store(response.getOutputStream(), "");
+                    }catch(IOException e){
+                        LOGGER.error(e);
+                    }
+                }
+                if (pipconfig != null) {
+                    // Copy the properties to the output stream
+                    try{
+                        pipconfig.store(response.getOutputStream(), "");
+                    }catch(IOException e){
+                        LOGGER.error(e);
+                    }
+                }
+                // We are good - and we are sending them information
+                response.setStatus(HttpServletResponse.SC_OK);
+                try{
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
+                }catch(PAPException e){
+                    LOGGER.error(e);
+                }
+            } else {
+                // Tell them they are good
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                try{
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.UP_TO_DATE);
+                }catch(PAPException e){
+                    LOGGER.error(e);
+                }
+            }
+            // tell the AC that something changed
+            loggingContext.metricStarted();
+            notifyAC();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPost notifyAC");
+            loggingContext.transactionEnded();
+            auditLogger.info("Success");
+            PolicyLogger.audit("Transaction Ended Successfully");
+        } catch (PAPException | IOException | NumberFormatException e) {
+            if(pdpTransaction != null){
+                pdpTransaction.rollbackTransaction();
+            }
+            LOGGER.debug(XACMLErrorConstants.ERROR_PROCESS_FLOW + "POST exception: " + e, e);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            im.endTransaction();
+            return;
+        }
+        //Catch anything that fell through
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Ended");
+        im.endTransaction();
+    }
+
+    private void setResponseError(HttpServletResponse response,int responseCode, String message) {
+        try {
+            if(message != null && !message.isEmpty()){
+                   response.sendError(responseCode, message);
+            }
         } catch (IOException e) {
             LOGGER.error("Error setting Error response Header ", e);
         }
-           return;
+        return;
     }
 
     /**
-        * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
-        */
-       protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-               ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
-               loggingContext.transactionStarted();
-               loggingContext.setServiceName("PAP.get");
-               if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
-                       UUID requestID = UUID.randomUUID();
-                       loggingContext.setRequestID(requestID.toString());
-                       PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doGet) so we generated one");
-               } else {
-                       PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doGet)");
-               }
-                       loggingContext.metricStarted();
-                       XACMLRest.dumpRequest(request);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doGet dumpRequest");
-                       String pathInfo = request.getRequestURI();
-                       LOGGER.info("path info: " + pathInfo);
-                       if (pathInfo != null){
-                               //DO NOT do a im.startTransaction for the test request
-                               if (pathInfo.equals("/pap/test")) {
-                                       try {
-                                               testService(loggingContext, response);
-                                       } catch (IOException e) {
-                                               LOGGER.debug(e);
-                                       }
-                                       return;
-                               }
-                       }
-                       //This im.startTransaction() covers all other Get transactions
-                       try {
-                               loggingContext.metricStarted();
-                               im.startTransaction();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doGet im startTransaction");
-                       } catch (AdministrativeStateException ae){
-                               String message = "GET interface called for PAP " + papResourceName + " but it has an Administrative"
-                                               + " state of " + im.getStateManager().getAdminState()
-                                               + "\n Exception Message: " + ae.getMessage();
-                               LOGGER.info(message, ae);
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                               return;
-                       }catch (StandbyStatusException se) {
-                               String message = "GET interface called for PAP " + papResourceName + " but it has a Standby Status"
-                                               + " of " + im.getStateManager().getStandbyStatus()
-                                               + "\n Exception Message: " + se.getMessage();
-                               LOGGER.info(message, se);
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                               return;
-                       } catch (IntegrityMonitorException e) {
-                               String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
-                                               + "\n Exception Message: " + e.getMessage();
-                               LOGGER.info(message, e);
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                               return;
-                       }
-                       // Request from the API to get the gitPath
-                       String apiflag = request.getParameter("apiflag");
-                       if (apiflag!=null) {
-                               if(authorizeRequest(request)){
-                                       APIRequestHandler apiRequestHandler = new APIRequestHandler();
-                                       try{                            
-                                               loggingContext.metricStarted();
-                                           apiRequestHandler.doGet(request,response, apiflag);
-                                               loggingContext.metricEnded();
-                                               PolicyLogger.metrics("XACMLPapServlet doGet apiRequestHandler doGet");
-                                       }catch(IOException e){
-                                           LOGGER.error(e);
-                                       }
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       im.endTransaction();
-                                       return;
-                               } else {
-                                       String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
-                                       PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
-                                       im.endTransaction();
-                                       return;
-                               }
-                       }
-                       // Is this from the Admin Console?
-                       String groupId = request.getParameter("groupId");
-                       if (groupId != null) {
-                               // this is from the Admin Console, so handle separately
-                               try{
-                                       loggingContext.metricStarted();
-                                   doACGet(request, response, groupId, loggingContext);
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doGet doACGet");
-                               } catch(IOException e){
+     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+     */
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
+        loggingContext.transactionStarted();
+        loggingContext.setServiceName("PAP.get");
+        if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+            UUID requestID = UUID.randomUUID();
+            loggingContext.setRequestID(requestID.toString());
+            PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doGet) so we generated one");
+        } else {
+            PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doGet)");
+        }
+            loggingContext.metricStarted();
+            XACMLRest.dumpRequest(request);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doGet dumpRequest");
+            String pathInfo = request.getRequestURI();
+            LOGGER.info("path info: " + pathInfo);
+            if (pathInfo != null){
+                //DO NOT do a im.startTransaction for the test request
+                if (pathInfo.equals("/pap/test")) {
+                    try {
+                        testService(loggingContext, response);
+                    } catch (IOException e) {
+                        LOGGER.debug(e);
+                    }
+                    return;
+                }
+            }
+            //This im.startTransaction() covers all other Get transactions
+            try {
+                loggingContext.metricStarted();
+                im.startTransaction();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doGet im startTransaction");
+            } catch (AdministrativeStateException ae){
+                String message = "GET interface called for PAP " + papResourceName + " but it has an Administrative"
+                        + " state of " + im.getStateManager().getAdminState()
+                        + "\n Exception Message: " + ae.getMessage();
+                LOGGER.info(message, ae);
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                return;
+            }catch (StandbyStatusException se) {
+                String message = "GET interface called for PAP " + papResourceName + " but it has a Standby Status"
+                        + " of " + im.getStateManager().getStandbyStatus()
+                        + "\n Exception Message: " + se.getMessage();
+                LOGGER.info(message, se);
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                return;
+            } catch (IntegrityMonitorException e) {
+                String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
+                        + "\n Exception Message: " + e.getMessage();
+                LOGGER.info(message, e);
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                return;
+            }
+            // Request from the API to get the gitPath
+            String apiflag = request.getParameter("apiflag");
+            if (apiflag!=null) {
+                if(authorizeRequest(request)){
+                    APIRequestHandler apiRequestHandler = new APIRequestHandler();
+                    try{
+                        loggingContext.metricStarted();
+                        apiRequestHandler.doGet(request,response, apiflag);
+                        loggingContext.metricEnded();
+                        PolicyLogger.metrics("XACMLPapServlet doGet apiRequestHandler doGet");
+                    }catch(IOException e){
+                        LOGGER.error(e);
+                    }
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    im.endTransaction();
+                    return;
+                } else {
+                    String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+                    PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
+                    im.endTransaction();
+                    return;
+                }
+            }
+            // Is this from the Admin Console?
+            String groupId = request.getParameter("groupId");
+            if (groupId != null) {
+                // this is from the Admin Console, so handle separately
+                try{
+                    loggingContext.metricStarted();
+                    doACGet(request, response, groupId, loggingContext);
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doGet doACGet");
+                } catch(IOException e){
                     LOGGER.error(e);
                 }
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               im.endTransaction();
-                               return;
-                       }
-                       // Get the PDP's ID
-                       String id = this.getPDPID(request);
-                       LOGGER.info("doGet from: " + id);
-                       // Get the PDP Object
-                       OnapPDP pdp = null;
-                       try{
-                           pdp = XACMLPapServlet.papEngine.getPDP(id);
-                       }catch(PAPException e){
-                           LOGGER.error(e);
-                       }
-                       // Is it known?
-                       if (pdp == null) {
-                               // Check if request came from localhost
-                               if (request.getRemoteHost().equals("localhost") ||
-                                               request.getRemoteHost().equals(request.getLocalAddr())) {
-                                       // Return status information - basically all the groups
-                                       loggingContext.setServiceName("PAP.getGroups");
-                                       Set<OnapPDPGroup> groups = null;
-                                       try {
-                                           groups = papEngine.getOnapPDPGroups();
-                                       } catch(PAPException e) {
-                                           LOGGER.debug(e);
-                                           PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
-                                           loggingContext.transactionEnded();
-                                           PolicyLogger.audit("Transaction Failed - See Error.log");
-                                           setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                                           im.endTransaction();
-                                           return;
-                                       }
-                                       // convert response object to JSON and include in the response
-                                       mapperWriteValue(new ObjectMapper(), response,  groups);
-                                       response.setHeader("content-type", "application/json");
-                                       response.setStatus(HttpServletResponse.SC_OK);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       im.endTransaction();
-                                       return;
-                               }
-                               String message = "Unknown PDP: " + id + " from " + request.getRemoteHost() + " us: " + request.getLocalAddr();
-                               PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
-                               im.endTransaction();
-                               return;
-                       }
-                       loggingContext.setServiceName("PAP.getPolicy");
-                       // Get the PDP's Group
-                       OnapPDPGroup group = null;
-                       try {
-                           group = XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
-                       } catch (PAPException e) {
-                           LOGGER.error(e);
-                       }
-                       if (group == null) {
-                               String message = "No group associated with pdp " + pdp.getId();
-                               LOGGER.warn(XACMLErrorConstants.ERROR_PERMISSIONS + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
-                               im.endTransaction();
-                               return;
-                       }
-                       // Which policy do they want?
-                       String policyId = request.getParameter("id");
-                       if (policyId == null) {
-                               String message = "Did not specify an id for the policy";
-                               LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                               im.endTransaction();
-                               return;
-                       }
-                       PDPPolicy policy = group.getPolicy(policyId);
-                       if (policy == null) {
-                               String message = "Unknown policy: " + policyId;
-                               LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                               im.endTransaction();
-                               return;
-                       }
-                       try{
-                   LOGGER.warn("PolicyDebugging: Policy Validity: " + policy.isValid() + "\n "
-                           + "Policy Name : " + policy.getName() + "\n Policy URI: " + policy.getLocation().toString());
-                       } catch (PAPException| IOException e){
-                           LOGGER.error(e);
-                       }
-                       try (InputStream is = new FileInputStream(((StdPDPGroup)group).getDirectory().toString()+File.separator+policyId); OutputStream os = response.getOutputStream()) {
-                               // Send the policy back
-                               IOUtils.copy(is, os);
-                               response.setStatus(HttpServletResponse.SC_OK);
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                       } catch (IOException e) {
-                               String message = "Failed to open policy id " + policyId;
-                               LOGGER.debug(e);
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                       }
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Ended");
-               im.endTransaction();
-       }
-       
-       /**
-        * @see HttpServlet#doPut(HttpServletRequest request, HttpServletResponse response)
-        */
-       protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-               ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
-               loggingContext.transactionStarted();
-               loggingContext.setServiceName("PAP.put");
-               if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
-                       UUID requestID = UUID.randomUUID();
-                       loggingContext.setRequestID(requestID.toString());
-                       PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPut) so we generated one");
-               } else {
-                       PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doPut)");
-               }
-               try {
-                       loggingContext.metricStarted();
-                       im.startTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPut im startTransaction");
-               } catch (IntegrityMonitorException e) {
-                       String message = "PUT interface called for PAP " + papResourceName;
-                       if (e instanceof AdministrativeStateException) {
-                               message += " but it has an Administrative state of "
-                                       + im.getStateManager().getAdminState();
-                       } else if (e instanceof StandbyStatusException) {
-                               message += " but it has a Standby Status of "
-                                       + im.getStateManager().getStandbyStatus();
-                       } else {
-                               message += " but an exception occurred";
-
-                       }
-                       message += "\n Exception Message: " + e.getMessage();
-
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }
-
-               loggingContext.metricStarted();
-               XACMLRest.dumpRequest(request);
-               loggingContext.metricEnded();
-               PolicyLogger.metrics("XACMLPapServlet doPut dumpRequest");
-               //need to check if request is from the API or Admin console
-               String apiflag = request.getParameter("apiflag");
-               //This would occur if a PolicyDBDao notification was received
-               String policyDBDaoRequestUrl = request.getParameter("policydbdaourl");
-               if(policyDBDaoRequestUrl != null){
-                       LOGGER.info("XACMLPapServlet: PolicyDBDao Notification received." );
-                       String policyDBDaoRequestEntityId = request.getParameter("entityid");
-                       String policyDBDaoRequestEntityType = request.getParameter("entitytype");
-                       String policyDBDaoRequestExtraData = request.getParameter("extradata");
-                       if(policyDBDaoRequestEntityId == null || policyDBDaoRequestEntityType == null){
-                               setResponseError(response,400, "entityid or entitytype not supplied");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               im.endTransaction();
-                               return;
-                       }
-                       loggingContext.metricStarted(); 
-                       LOGGER.info("XACMLPapServlet: Calling PolicyDBDao to handlIncomingHttpNotification");
-                       policyDBDao.handleIncomingHttpNotification(policyDBDaoRequestUrl,policyDBDaoRequestEntityId,policyDBDaoRequestEntityType,policyDBDaoRequestExtraData,this);
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doPut handle incoming http notification");
-                       response.setStatus(200);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               }
-               /*
-                * Request for ImportService 
-                */
-               String importService = request.getParameter("importService");
-               if (importService != null) {
-                       if(authorizeRequest(request)){
-                               APIRequestHandler apiRequestHandler = new APIRequestHandler();
-                               try{
-                                       loggingContext.metricStarted(); 
-                                   apiRequestHandler.doPut(request, response, importService);
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doPut apiRequestHandler doPut");
-                               }catch(IOException e){
-                                   LOGGER.error(e);
-                               }
-                               im.endTransaction();
-                               return;
-                       } else {
-                               String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
-                               LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + message );
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
-                               return;
-                       }
-               }
-               //
-               // See if this is Admin Console registering itself with us
-               //
-               String acURLString = request.getParameter("adminConsoleURL");
-               if (acURLString != null) {
-                       loggingContext.setServiceName("AC:PAP.register");
-                       // remember this Admin Console for future updates
-                       if ( ! adminConsoleURLStringList.contains(acURLString)) {
-                               adminConsoleURLStringList.add(acURLString);
-                       }
-                       if (LOGGER.isDebugEnabled()) {
-                               LOGGER.debug("Admin Console registering with URL: " + acURLString);
-                       }
-                       response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                       loggingContext.transactionEnded();
-                       auditLogger.info("Success");
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               }
-               /*
-                * This is to update the PDP Group with the policy/policies being pushed
-                * Part of a 2 step process to push policies to the PDP that can now be done 
-                * From both the Admin Console and the PolicyEngine API
-                */
-               String groupId = request.getParameter("groupId");
-               if (groupId != null) {
-                       if(apiflag!=null){
-                               if(!authorizeRequest(request)){
-                                       String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
-                                       PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
-                                       return;
-                               }
-                               if(apiflag.equalsIgnoreCase("addPolicyToGroup")){
-                                   try{
-                                       updateGroupsFromAPI(request, response, groupId, loggingContext);
-                                   }catch(IOException e){
-                                       LOGGER.error(e);
-                                   }
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       im.endTransaction();
-                                       return;
-                               }
-                       }
-                       // this is from the Admin Console, so handle separately
-                       try {
-                               loggingContext.metricEnded();
-                           doACPut(request, response, groupId, loggingContext);
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet goPut doACPut");
-                       } catch (IOException e) {
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Ended Successfully");
+                im.endTransaction();
+                return;
+            }
+            // Get the PDP's ID
+            String id = this.getPDPID(request);
+            LOGGER.info("doGet from: " + id);
+            // Get the PDP Object
+            OnapPDP pdp = null;
+            try{
+                pdp = XACMLPapServlet.papEngine.getPDP(id);
+            }catch(PAPException e){
                 LOGGER.error(e);
             }
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               }
-               //
-               // Request is for policy validation and creation
-               //
-               if (apiflag != null && apiflag.equalsIgnoreCase("admin")){
-                       // this request is from the Admin Console
-                       SavePolicyHandler savePolicyHandler = SavePolicyHandler.getInstance();
-                       try{
-                               loggingContext.metricStarted();
-                           savePolicyHandler.doPolicyAPIPut(request, response);
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet goPut savePolicyHandler");
-                       } catch (IOException e) {
+            // Is it known?
+            if (pdp == null) {
+                // Check if request came from localhost
+                if (request.getRemoteHost().equals("localhost") ||
+                        request.getRemoteHost().equals(request.getLocalAddr())) {
+                    // Return status information - basically all the groups
+                    loggingContext.setServiceName("PAP.getGroups");
+                    Set<OnapPDPGroup> groups = null;
+                    try {
+                        groups = papEngine.getOnapPDPGroups();
+                    } catch(PAPException e) {
+                        LOGGER.debug(e);
+                        PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                        im.endTransaction();
+                        return;
+                    }
+                    // convert response object to JSON and include in the response
+                    mapperWriteValue(new ObjectMapper(), response,  groups);
+                    response.setHeader("content-type", "application/json");
+                    response.setStatus(HttpServletResponse.SC_OK);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    im.endTransaction();
+                    return;
+                }
+                String message = "Unknown PDP: " + id + " from " + request.getRemoteHost() + " us: " + request.getLocalAddr();
+                PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
+                im.endTransaction();
+                return;
+            }
+            loggingContext.setServiceName("PAP.getPolicy");
+            // Get the PDP's Group
+            OnapPDPGroup group = null;
+            try {
+                group = XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
+            } catch (PAPException e) {
                 LOGGER.error(e);
             }
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               } else if (apiflag != null && "api".equalsIgnoreCase(apiflag)) {
-                       // this request is from the Policy Creation API 
-                       if(authorizeRequest(request)){
-                               APIRequestHandler apiRequestHandler = new APIRequestHandler();
-                               try{
-                                       loggingContext.metricStarted();
-                                   apiRequestHandler.doPut(request, response, request.getHeader("ClientScope"));
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet goPut apiRequestHandler doPut");
-                   } catch (IOException e) {
-                       LOGGER.error(e);
-                   }
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               im.endTransaction();
-                               return;
-                       } else {
-                               String message = "PEP not Authorized for making this Request!!";
-                               PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
-                               im.endTransaction();
-                               return;
-                       }
-               }
-               // We do not expect anything from anywhere else.
-               // This method is here in case we ever need to support other operations.
-               LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Request does not have groupId or apiflag");
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Failed - See Error.log");
-               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId or apiflag");
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Failed - See error.log");
-               im.endTransaction();
-       }
-
-       /**
-        * @see HttpServlet#doDelete(HttpServletRequest request, HttpServletResponse response)
-        */
-       protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-               ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
-               loggingContext.transactionStarted();
-               loggingContext.setServiceName("PAP.delete");
-               if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
-                       UUID requestID = UUID.randomUUID();
-                       loggingContext.setRequestID(requestID.toString());
-                       PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doDelete) so we generated one");
-               } else {
-                       PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doDelete)");
-               }
-               try {
-                       loggingContext.metricStarted();
-                       im.startTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doDelete im startTransaction");
-               } catch (AdministrativeStateException ae){
-                       String message = "DELETE interface called for PAP " + papResourceName + " but it has an Administrative"
-                                       + " state of " + im.getStateManager().getAdminState()
-                                       + "\n Exception Message: " + ae.getMessage();
-                       LOGGER.info(message, ae);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }catch (StandbyStatusException se) {
-                       String message = "PUT interface called for PAP " + papResourceName + " but it has a Standby Status"
-                                       + " of " + im.getStateManager().getStandbyStatus()
-                                       + "\n Exception Message: " + se.getMessage();
-                       LOGGER.info(message, se);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               } catch (IntegrityMonitorException e) {
-                       String message = "PUT interface called for PAP " + papResourceName + " but an exception occurred"
-                                       + "\n Exception Message: " + e.getMessage();
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }
-               loggingContext.metricStarted();
-               XACMLRest.dumpRequest(request);
-               loggingContext.metricEnded();
-               PolicyLogger.metrics("XACMLPapServlet doDelete dumpRequest");
-               String groupId = request.getParameter("groupId");
-               String apiflag = request.getParameter("apiflag");
-               if (groupId != null) {
-                       // Is this from the Admin Console or API?
-                       if(apiflag!=null) {
-                               if(!authorizeRequest(request)){
-                                       String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
-                                       PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
-                                       return;
-                               }
-                               APIRequestHandler apiRequestHandler = new APIRequestHandler();
-                               try {
-                                       loggingContext.metricStarted();
-                                       apiRequestHandler.doDelete(request, response, loggingContext, apiflag);
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doDelete apiRequestHandler doDelete");
-                               } catch (Exception e) {
-                                       LOGGER.error("Exception Occured"+e);
-                               }
-                               if(apiRequestHandler.getNewGroup()!=null){
-                                       groupChanged(apiRequestHandler.getNewGroup(), loggingContext);
-                               }
-                               return;
-                       }
-                       // this is from the Admin Console, so handle separately
-                       try{
-                               loggingContext.metricStarted();
-                           doACDelete(request, response, groupId, loggingContext);
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doDelete doACDelete");
-                       } catch (IOException e) {
+            if (group == null) {
+                String message = "No group associated with pdp " + pdp.getId();
+                LOGGER.warn(XACMLErrorConstants.ERROR_PERMISSIONS + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
+                im.endTransaction();
+                return;
+            }
+            // Which policy do they want?
+            String policyId = request.getParameter("id");
+            if (policyId == null) {
+                String message = "Did not specify an id for the policy";
+                LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+                im.endTransaction();
+                return;
+            }
+            PDPPolicy policy = group.getPolicy(policyId);
+            if (policy == null) {
+                String message = "Unknown policy: " + policyId;
+                LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+                im.endTransaction();
+                return;
+            }
+            try{
+                LOGGER.warn("PolicyDebugging: Policy Validity: " + policy.isValid() + "\n "
+                        + "Policy Name : " + policy.getName() + "\n Policy URI: " + policy.getLocation().toString());
+            } catch (PAPException| IOException e){
                 LOGGER.error(e);
             }
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               }
-               //Catch anything that fell through
-               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Request does not have groupId");
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Failed - See Error.log");
-               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId");
-               im.endTransaction();
-       }
-
-       private boolean isPDPCurrent(Properties policies, Properties pipconfig, Properties pdpProperties) {
-               String localRootPolicies = policies.getProperty(XACMLProperties.PROP_ROOTPOLICIES);
-               String localReferencedPolicies = policies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES);
-               if (localRootPolicies == null || localReferencedPolicies == null) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing property on PAP server: RootPolicies="+localRootPolicies+"  ReferencedPolicies="+localReferencedPolicies);
-                       return false;
-               }
-               // Compare the policies and pipconfig properties to the pdpProperties
-               try {
-                       // the policy properties includes only xacml.rootPolicies and 
-                       // xacml.referencedPolicies without any .url entries
-                       Properties pdpPolicies = XACMLProperties.getPolicyProperties(pdpProperties, false);
-                       Properties pdpPipConfig = XACMLProperties.getPipProperties(pdpProperties);
-                       if (localRootPolicies.equals(pdpPolicies.getProperty(XACMLProperties.PROP_ROOTPOLICIES)) &&
-                                       localReferencedPolicies.equals(pdpPolicies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES)) &&
-                                       pdpPipConfig.equals(pipconfig)) {
-                               // The PDP is current
-                               return true;
-                       }
-               } catch (Exception e) {
-                       // we get here if the PDP did not include either xacml.rootPolicies or xacml.pip.engines,
-                       // or if there are policies that do not have a corresponding ".url" property.
-                       // Either of these cases means that the PDP is not up-to-date, so just drop-through to return false.
-                       PolicyLogger.error(MessageCodes.ERROR_SCHEMA_INVALID, e, "XACMLPapServlet", " PDP Error");
-               }
-               return false;
-       }
-
-       private void populatePolicyURL(StringBuffer urlPath, Properties policies) {
-               String lists[] = new String[2];
-               lists[0] = policies.getProperty(XACMLProperties.PROP_ROOTPOLICIES);
-               lists[1] = policies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES);
-               for (String list : lists) {
-                       if (list != null && list.isEmpty() == false) {
-                               for (String id : Splitter.on(',').trimResults().omitEmptyStrings().split(list)) {
-                                       String url = urlPath + "?id=" + id;
-                                       LOGGER.info("Policy URL for " + id + ": " + url);
-                                       policies.setProperty(id + ".url", url);
-                               }
-                       }
-               }
-       }
-
-       protected String getPDPID(HttpServletRequest request) {
-               String pdpURL = request.getHeader(XACMLRestProperties.PROP_PDP_HTTP_HEADER_ID);
-               if (pdpURL == null || pdpURL.isEmpty()) {
-                       // Should send back its port for identification
-                       LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP did not send custom header");
-                       pdpURL = "";
-               }
-               return pdpURL;
-       }
-
-       protected String getPDPJMX(HttpServletRequest request) {
-               String pdpJMMX = request.getHeader(XACMLRestProperties.PROP_PDP_HTTP_HEADER_JMX_PORT);
-               if (pdpJMMX == null || pdpJMMX.isEmpty()) {
-                       // Should send back its port for identification
-                       LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP did not send custom header for JMX Port so the value of 0 is assigned");
-                       return null;
-               }
-               return pdpJMMX;
-       }
-       
-       /**
-        * Requests from the PolicyEngine API to update the PDP Group with pushed policy
-        * 
-        * @param request
-        * @param response
-        * @param groupId
-        * @param loggingContext 
-        * @throws ServletException
-        * @throws IOException
-        */
-       public void updateGroupsFromAPI(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
-               PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
-               PolicyLogger.audit("PolicyDBDaoTransaction started for updateGroupsFromAPI");
-               try {
-                       // for PUT operations the group may or may not need to exist before the operation can be done
-                       StdPDPGroup group = (StdPDPGroup) papEngine.getGroup(groupId);
-                       
-                       // get the request input stream content into a String
-                       String json = null;
-                       java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
-                       scanner.useDelimiter("\\A");
-                       json =  scanner.hasNext() ? scanner.next() : "";
-                       scanner.close();
-
-                       PolicyLogger.info("pushPolicy request from API: " + json);
-                       
-                       // convert Object sent as JSON into local object
-                       StdPDPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPDPPolicy.class);
-                       
-                       //Get the current policies from the Group and Add the new one
-                       Set<PDPPolicy> currentPoliciesInGroup = new HashSet<>();
-                       currentPoliciesInGroup = group.getPolicies();
-                       //If the selected policy is in the group we must remove the old version of it
-                       LOGGER.info("Removing old version of the policy");
-                       for(PDPPolicy existingPolicy : currentPoliciesInGroup) {
-                               if (existingPolicy.getName().equals(policy.getName()) && !existingPolicy.getId().equals(policy.getId())){
-                                       group.removePolicy(existingPolicy);
-                                       LOGGER.info("Removing policy: " + existingPolicy);
-                                       break;
-                               }
-                       }
-                       
-                       // Assume that this is an update of an existing PDP Group
-                       loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
-                       try{
-                               acPutTransaction.updateGroup(group, "XACMLPapServlet.doACPut");
-                       } catch(Exception e){
-                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
-                                               +"group="+group.getId());
-                               throw new PAPException(e.getMessage()); 
-                       }
-                       
-                       LOGGER.info("Calling updatGroup() with new group");
-                       papEngine.updateGroup(group);
-                       String policyId = "empty";
-                       if(policy !=null && policy.getId() != null){
-                               policyId = policy.getId();
-                       }
-                       if(!policyId.matches(REGEX) ){
-                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                               response.addHeader("error",ADD_GROUP_ERROR);
-                               response.addHeader("message", "Policy Id is not valid");
-                               return;
-                       }
-                       response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                       response.addHeader("operation", "push");
-                       response.addHeader("policyId", policyId);
-                       response.addHeader("groupId", groupId);
-                       
-                       LOGGER.info("Group '" + group.getId() + "' updated");
-                       
-                       loggingContext.metricStarted();
-                       acPutTransaction.commitTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI commitTransaction");
-                       loggingContext.metricStarted();
-                       notifyAC();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI notifyAC");
-
-                       // Group changed, which might include changing the policies     
-                       groupChanged(group, loggingContext);
-                       loggingContext.transactionEnded();
-                       LOGGER.info("Success");
-
-                       if (policy != null && ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
-                               PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
-                               if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
-                                       LOGGER.debug("Precheck Successful.");
-                               }
-                       }
-
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       return;
-               } catch (PAPException e) {
-                       acPutTransaction.rollbackTransaction();
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception in request to update group from API - See Error.log on on the PAP.";
-                       setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       response.addHeader("error",ADD_GROUP_ERROR);
-                       response.addHeader("message", message);
-                       return;
-               }
-       }
-
-       /**
-        * Requests from the Admin Console for operations not on single specific objects
-        * 
-        * @param request
-        * @param response
-        * @param groupId
-        * @param loggingContext
-        * @throws ServletException
-        * @throws IOException
-        */
-       private void doACPost(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws ServletException, IOException {
-               PolicyDBDaoTransaction doACPostTransaction = null;
-               try {
-                       String groupName = request.getParameter("groupName");
-                       String groupDescription = request.getParameter("groupDescription");
-                       String apiflag = request.getParameter("apiflag");
-                       if (groupName != null && groupDescription != null) {
-                               // Args:              group=<groupId> groupName=<name> groupDescription=<description>            <= create a new group
-                               loggingContext.setServiceName("AC:PAP.createGroup");
-                               String unescapedName = null;
-                               String unescapedDescription = null;
-                               try{
-                                   unescapedName = URLDecoder.decode(groupName, "UTF-8");
-                                   unescapedDescription = URLDecoder.decode(groupDescription, "UTF-8");
-                               } catch (UnsupportedEncodingException e) {
-                                   LOGGER.error(e);
-                               }
-                               PolicyDBDaoTransaction newGroupTransaction = policyDBDao.getNewTransaction();
-                               try {                                   
-                                       newGroupTransaction.createGroup(PolicyDBDao.createNewPDPGroupId(unescapedName), unescapedName, unescapedDescription,"XACMLPapServlet.doACPost");
-                                       papEngine.newGroup(unescapedName, unescapedDescription);
-                                       loggingContext.metricStarted();
-                                       newGroupTransaction.commitTransaction();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
-                               } catch (Exception e) {
-                                       newGroupTransaction.rollbackTransaction();
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to create new group");
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to create new group '" + groupId + "'");
-                                       return;
-                               }
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("New Group '" + groupId + "' created");
-                               }
-                               // tell the Admin Consoles there is a change
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
-                               // new group by definition has no PDPs, so no need to notify them of changes
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       }
-                       // for all remaining POST operations the group must exist before the operation can be done
-                       OnapPDPGroup group = null;
-                       try{
-                           group = papEngine.getGroup(groupId);
-                       } catch (PAPException e){
-                           LOGGER.error(e);
-                       }
-                       if (group == null) {
-                               String message = "Unknown groupId '" + groupId + "'";
-                               //for fixing Header Manipulation of Fortify issue
-                               if(!message.matches(REGEX)){
-                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                       response.addHeader("error",ADD_GROUP_ERROR);
-                                       response.addHeader("message", "GroupId Id is not valid");
-                                       return;
-                               }
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               if (apiflag!=null){
-                                       response.addHeader("error", "unknownGroupId");
-                                       response.addHeader("operation", "push");
-                                       response.addHeader("message", message);
-                                       response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-                               } else {
-                                       setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                               }
-                               return;
-                       }
-                       
-                       // If the request contains a policyId then we know we are pushing the policy to PDP
-                       if (request.getParameter("policyId") != null) {
-                               
-                               if(apiflag!=null){
-                                       loggingContext.setServiceName("PolicyEngineAPI:PAP.postPolicy");
-                                       LOGGER.info("PushPolicy Request From The API");
-                               } else {
-                                       loggingContext.setServiceName("AC:PAP.postPolicy");
-                                       LOGGER.info("PushPolicy Request From The AC");
-                               }
-                               
-                               String policyId = request.getParameter("policyId");
-                               PolicyDBDaoTransaction addPolicyToGroupTransaction = policyDBDao.getNewTransaction();
-                               StdPDPGroup updatedGroup = null;
-                               try {
-                                       //Copying the policy to the file system and updating groups in database
-                                       LOGGER.info("PapServlet: calling PolicyDBDao.addPolicyToGroup()");
-                                       updatedGroup = addPolicyToGroupTransaction.addPolicyToGroup(group.getId(), policyId,"XACMLPapServlet.doACPost");
-                                       loggingContext.metricStarted();
-                                       addPolicyToGroupTransaction.commitTransaction();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
-                                       LOGGER.info("PapServlet: addPolicyToGroup() succeeded, transaction was committed");
-                                       
-                               } catch (Exception e) {
-                                       addPolicyToGroupTransaction.rollbackTransaction();
-                                       String message = "Policy '" + policyId + "' not copied to group '" + groupId +"': " + e;
-                                       //for fixing Header Manipulation of Fortify issue
-                                       if(!message.matches(REGEX)){
-                                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                               response.addHeader("error",ADD_GROUP_ERROR);
-                                               response.addHeader("message", "Policy Id is not valid");
-                                               return;
-                                       }
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " " + message);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       if (apiflag!=null){
-                                               response.addHeader("error", "policyCopyError");
-                                               response.addHeader("message", message);
-                                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                       } else {
-                                               setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                                       }
-                                       return;
-                               }
-                               
-                               if(apiflag != null){
-                                       /*
-                                        * If request comes from the API we need to run the PolicyDBDao updateGroup() to notify other paps of the change.
-                                        * The GUI does this from the POLICY-SDK-APP code.
-                                        */
-                                       
-                                       // Get new transaction to perform updateGroup()
-                                       PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
-                                       try {
-                                               // get the request content into a String and read the inputStream into a buffer
-                                               java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
-                                               scanner.useDelimiter("\\A");
-                                               String json =  scanner.hasNext() ? scanner.next() : "";
-                                               scanner.close();
-                                               
-                                               // convert Object sent as JSON into local object
-                                               ObjectMapper mapper = new ObjectMapper();
-                                               Object objectFromJSON = mapper.readValue(json, StdPDPPolicy.class);
-                                               StdPDPPolicy policy = (StdPDPPolicy) objectFromJSON;
-                                               
-                                               LOGGER.info("Request JSON Payload: " + json);
-
-                                               // Assume that this is an update of an existing PDP Group
-                                               loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
-                                               try{
-                                                       acPutTransaction.updateGroup(updatedGroup, "XACMLPapServlet.doACPut");
-                                               } catch(Exception e){
-                                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error occurred when notifying PAPs of a group change: "
-                                                                       + e);
-                                                       throw new PAPException(e.getMessage()); 
-                                               }
-                                               
-                                               LOGGER.info("Calling updatGroup() with new group");
-                                               papEngine.updateGroup(updatedGroup);
-                                               
-                                               LOGGER.info("Group '" + updatedGroup.getId() + "' updated");
-                                               
-                                               // Commit transaction to send notification to other PAPs
-                                               loggingContext.metricStarted();
-                                               acPutTransaction.commitTransaction();
-                                               loggingContext.metricEnded();
-                                               PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI commitTransaction");
-                                               loggingContext.metricStarted();
-                                               
-                                               notifyAC();
-                                               loggingContext.metricEnded();
-                                               PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI notifyAC");
-                                               
-                                               // Group changed to send notification to PDPs, which might include changing the policies        
-                                               groupChanged(updatedGroup,loggingContext);
-                                               loggingContext.transactionEnded();
-                                               LOGGER.info("Success");
-
-                                               if (policy != null && ((policy.getName().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
-                                                       PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
-                                                       if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
-                                                               LOGGER.debug("Precheck Successful.");
-                                                       }
-                                               }
-                                               
-                                               //delete temporary policy file from the bin directory
-                                               Files.deleteIfExists(Paths.get(policy.getId()));
-                                                       
-                                       } catch (Exception e) {
-                                               acPutTransaction.rollbackTransaction();
-                                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
-                                               loggingContext.transactionEnded();
-                                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                                               String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception occurred when updating the group from API.";
-                                               LOGGER.error(message);
-                                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                               response.addHeader("error",ADD_GROUP_ERROR);
-                                               response.addHeader("message", message);
-                                               return;
-                                       }
-                               }
-                               
-                               // policy file copied ok and the Group was updated on the PDP
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               response.addHeader("operation", "push");
-                               response.addHeader("policyId", policyId);
-                               response.addHeader("groupId", groupId);
-                               
-                               LOGGER.info("policy '" + policyId + "' copied to directory for group '" + groupId + "'");
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               LOGGER.info("Transaction Ended Successfully");
-                               
-                               return;
-                       } else if (request.getParameter("default") != null) {
-                               // Args:       group=<groupId> default=true               <= make default
-                               // change the current default group to be the one identified in the request.
-                               loggingContext.setServiceName("AC:PAP.setDefaultGroup");
-                               // This is a POST operation rather than a PUT "update group" because of the side-effect that the current default group is also changed.
-                               // It should never be the case that multiple groups are currently marked as the default, but protect against that anyway.
-                               PolicyDBDaoTransaction setDefaultGroupTransaction = policyDBDao.getNewTransaction();
-                               try {
-                                       setDefaultGroupTransaction.changeDefaultGroup(group, "XACMLPapServlet.doACPost");
-                                       papEngine.setDefaultGroup(group);
-                                       loggingContext.metricStarted();
-                                       setDefaultGroupTransaction.commitTransaction();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
-                               } catch (Exception e) {
-                                       setDefaultGroupTransaction.rollbackTransaction();
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to set group");
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to set group '" + groupId + "' to default");
-                                       return;
-                               }
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("Group '" + groupId + "' set to be default");
-                               }
-                               // Notify the Admin Consoles that something changed
-                               // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
-                               //TODO - Future: FIGURE OUT WHAT LEVEL TO NOTIFY: 2 groups or entire set - currently notify AC to update whole configuration of all groups
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               // This does not affect any PDPs in the existing groups, so no need to notify them of this change
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               LOGGER.info("Transaction Ended Successfully");
-                               return;
-                       } else if (request.getParameter("pdpId") != null) {
-                               doACPostTransaction = policyDBDao.getNewTransaction();
-                               // Args:       group=<groupId> pdpId=<pdpId>               <= move PDP to group
-                               loggingContext.setServiceName("AC:PAP.movePDP");
-                               String pdpId = request.getParameter("pdpId");
-                               OnapPDP pdp = papEngine.getPDP(pdpId);
-                               OnapPDPGroup originalGroup = papEngine.getPDPGroup((OnapPDP) pdp);
-                               try{
-                                       doACPostTransaction.movePdp(pdp, group, "XACMLPapServlet.doACPost");
-                               }catch(Exception e){    
-                                       doACPostTransaction.rollbackTransaction();
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", 
-                                                       " Error while moving pdp in the database: "
-                                                                       +"pdp="+pdp.getId()+",to group="+group.getId());
-                                       throw new PAPException(e.getMessage());
-                               }
-                               papEngine.movePDP((OnapPDP) pdp, group);
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("PDP '" + pdp.getId() +"' moved to group '" + group.getId() + "' set to be default");
-                               }
-                               // update the status of both the original group and the new one
-                               ((StdPDPGroup)originalGroup).resetStatus();
-                               ((StdPDPGroup)group).resetStatus();
-                               // Notify the Admin Consoles that something changed
-                               // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
-                               // Need to notify the PDP that it's config may have changed
-                               pdpChanged(pdp, loggingContext);
-                               loggingContext.metricStarted();
-                               doACPostTransaction.commitTransaction();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       }
-               } catch (PAPException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC POST exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       return;
-               }
-       }
-
-       /**
-        * Requests from the Admin Console to GET info about the Groups and PDPs
-        * 
-        * @param request
-        * @param response
-        * @param groupId
-        * @param loggingContext 
-        * @throws ServletException
-        * @throws IOException
-        */
-       private void doACGet(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
-               try {
-                       String parameterDefault = request.getParameter("default");
-                       String pdpId = request.getParameter("pdpId");
-                       String pdpGroup = request.getParameter("getPDPGroup");
-                       if ("".equals(groupId)) {
-                               // request IS from AC but does not identify a group by name
-                               if (parameterDefault != null) {
-                                       // Request is for the Default group (whatever its id)
-                                       loggingContext.setServiceName("AC:PAP.getDefaultGroup");
-                                       OnapPDPGroup group = papEngine.getDefaultGroup();
-                                       // convert response object to JSON and include in the response
-                                       mapperWriteValue(new ObjectMapper(), response,  group);
-                                       if (LOGGER.isDebugEnabled()) {
-                                               LOGGER.debug("GET Default group req from '" + request.getRequestURL() + "'");
-                                       }
-                                       response.setStatus(HttpServletResponse.SC_OK);
-                                       response.setHeader("content-type", "application/json");
-                                       try{
+            try (InputStream is = new FileInputStream(((StdPDPGroup)group).getDirectory().toString()+File.separator+policyId); OutputStream os = response.getOutputStream()) {
+                // Send the policy back
+                IOUtils.copy(is, os);
+                response.setStatus(HttpServletResponse.SC_OK);
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+            } catch (IOException e) {
+                String message = "Failed to open policy id " + policyId;
+                LOGGER.debug(e);
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+            }
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Ended");
+        im.endTransaction();
+    }
+
+    /**
+     * @see HttpServlet#doPut(HttpServletRequest request, HttpServletResponse response)
+     */
+    protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
+        loggingContext.transactionStarted();
+        loggingContext.setServiceName("PAP.put");
+        if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+            UUID requestID = UUID.randomUUID();
+            loggingContext.setRequestID(requestID.toString());
+            PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPut) so we generated one");
+        } else {
+            PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doPut)");
+        }
+        try {
+            loggingContext.metricStarted();
+            im.startTransaction();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPut im startTransaction");
+        } catch (IntegrityMonitorException e) {
+            String message = "PUT interface called for PAP " + papResourceName;
+            if (e instanceof AdministrativeStateException) {
+                message += " but it has an Administrative state of "
+                    + im.getStateManager().getAdminState();
+            } else if (e instanceof StandbyStatusException) {
+                message += " but it has a Standby Status of "
+                    + im.getStateManager().getStandbyStatus();
+            } else {
+                message += " but an exception occurred";
+
+            }
+            message += "\n Exception Message: " + e.getMessage();
+
+            LOGGER.info(message, e);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }
+
+        loggingContext.metricStarted();
+        XACMLRest.dumpRequest(request);
+        loggingContext.metricEnded();
+        PolicyLogger.metrics("XACMLPapServlet doPut dumpRequest");
+        //need to check if request is from the API or Admin console
+        String apiflag = request.getParameter("apiflag");
+        //This would occur if a PolicyDBDao notification was received
+        String policyDBDaoRequestUrl = request.getParameter("policydbdaourl");
+        if(policyDBDaoRequestUrl != null){
+            LOGGER.info("XACMLPapServlet: PolicyDBDao Notification received." );
+            String policyDBDaoRequestEntityId = request.getParameter("entityid");
+            String policyDBDaoRequestEntityType = request.getParameter("entitytype");
+            String policyDBDaoRequestExtraData = request.getParameter("extradata");
+            if(policyDBDaoRequestEntityId == null || policyDBDaoRequestEntityType == null){
+                setResponseError(response,400, "entityid or entitytype not supplied");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Ended Successfully");
+                im.endTransaction();
+                return;
+            }
+            loggingContext.metricStarted();
+            LOGGER.info("XACMLPapServlet: Calling PolicyDBDao to handlIncomingHttpNotification");
+            policyDBDao.handleIncomingHttpNotification(policyDBDaoRequestUrl,policyDBDaoRequestEntityId,policyDBDaoRequestEntityType,policyDBDaoRequestExtraData,this);
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doPut handle incoming http notification");
+            response.setStatus(200);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Ended Successfully");
+            im.endTransaction();
+            return;
+        }
+        /*
+         * Request for ImportService
+         */
+        String importService = request.getParameter("importService");
+        if (importService != null) {
+            if(authorizeRequest(request)){
+                APIRequestHandler apiRequestHandler = new APIRequestHandler();
+                try{
+                    loggingContext.metricStarted();
+                    apiRequestHandler.doPut(request, response, importService);
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doPut apiRequestHandler doPut");
+                }catch(IOException e){
+                    LOGGER.error(e);
+                }
+                im.endTransaction();
+                return;
+            } else {
+                String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+                LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + message );
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+                return;
+            }
+        }
+        //
+        // See if this is Admin Console registering itself with us
+        //
+        String acURLString = request.getParameter("adminConsoleURL");
+        if (acURLString != null) {
+            loggingContext.setServiceName("AC:PAP.register");
+            // remember this Admin Console for future updates
+            if ( ! adminConsoleURLStringList.contains(acURLString)) {
+                adminConsoleURLStringList.add(acURLString);
+            }
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Admin Console registering with URL: " + acURLString);
+            }
+            response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+            loggingContext.transactionEnded();
+            auditLogger.info("Success");
+            PolicyLogger.audit("Transaction Ended Successfully");
+            im.endTransaction();
+            return;
+        }
+        /*
+         * This is to update the PDP Group with the policy/policies being pushed
+         * Part of a 2 step process to push policies to the PDP that can now be done
+         * From both the Admin Console and the PolicyEngine API
+         */
+        String groupId = request.getParameter("groupId");
+        if (groupId != null) {
+            if(apiflag!=null){
+                if(!authorizeRequest(request)){
+                    String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+                    PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+                    return;
+                }
+                if(apiflag.equalsIgnoreCase("addPolicyToGroup")){
+                    try{
+                        updateGroupsFromAPI(request, response, groupId, loggingContext);
+                    }catch(IOException e){
+                        LOGGER.error(e);
+                    }
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    im.endTransaction();
+                    return;
+                }
+            }
+            // this is from the Admin Console, so handle separately
+            try {
+                loggingContext.metricEnded();
+                doACPut(request, response, groupId, loggingContext);
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet goPut doACPut");
+            } catch (IOException e) {
+                LOGGER.error(e);
+            }
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Ended Successfully");
+            im.endTransaction();
+            return;
+        }
+        //
+        // Request is for policy validation and creation
+        //
+        if (apiflag != null && apiflag.equalsIgnoreCase("admin")){
+            // this request is from the Admin Console
+            SavePolicyHandler savePolicyHandler = SavePolicyHandler.getInstance();
+            try{
+                loggingContext.metricStarted();
+                savePolicyHandler.doPolicyAPIPut(request, response);
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet goPut savePolicyHandler");
+            } catch (IOException e) {
+                LOGGER.error(e);
+            }
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Ended Successfully");
+            im.endTransaction();
+            return;
+        } else if (apiflag != null && "api".equalsIgnoreCase(apiflag)) {
+            // this request is from the Policy Creation API
+            if(authorizeRequest(request)){
+                APIRequestHandler apiRequestHandler = new APIRequestHandler();
+                try{
+                    loggingContext.metricStarted();
+                    apiRequestHandler.doPut(request, response, request.getHeader("ClientScope"));
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet goPut apiRequestHandler doPut");
+                } catch (IOException e) {
+                    LOGGER.error(e);
+                }
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Ended Successfully");
+                im.endTransaction();
+                return;
+            } else {
+                String message = "PEP not Authorized for making this Request!!";
+                PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+                im.endTransaction();
+                return;
+            }
+        }
+        // We do not expect anything from anywhere else.
+        // This method is here in case we ever need to support other operations.
+        LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Request does not have groupId or apiflag");
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Failed - See Error.log");
+        setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId or apiflag");
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Failed - See error.log");
+        im.endTransaction();
+    }
+
+    /**
+     * @see HttpServlet#doDelete(HttpServletRequest request, HttpServletResponse response)
+     */
+    protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
+        loggingContext.transactionStarted();
+        loggingContext.setServiceName("PAP.delete");
+        if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+            UUID requestID = UUID.randomUUID();
+            loggingContext.setRequestID(requestID.toString());
+            PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doDelete) so we generated one");
+        } else {
+            PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doDelete)");
+        }
+        try {
+            loggingContext.metricStarted();
+            im.startTransaction();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet doDelete im startTransaction");
+        } catch (AdministrativeStateException ae){
+            String message = "DELETE interface called for PAP " + papResourceName + " but it has an Administrative"
+                    + " state of " + im.getStateManager().getAdminState()
+                    + "\n Exception Message: " + ae.getMessage();
+            LOGGER.info(message, ae);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }catch (StandbyStatusException se) {
+            String message = "PUT interface called for PAP " + papResourceName + " but it has a Standby Status"
+                    + " of " + im.getStateManager().getStandbyStatus()
+                    + "\n Exception Message: " + se.getMessage();
+            LOGGER.info(message, se);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        } catch (IntegrityMonitorException e) {
+            String message = "PUT interface called for PAP " + papResourceName + " but an exception occurred"
+                    + "\n Exception Message: " + e.getMessage();
+            LOGGER.info(message, e);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }
+        loggingContext.metricStarted();
+        XACMLRest.dumpRequest(request);
+        loggingContext.metricEnded();
+        PolicyLogger.metrics("XACMLPapServlet doDelete dumpRequest");
+        String groupId = request.getParameter("groupId");
+        String apiflag = request.getParameter("apiflag");
+        if (groupId != null) {
+            // Is this from the Admin Console or API?
+            if(apiflag!=null) {
+                if(!authorizeRequest(request)){
+                    String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+                    PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+                    return;
+                }
+                APIRequestHandler apiRequestHandler = new APIRequestHandler();
+                try {
+                    loggingContext.metricStarted();
+                    apiRequestHandler.doDelete(request, response, loggingContext, apiflag);
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doDelete apiRequestHandler doDelete");
+                } catch (Exception e) {
+                    LOGGER.error("Exception Occured"+e);
+                }
+                if(apiRequestHandler.getNewGroup()!=null){
+                    groupChanged(apiRequestHandler.getNewGroup(), loggingContext);
+                }
+                return;
+            }
+            // this is from the Admin Console, so handle separately
+            try{
+                loggingContext.metricStarted();
+                doACDelete(request, response, groupId, loggingContext);
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doDelete doACDelete");
+            } catch (IOException e) {
+                LOGGER.error(e);
+            }
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Ended Successfully");
+            im.endTransaction();
+            return;
+        }
+        //Catch anything that fell through
+        PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Request does not have groupId");
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Failed - See Error.log");
+        setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId");
+        im.endTransaction();
+    }
+
+    private boolean isPDPCurrent(Properties policies, Properties pipconfig, Properties pdpProperties) {
+        String localRootPolicies = policies.getProperty(XACMLProperties.PROP_ROOTPOLICIES);
+        String localReferencedPolicies = policies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES);
+        if (localRootPolicies == null || localReferencedPolicies == null) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing property on PAP server: RootPolicies="+localRootPolicies+"  ReferencedPolicies="+localReferencedPolicies);
+            return false;
+        }
+        // Compare the policies and pipconfig properties to the pdpProperties
+        try {
+            // the policy properties includes only xacml.rootPolicies and
+            // xacml.referencedPolicies without any .url entries
+            Properties pdpPolicies = XACMLProperties.getPolicyProperties(pdpProperties, false);
+            Properties pdpPipConfig = XACMLProperties.getPipProperties(pdpProperties);
+            if (localRootPolicies.equals(pdpPolicies.getProperty(XACMLProperties.PROP_ROOTPOLICIES)) &&
+                    localReferencedPolicies.equals(pdpPolicies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES)) &&
+                    pdpPipConfig.equals(pipconfig)) {
+                // The PDP is current
+                return true;
+            }
+        } catch (Exception e) {
+            // we get here if the PDP did not include either xacml.rootPolicies or xacml.pip.engines,
+            // or if there are policies that do not have a corresponding ".url" property.
+            // Either of these cases means that the PDP is not up-to-date, so just drop-through to return false.
+            PolicyLogger.error(MessageCodes.ERROR_SCHEMA_INVALID, e, "XACMLPapServlet", " PDP Error");
+        }
+        return false;
+    }
+
+    private void populatePolicyURL(StringBuffer urlPath, Properties policies) {
+        String lists[] = new String[2];
+        lists[0] = policies.getProperty(XACMLProperties.PROP_ROOTPOLICIES);
+        lists[1] = policies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES);
+        for (String list : lists) {
+            if (list != null && list.isEmpty() == false) {
+                for (String id : Splitter.on(',').trimResults().omitEmptyStrings().split(list)) {
+                    String url = urlPath + "?id=" + id;
+                    LOGGER.info("Policy URL for " + id + ": " + url);
+                    policies.setProperty(id + ".url", url);
+                }
+            }
+        }
+    }
+
+    protected String getPDPID(HttpServletRequest request) {
+        String pdpURL = request.getHeader(XACMLRestProperties.PROP_PDP_HTTP_HEADER_ID);
+        if (pdpURL == null || pdpURL.isEmpty()) {
+            // Should send back its port for identification
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP did not send custom header");
+            pdpURL = "";
+        }
+        return pdpURL;
+    }
+
+    protected String getPDPJMX(HttpServletRequest request) {
+        String pdpJMMX = request.getHeader(XACMLRestProperties.PROP_PDP_HTTP_HEADER_JMX_PORT);
+        if (pdpJMMX == null || pdpJMMX.isEmpty()) {
+            // Should send back its port for identification
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP did not send custom header for JMX Port so the value of 0 is assigned");
+            return null;
+        }
+        return pdpJMMX;
+    }
+
+    /**
+     * Requests from the PolicyEngine API to update the PDP Group with pushed policy
+     *
+     * @param request
+     * @param response
+     * @param groupId
+     * @param loggingContext
+     * @throws ServletException
+     * @throws IOException
+     */
+    public void updateGroupsFromAPI(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+        PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
+        PolicyLogger.audit("PolicyDBDaoTransaction started for updateGroupsFromAPI");
+        try {
+            // for PUT operations the group may or may not need to exist before the operation can be done
+            StdPDPGroup group = (StdPDPGroup) papEngine.getGroup(groupId);
+
+            // get the request input stream content into a String
+            String json = null;
+            java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
+            scanner.useDelimiter("\\A");
+            json =  scanner.hasNext() ? scanner.next() : "";
+            scanner.close();
+
+            PolicyLogger.info("pushPolicy request from API: " + json);
+
+            // convert Object sent as JSON into local object
+            StdPDPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPDPPolicy.class);
+
+            //Get the current policies from the Group and Add the new one
+            Set<PDPPolicy> currentPoliciesInGroup = new HashSet<>();
+            currentPoliciesInGroup = group.getPolicies();
+            //If the selected policy is in the group we must remove the old version of it
+            LOGGER.info("Removing old version of the policy");
+            for(PDPPolicy existingPolicy : currentPoliciesInGroup) {
+                if (existingPolicy.getName().equals(policy.getName()) && !existingPolicy.getId().equals(policy.getId())){
+                    group.removePolicy(existingPolicy);
+                    LOGGER.info("Removing policy: " + existingPolicy);
+                    break;
+                }
+            }
+
+            // Assume that this is an update of an existing PDP Group
+            loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
+            try{
+                acPutTransaction.updateGroup(group, "XACMLPapServlet.doACPut");
+            } catch(Exception e){
+                PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
+                        +"group="+group.getId());
+                throw new PAPException(e.getMessage());
+            }
+
+            LOGGER.info("Calling updatGroup() with new group");
+            papEngine.updateGroup(group);
+            String policyId = "empty";
+            if(policy !=null && policy.getId() != null){
+                policyId = policy.getId();
+            }
+            if(!policyId.matches(REGEX) ){
+                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                response.addHeader("error",ADD_GROUP_ERROR);
+                response.addHeader("message", "Policy Id is not valid");
+                return;
+            }
+            response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+            response.addHeader("operation", "push");
+            response.addHeader("policyId", policyId);
+            response.addHeader("groupId", groupId);
+
+            LOGGER.info("Group '" + group.getId() + "' updated");
+
+            loggingContext.metricStarted();
+            acPutTransaction.commitTransaction();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI commitTransaction");
+            loggingContext.metricStarted();
+            notifyAC();
+            loggingContext.metricEnded();
+            PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI notifyAC");
+
+            // Group changed, which might include changing the policies
+            groupChanged(group, loggingContext);
+            loggingContext.transactionEnded();
+            LOGGER.info("Success");
+
+            if (policy != null && ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
+                PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
+                if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
+                    LOGGER.debug("Precheck Successful.");
+                }
+            }
+
+            PolicyLogger.audit("Transaction Ended Successfully");
+            return;
+        } catch (PAPException e) {
+            acPutTransaction.rollbackTransaction();
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception in request to update group from API - See Error.log on on the PAP.";
+            setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            response.addHeader("error",ADD_GROUP_ERROR);
+            response.addHeader("message", message);
+            return;
+        }
+    }
+
+    /**
+     * Requests from the Admin Console for operations not on single specific objects
+     *
+     * @param request
+     * @param response
+     * @param groupId
+     * @param loggingContext
+     * @throws ServletException
+     * @throws IOException
+     */
+    private void doACPost(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws ServletException, IOException {
+        PolicyDBDaoTransaction doACPostTransaction = null;
+        try {
+            String groupName = request.getParameter("groupName");
+            String groupDescription = request.getParameter("groupDescription");
+            String apiflag = request.getParameter("apiflag");
+            if (groupName != null && groupDescription != null) {
+                // Args:             group=<groupId> groupName=<name> groupDescription=<description>            <= create a new group
+                loggingContext.setServiceName("AC:PAP.createGroup");
+                String unescapedName = null;
+                String unescapedDescription = null;
+                try{
+                    unescapedName = URLDecoder.decode(groupName, "UTF-8");
+                    unescapedDescription = URLDecoder.decode(groupDescription, "UTF-8");
+                } catch (UnsupportedEncodingException e) {
+                    LOGGER.error(e);
+                }
+                PolicyDBDaoTransaction newGroupTransaction = policyDBDao.getNewTransaction();
+                try {
+                    newGroupTransaction.createGroup(PolicyDBDao.createNewPDPGroupId(unescapedName), unescapedName, unescapedDescription,"XACMLPapServlet.doACPost");
+                    papEngine.newGroup(unescapedName, unescapedDescription);
+                    loggingContext.metricStarted();
+                    newGroupTransaction.commitTransaction();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
+                } catch (Exception e) {
+                    newGroupTransaction.rollbackTransaction();
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to create new group");
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to create new group '" + groupId + "'");
+                    return;
+                }
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("New Group '" + groupId + "' created");
+                }
+                // tell the Admin Consoles there is a change
+                loggingContext.metricStarted();
+                notifyAC();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
+                // new group by definition has no PDPs, so no need to notify them of changes
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            }
+            // for all remaining POST operations the group must exist before the operation can be done
+            OnapPDPGroup group = null;
+            try{
+                group = papEngine.getGroup(groupId);
+            } catch (PAPException e){
+                LOGGER.error(e);
+            }
+            if (group == null) {
+                String message = "Unknown groupId '" + groupId + "'";
+                //for fixing Header Manipulation of Fortify issue
+                if(!message.matches(REGEX)){
+                    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                    response.addHeader("error",ADD_GROUP_ERROR);
+                    response.addHeader("message", "GroupId Id is not valid");
+                    return;
+                }
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                if (apiflag!=null){
+                    response.addHeader("error", "unknownGroupId");
+                    response.addHeader("operation", "push");
+                    response.addHeader("message", message);
+                    response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+                } else {
+                    setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+                }
+                return;
+            }
+
+            // If the request contains a policyId then we know we are pushing the policy to PDP
+            if (request.getParameter("policyId") != null) {
+
+                if(apiflag!=null){
+                    loggingContext.setServiceName("PolicyEngineAPI:PAP.postPolicy");
+                    LOGGER.info("PushPolicy Request From The API");
+                } else {
+                    loggingContext.setServiceName("AC:PAP.postPolicy");
+                    LOGGER.info("PushPolicy Request From The AC");
+                }
+
+                String policyId = request.getParameter("policyId");
+                PolicyDBDaoTransaction addPolicyToGroupTransaction = policyDBDao.getNewTransaction();
+                StdPDPGroup updatedGroup = null;
+                try {
+                    //Copying the policy to the file system and updating groups in database
+                    LOGGER.info("PapServlet: calling PolicyDBDao.addPolicyToGroup()");
+                    updatedGroup = addPolicyToGroupTransaction.addPolicyToGroup(group.getId(), policyId,"XACMLPapServlet.doACPost");
+                    loggingContext.metricStarted();
+                    addPolicyToGroupTransaction.commitTransaction();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
+                    LOGGER.info("PapServlet: addPolicyToGroup() succeeded, transaction was committed");
+
+                } catch (Exception e) {
+                    addPolicyToGroupTransaction.rollbackTransaction();
+                    String message = "Policy '" + policyId + "' not copied to group '" + groupId +"': " + e;
+                    //for fixing Header Manipulation of Fortify issue
+                    if(!message.matches(REGEX)){
+                        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                        response.addHeader("error",ADD_GROUP_ERROR);
+                        response.addHeader("message", "Policy Id is not valid");
+                        return;
+                    }
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " " + message);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    if (apiflag!=null){
+                        response.addHeader("error", "policyCopyError");
+                        response.addHeader("message", message);
+                        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                    } else {
+                        setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                    }
+                    return;
+                }
+
+                if(apiflag != null){
+                    /*
+                     * If request comes from the API we need to run the PolicyDBDao updateGroup() to notify other paps of the change.
+                     * The GUI does this from the POLICY-SDK-APP code.
+                     */
+
+                    // Get new transaction to perform updateGroup()
+                    PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
+                    try {
+                        // get the request content into a String and read the inputStream into a buffer
+                        java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
+                        scanner.useDelimiter("\\A");
+                        String json =  scanner.hasNext() ? scanner.next() : "";
+                        scanner.close();
+
+                        // convert Object sent as JSON into local object
+                        ObjectMapper mapper = new ObjectMapper();
+                        Object objectFromJSON = mapper.readValue(json, StdPDPPolicy.class);
+                        StdPDPPolicy policy = (StdPDPPolicy) objectFromJSON;
+
+                        LOGGER.info("Request JSON Payload: " + json);
+
+                        // Assume that this is an update of an existing PDP Group
+                        loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
+                        try{
+                            acPutTransaction.updateGroup(updatedGroup, "XACMLPapServlet.doACPut");
+                        } catch(Exception e){
+                            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error occurred when notifying PAPs of a group change: "
+                                    + e);
+                            throw new PAPException(e.getMessage());
+                        }
+
+                        LOGGER.info("Calling updatGroup() with new group");
+                        papEngine.updateGroup(updatedGroup);
+
+                        LOGGER.info("Group '" + updatedGroup.getId() + "' updated");
+
+                        // Commit transaction to send notification to other PAPs
+                        loggingContext.metricStarted();
+                        acPutTransaction.commitTransaction();
+                        loggingContext.metricEnded();
+                        PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI commitTransaction");
+                        loggingContext.metricStarted();
+
+                        notifyAC();
+                        loggingContext.metricEnded();
+                        PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI notifyAC");
+
+                        // Group changed to send notification to PDPs, which might include changing the policies
+                        groupChanged(updatedGroup,loggingContext);
+                        loggingContext.transactionEnded();
+                        LOGGER.info("Success");
+
+                        if (policy != null && ((policy.getName().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
+                            PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
+                            if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
+                                LOGGER.debug("Precheck Successful.");
+                            }
+                        }
+
+                        //delete temporary policy file from the bin directory
+                        Files.deleteIfExists(Paths.get(policy.getId()));
+
+                    } catch (Exception e) {
+                        acPutTransaction.rollbackTransaction();
+                        PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception occurred when updating the group from API.";
+                        LOGGER.error(message);
+                        setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                        response.addHeader("error",ADD_GROUP_ERROR);
+                        response.addHeader("message", message);
+                        return;
+                    }
+                }
+
+                // policy file copied ok and the Group was updated on the PDP
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                response.addHeader("operation", "push");
+                response.addHeader("policyId", policyId);
+                response.addHeader("groupId", groupId);
+
+                LOGGER.info("policy '" + policyId + "' copied to directory for group '" + groupId + "'");
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                LOGGER.info("Transaction Ended Successfully");
+
+                return;
+            } else if (request.getParameter("default") != null) {
+                // Args:       group=<groupId> default=true               <= make default
+                // change the current default group to be the one identified in the request.
+                loggingContext.setServiceName("AC:PAP.setDefaultGroup");
+                // This is a POST operation rather than a PUT "update group" because of the side-effect that the current default group is also changed.
+                // It should never be the case that multiple groups are currently marked as the default, but protect against that anyway.
+                PolicyDBDaoTransaction setDefaultGroupTransaction = policyDBDao.getNewTransaction();
+                try {
+                    setDefaultGroupTransaction.changeDefaultGroup(group, "XACMLPapServlet.doACPost");
+                    papEngine.setDefaultGroup(group);
+                    loggingContext.metricStarted();
+                    setDefaultGroupTransaction.commitTransaction();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
+                } catch (Exception e) {
+                    setDefaultGroupTransaction.rollbackTransaction();
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to set group");
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to set group '" + groupId + "' to default");
+                    return;
+                }
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Group '" + groupId + "' set to be default");
+                }
+                // Notify the Admin Consoles that something changed
+                // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
+                //TODO - Future: FIGURE OUT WHAT LEVEL TO NOTIFY: 2 groups or entire set - currently notify AC to update whole configuration of all groups
+                loggingContext.metricStarted();
+                notifyAC();
+                // This does not affect any PDPs in the existing groups, so no need to notify them of this change
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                LOGGER.info("Transaction Ended Successfully");
+                return;
+            } else if (request.getParameter("pdpId") != null) {
+                doACPostTransaction = policyDBDao.getNewTransaction();
+                // Args:       group=<groupId> pdpId=<pdpId>               <= move PDP to group
+                loggingContext.setServiceName("AC:PAP.movePDP");
+                String pdpId = request.getParameter("pdpId");
+                OnapPDP pdp = papEngine.getPDP(pdpId);
+                OnapPDPGroup originalGroup = papEngine.getPDPGroup((OnapPDP) pdp);
+                try{
+                    doACPostTransaction.movePdp(pdp, group, "XACMLPapServlet.doACPost");
+                }catch(Exception e){
+                    doACPostTransaction.rollbackTransaction();
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+                            " Error while moving pdp in the database: "
+                                    +"pdp="+pdp.getId()+",to group="+group.getId());
+                    throw new PAPException(e.getMessage());
+                }
+                papEngine.movePDP((OnapPDP) pdp, group);
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("PDP '" + pdp.getId() +"' moved to group '" + group.getId() + "' set to be default");
+                }
+                // update the status of both the original group and the new one
+                ((StdPDPGroup)originalGroup).resetStatus();
+                ((StdPDPGroup)group).resetStatus();
+                // Notify the Admin Consoles that something changed
+                // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
+                loggingContext.metricStarted();
+                notifyAC();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPost notifyAC");
+                // Need to notify the PDP that it's config may have changed
+                pdpChanged(pdp, loggingContext);
+                loggingContext.metricStarted();
+                doACPostTransaction.commitTransaction();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            }
+        } catch (PAPException e) {
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC POST exception");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            return;
+        }
+    }
+
+    /**
+     * Requests from the Admin Console to GET info about the Groups and PDPs
+     *
+     * @param request
+     * @param response
+     * @param groupId
+     * @param loggingContext
+     * @throws ServletException
+     * @throws IOException
+     */
+    private void doACGet(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+        try {
+            String parameterDefault = request.getParameter("default");
+            String pdpId = request.getParameter("pdpId");
+            String pdpGroup = request.getParameter("getPDPGroup");
+            if ("".equals(groupId)) {
+                // request IS from AC but does not identify a group by name
+                if (parameterDefault != null) {
+                    // Request is for the Default group (whatever its id)
+                    loggingContext.setServiceName("AC:PAP.getDefaultGroup");
+                    OnapPDPGroup group = papEngine.getDefaultGroup();
+                    // convert response object to JSON and include in the response
+                    mapperWriteValue(new ObjectMapper(), response,  group);
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("GET Default group req from '" + request.getRequestURL() + "'");
+                    }
+                    response.setStatus(HttpServletResponse.SC_OK);
+                    response.setHeader("content-type", "application/json");
+                    try{
                         response.getOutputStream().close();
                     } catch (IOException e){
                         LOGGER.error(e);
                     }
-                                       loggingContext.transactionEnded();
-                                       auditLogger.info("Success");
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       return;
-                               } else if (pdpId != null) {
-                                       // Request is related to a PDP
-                                       if (pdpGroup == null) {
-                                               // Request is for the (unspecified) group containing a given PDP
-                                               loggingContext.setServiceName("AC:PAP.getPDP");
-                                               OnapPDP pdp = null;
-                                               try{
-                                                   pdp = papEngine.getPDP(pdpId);
-                                               }catch(PAPException e){
-                                                   LOGGER.error(e);
-                                               }
-                                               // convert response object to JSON and include in the response
-                                               mapperWriteValue(new ObjectMapper(), response,  pdp);
-                                               if (LOGGER.isDebugEnabled()) {
-                                                       LOGGER.debug("GET pdp '" + pdpId + "' req from '" + request.getRequestURL() + "'");
-                                               }
-                                               response.setStatus(HttpServletResponse.SC_OK);
-                                               response.setHeader("content-type", "application/json");
-                                               try{
+                    loggingContext.transactionEnded();
+                    auditLogger.info("Success");
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    return;
+                } else if (pdpId != null) {
+                    // Request is related to a PDP
+                    if (pdpGroup == null) {
+                        // Request is for the (unspecified) group containing a given PDP
+                        loggingContext.setServiceName("AC:PAP.getPDP");
+                        OnapPDP pdp = null;
+                        try{
+                            pdp = papEngine.getPDP(pdpId);
+                        }catch(PAPException e){
+                            LOGGER.error(e);
+                        }
+                        // convert response object to JSON and include in the response
+                        mapperWriteValue(new ObjectMapper(), response,  pdp);
+                        if (LOGGER.isDebugEnabled()) {
+                            LOGGER.debug("GET pdp '" + pdpId + "' req from '" + request.getRequestURL() + "'");
+                        }
+                        response.setStatus(HttpServletResponse.SC_OK);
+                        response.setHeader("content-type", "application/json");
+                        try{
+                            response.getOutputStream().close();
+                        } catch (IOException e){
+                            LOGGER.error(e);
+                        }
+                        loggingContext.transactionEnded();
+                        auditLogger.info("Success");
+                        PolicyLogger.audit("Transaction Ended Successfully");
+                        return;
+                    } else {
+                        // Request is for the group containing a given PDP
+                        loggingContext.setServiceName("AC:PAP.getGroupForPDP");
+                        OnapPDPGroup group =null;
+                        try{
+                            OnapPDP pdp = papEngine.getPDP(pdpId);
+                            group = papEngine.getPDPGroup((OnapPDP) pdp);
+                        }catch(PAPException e){
+                            LOGGER.error(e);
+                        }
+                        // convert response object to JSON and include in the response
+                        mapperWriteValue(new ObjectMapper(), response,  group);
+                        if (LOGGER.isDebugEnabled()) {
+                            LOGGER.debug("GET PDP '" + pdpId + "' Group req from '" + request.getRequestURL() + "'");
+                        }
+                        response.setStatus(HttpServletResponse.SC_OK);
+                        response.setHeader("content-type", "application/json");
+                        try{
                             response.getOutputStream().close();
                         } catch (IOException e){
                             LOGGER.error(e);
                         }
-                                               loggingContext.transactionEnded();
-                                               auditLogger.info("Success");
-                                               PolicyLogger.audit("Transaction Ended Successfully");
-                                               return;
-                                       } else {
-                                               // Request is for the group containing a given PDP
-                                               loggingContext.setServiceName("AC:PAP.getGroupForPDP");
-                                               OnapPDPGroup group =null;
-                                               try{
-                                                   OnapPDP pdp = papEngine.getPDP(pdpId);
-                               group = papEngine.getPDPGroup((OnapPDP) pdp);
-                                               }catch(PAPException e){
-                                                   LOGGER.error(e);
-                                               }
-                                               // convert response object to JSON and include in the response
-                                               mapperWriteValue(new ObjectMapper(), response,  group);
-                                               if (LOGGER.isDebugEnabled()) {
-                                                       LOGGER.debug("GET PDP '" + pdpId + "' Group req from '" + request.getRequestURL() + "'");
-                                               }
-                                               response.setStatus(HttpServletResponse.SC_OK);
-                                               response.setHeader("content-type", "application/json");
-                                               try{
-                               response.getOutputStream().close();
-                           } catch (IOException e){
-                               LOGGER.error(e);
-                           }
-                                               loggingContext.transactionEnded();
-                                               auditLogger.info("Success");
-                                               PolicyLogger.audit("Transaction Ended Successfully");
-                                               return;
-                                       }
-                               } else {
-                                       // request is for top-level properties about all groups
-                                       loggingContext.setServiceName("AC:PAP.getAllGroups");
-                                       Set<OnapPDPGroup> groups = null;
-                                       try {
-                                           groups = papEngine.getOnapPDPGroups();
-                                       } catch(PAPException e) {
-                                           PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
-                                           loggingContext.transactionEnded();
-                                           PolicyLogger.audit("Transaction Failed - See Error.log");
-                                           setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                                           return;
-                                       }
-                                       // convert response object to JSON and include in the response
-                                       mapperWriteValue(new ObjectMapper(), response,  groups);
-                                       if (LOGGER.isDebugEnabled()) {
-                                               LOGGER.debug("GET All groups req");
-                                       }
-                                       response.setStatus(HttpServletResponse.SC_OK);
-                                       response.setHeader("content-type", "application/json");
-                                       try{
-                           response.getOutputStream().close();
-                       } catch (IOException e){
-                           LOGGER.error(e);
-                       }
-                                       loggingContext.transactionEnded();
-                                       auditLogger.info("Success");
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       return;
-                               }
-                       }
-                       // for all other GET operations the group must exist before the operation can be done
-                       OnapPDPGroup group = null;
-                       try{
-                           group = papEngine.getGroup(groupId);
-                       } catch(PAPException e){
-                           LOGGER.error(e);
-                       }
-                       if (group == null) {
-                               String message = "Unknown groupId '" + groupId + "'";
-                               //for fixing Header Manipulation of Fortify issue
-                               if(!message.matches(REGEX)){
-                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                       response.addHeader("error",ADD_GROUP_ERROR);
-                                       response.addHeader("message", "Group Id is not valid");
-                                       return;
-                               }
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                               return;
-                       }
-                       // Figure out which request this is based on the parameters
-                       String policyId = request.getParameter("policyId");
-                       if (policyId != null) {
-                               // retrieve a policy
-                               loggingContext.setServiceName("AC:PAP.getPolicy");
-                               // convert response object to JSON and include in the response
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " GET Policy not implemented");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "GET Policy not implemented");
-                       } else {
-                               // No other parameters, so return the identified Group
-                               loggingContext.setServiceName("AC:PAP.getGroup");
-                               // convert response object to JSON and include in the response
-                               mapperWriteValue(new ObjectMapper(), response,  group);
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("GET group '" + group.getId() + "' req from '" + request.getRequestURL() + "'");
-                               }
-                               response.setStatus(HttpServletResponse.SC_OK);
-                               response.setHeader("content-type", "application/json");
-                               try{
-                                   response.getOutputStream().close();
-                               } catch (IOException e){
-                                   LOGGER.error(e);
-                               }
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       }
-                       // Currently there are no other GET calls from the AC.
-                       // The AC uses the "GET All Groups" operation to fill its local cache and uses that cache for all other GETs without calling the PAP.
-                       // Other GETs that could be called:
-                       //                              Specific Group  (groupId=<groupId>)
-                       //                              A Policy                (groupId=<groupId> policyId=<policyId>)
-                       //                              A PDP                   (groupId=<groupId> pdpId=<pdpId>)
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " UNIMPLEMENTED ");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
-               } catch (PAPException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       return;
-               }
-       }
-       
-       /**
-        * Requests from the Admin Console to create new items or update existing ones
-        * 
-        * @param request
-        * @param response
-        * @param groupId
-        * @param loggingContext 
-        * @throws ServletException
-        * @throws IOException
-        */
-       private void doACPut(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
-               PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
-               try {
-                       // for PUT operations the group may or may not need to exist before the operation can be done
-                       OnapPDPGroup group = papEngine.getGroup(groupId);
-                       // determine the operation needed based on the parameters in the request
-                       // for remaining operations the group must exist before the operation can be done
-                       if (group == null) {
-                               String message = "Unknown groupId '" + groupId + "'";
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
-                               return;
-                       }
-                       if (request.getParameter("policy") != null) {
-                               //        group=<groupId> policy=<policyId> contents=policy file               <= Create new policy file in group dir, or replace it if it already exists (do not touch properties)
-                               loggingContext.setServiceName("AC:PAP.putPolicy");
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PARTIALLY IMPLEMENTED!!!  ACTUAL CHANGES SHOULD BE MADE BY PAP SERVLET!!! ");
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       } else if (request.getParameter("pdpId") != null) {
-                               // ARGS:        group=<groupId> pdpId=<pdpId/URL>          <= create a new PDP or Update an Existing one
-                               String pdpId = request.getParameter("pdpId");
-                               if (papEngine.getPDP(pdpId) == null) {
-                                       loggingContext.setServiceName("AC:PAP.createPDP");
-                               } else {
-                                       loggingContext.setServiceName("AC:PAP.updatePDP");
-                               }
-                               // get the request content into a String
-                               String json = null;
-                               // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
-                               try{
-                                   Scanner scanner = new Scanner(request.getInputStream());
-                                   scanner.useDelimiter("\\A");
-                       json =  scanner.hasNext() ? scanner.next() : "";
-                       scanner.close();
-                               }catch(IOException e){
-                                   LOGGER.error(e);
-                               }
-                               LOGGER.info("JSON request from AC: " + json);
-                               // convert Object sent as JSON into local object
-                               ObjectMapper mapper = new ObjectMapper();
-                               Object objectFromJSON = null;
-                               try {
-                                   objectFromJSON = mapper.readValue(json, StdPDP.class);
-                               } catch(Exception e) {
-                                   LOGGER.error(e);
-                               }
-                               if (pdpId == null ||
-                                               objectFromJSON == null ||
-                                               ! (objectFromJSON instanceof StdPDP) ||
-                                               ((StdPDP)objectFromJSON).getId() == null ||
-                                               ! ((StdPDP)objectFromJSON).getId().equals(pdpId)) {
-                                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PDP new/update had bad input. pdpId=" + pdpId + " objectFromJSON="+objectFromJSON);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input pdpid for object:"+objectFromJSON);
-                               }
-                               StdPDP pdp = (StdPDP) objectFromJSON;
-                               if(pdp != null){
-                                   OnapPDP oPDP = null;
-                                   try{
-                                       oPDP = papEngine.getPDP(pdpId);
-                                   }catch (PAPException e){
-                                       LOGGER.error(e);
-                                   }
-                                       if (oPDP == null) {
-                                               // this is a request to create a new PDP object
-                                               try{
-                                                       acPutTransaction.addPdpToGroup(pdp.getId(), group.getId(), pdp.getName(), 
-                                                                       pdp.getDescription(), pdp.getJmxPort(),"XACMLPapServlet.doACPut");
-                                               } catch(Exception e){
-                                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while adding pdp to group in the database: "
-                                                                       +"pdp="+ (pdp.getId()) +",to group="+group.getId());
-                                                       throw new PAPException(e.getMessage());
-                                               }
-                                               try{
-                                                   papEngine.newPDP(pdp.getId(), group, pdp.getName(), pdp.getDescription(), pdp.getJmxPort());
-                                               }catch(PAPException e){
-                                                   LOGGER.error(e);
-                                               }
-                                       } else {
-                                               try{
-                                                       acPutTransaction.updatePdp(pdp, "XACMLPapServlet.doACPut");
-                                               } catch(Exception e){
-                                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating pdp in the database: "
-                                                                       +"pdp="+ pdp.getId());
-                                                       throw new PAPException(e.getMessage());
-                                               }
-                                               // this is a request to update the pdp
-                                               try{
-                                                   papEngine.updatePDP(pdp);
-                                               }catch(PAPException e){
+                        loggingContext.transactionEnded();
+                        auditLogger.info("Success");
+                        PolicyLogger.audit("Transaction Ended Successfully");
+                        return;
+                    }
+                } else {
+                    // request is for top-level properties about all groups
+                    loggingContext.setServiceName("AC:PAP.getAllGroups");
+                    Set<OnapPDPGroup> groups = null;
+                    try {
+                        groups = papEngine.getOnapPDPGroups();
+                    } catch(PAPException e) {
+                        PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
+                        loggingContext.transactionEnded();
+                        PolicyLogger.audit("Transaction Failed - See Error.log");
+                        setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+                        return;
+                    }
+                    // convert response object to JSON and include in the response
+                    mapperWriteValue(new ObjectMapper(), response,  groups);
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("GET All groups req");
+                    }
+                    response.setStatus(HttpServletResponse.SC_OK);
+                    response.setHeader("content-type", "application/json");
+                    try{
+                        response.getOutputStream().close();
+                    } catch (IOException e){
+                        LOGGER.error(e);
+                    }
+                    loggingContext.transactionEnded();
+                    auditLogger.info("Success");
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    return;
+                }
+            }
+            // for all other GET operations the group must exist before the operation can be done
+            OnapPDPGroup group = null;
+            try{
+                group = papEngine.getGroup(groupId);
+            } catch(PAPException e){
+                LOGGER.error(e);
+            }
+            if (group == null) {
+                String message = "Unknown groupId '" + groupId + "'";
+                //for fixing Header Manipulation of Fortify issue
+                if(!message.matches(REGEX)){
+                    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                    response.addHeader("error",ADD_GROUP_ERROR);
+                    response.addHeader("message", "Group Id is not valid");
+                    return;
+                }
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+                return;
+            }
+            // Figure out which request this is based on the parameters
+            String policyId = request.getParameter("policyId");
+            if (policyId != null) {
+                // retrieve a policy
+                loggingContext.setServiceName("AC:PAP.getPolicy");
+                // convert response object to JSON and include in the response
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " GET Policy not implemented");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "GET Policy not implemented");
+            } else {
+                // No other parameters, so return the identified Group
+                loggingContext.setServiceName("AC:PAP.getGroup");
+                // convert response object to JSON and include in the response
+                mapperWriteValue(new ObjectMapper(), response,  group);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("GET group '" + group.getId() + "' req from '" + request.getRequestURL() + "'");
+                }
+                response.setStatus(HttpServletResponse.SC_OK);
+                response.setHeader("content-type", "application/json");
+                try{
+                    response.getOutputStream().close();
+                } catch (IOException e){
+                    LOGGER.error(e);
+                }
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            }
+            // Currently there are no other GET calls from the AC.
+            // The AC uses the "GET All Groups" operation to fill its local cache and uses that cache for all other GETs without calling the PAP.
+            // Other GETs that could be called:
+            //                         Specific Group  (groupId=<groupId>)
+            //                         A Policy                (groupId=<groupId> policyId=<policyId>)
+            //                         A PDP                   (groupId=<groupId> pdpId=<pdpId>)
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " UNIMPLEMENTED ");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+        } catch (PAPException e) {
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            return;
+        }
+    }
+
+    /**
+     * Requests from the Admin Console to create new items or update existing ones
+     *
+     * @param request
+     * @param response
+     * @param groupId
+     * @param loggingContext
+     * @throws ServletException
+     * @throws IOException
+     */
+    private void doACPut(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+        PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
+        try {
+            // for PUT operations the group may or may not need to exist before the operation can be done
+            OnapPDPGroup group = papEngine.getGroup(groupId);
+            // determine the operation needed based on the parameters in the request
+            // for remaining operations the group must exist before the operation can be done
+            if (group == null) {
+                String message = "Unknown groupId '" + groupId + "'";
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+                return;
+            }
+            if (request.getParameter("policy") != null) {
+                //        group=<groupId> policy=<policyId> contents=policy file               <= Create new policy file in group dir, or replace it if it already exists (do not touch properties)
+                loggingContext.setServiceName("AC:PAP.putPolicy");
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PARTIALLY IMPLEMENTED!!!  ACTUAL CHANGES SHOULD BE MADE BY PAP SERVLET!!! ");
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            } else if (request.getParameter("pdpId") != null) {
+                // ARGS:        group=<groupId> pdpId=<pdpId/URL>          <= create a new PDP or Update an Existing one
+                String pdpId = request.getParameter("pdpId");
+                if (papEngine.getPDP(pdpId) == null) {
+                    loggingContext.setServiceName("AC:PAP.createPDP");
+                } else {
+                    loggingContext.setServiceName("AC:PAP.updatePDP");
+                }
+                // get the request content into a String
+                String json = null;
+                // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
+                try{
+                    Scanner scanner = new Scanner(request.getInputStream());
+                    scanner.useDelimiter("\\A");
+                    json =  scanner.hasNext() ? scanner.next() : "";
+                    scanner.close();
+                }catch(IOException e){
+                    LOGGER.error(e);
+                }
+                LOGGER.info("JSON request from AC: " + json);
+                // convert Object sent as JSON into local object
+                ObjectMapper mapper = new ObjectMapper();
+                Object objectFromJSON = null;
+                try {
+                    objectFromJSON = mapper.readValue(json, StdPDP.class);
+                } catch(Exception e) {
+                    LOGGER.error(e);
+                }
+                if (pdpId == null ||
+                        objectFromJSON == null ||
+                        ! (objectFromJSON instanceof StdPDP) ||
+                        ((StdPDP)objectFromJSON).getId() == null ||
+                        ! ((StdPDP)objectFromJSON).getId().equals(pdpId)) {
+                    PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PDP new/update had bad input. pdpId=" + pdpId + " objectFromJSON="+objectFromJSON);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input pdpid for object:"+objectFromJSON);
+                }
+                StdPDP pdp = (StdPDP) objectFromJSON;
+                if(pdp != null){
+                    OnapPDP oPDP = null;
+                    try{
+                        oPDP = papEngine.getPDP(pdpId);
+                    }catch (PAPException e){
+                        LOGGER.error(e);
+                    }
+                    if (oPDP == null) {
+                        // this is a request to create a new PDP object
+                        try{
+                            acPutTransaction.addPdpToGroup(pdp.getId(), group.getId(), pdp.getName(),
+                                    pdp.getDescription(), pdp.getJmxPort(),"XACMLPapServlet.doACPut");
+                        } catch(Exception e){
+                            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while adding pdp to group in the database: "
+                                    +"pdp="+ (pdp.getId()) +",to group="+group.getId());
+                            throw new PAPException(e.getMessage());
+                        }
+                        try{
+                            papEngine.newPDP(pdp.getId(), group, pdp.getName(), pdp.getDescription(), pdp.getJmxPort());
+                        }catch(PAPException e){
+                            LOGGER.error(e);
+                        }
+                    } else {
+                        try{
+                            acPutTransaction.updatePdp(pdp, "XACMLPapServlet.doACPut");
+                        } catch(Exception e){
+                            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating pdp in the database: "
+                                    +"pdp="+ pdp.getId());
+                            throw new PAPException(e.getMessage());
+                        }
+                        // this is a request to update the pdp
+                        try{
+                            papEngine.updatePDP(pdp);
+                        }catch(PAPException e){
                             LOGGER.error(e);
                         }
-                                       }
-                                       response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                                       if (LOGGER.isDebugEnabled()) {
-                                               LOGGER.debug("PDP '" + pdpId + "' created/updated");
-                                       }
-                                       // adjust the group's state including the new PDP
-                                       ((StdPDPGroup)group).resetStatus();
-                                       // tell the Admin Consoles there is a change
-                                       loggingContext.metricStarted();
-                                       notifyAC();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
-                                       // this might affect the PDP, so notify it of the change
-                                       pdpChanged(pdp, loggingContext);
-                                       loggingContext.metricStarted();
-                                       acPutTransaction.commitTransaction();
-                                       loggingContext.metricEnded();
-                                       PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
-                                       loggingContext.transactionEnded();
-                                       auditLogger.info("Success");
-                                       PolicyLogger.audit("Transaction Ended Successfully");
-                                       return;
-                               }else{
-                                       try{
-                                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, "XACMLPapServlet", " Error while adding pdp to group in the database: "
-                                                               +"pdp=null" + ",to group="+group.getId());
-                                               throw new PAPException("PDP is null");
-                                       } catch(Exception e){
-                                               throw new PAPException("PDP is null" + e.getMessage() +e);
-                                       }
-                               }
-                       } else if (request.getParameter("pipId") != null) {
-                               //                group=<groupId> pipId=<pipEngineId> contents=pip properties              <= add a PIP to pip config, or replace it if it already exists (lenient operation) 
-                               loggingContext.setServiceName("AC:PAP.putPIP");
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
-                               return;
-                       } else {
-                               // Assume that this is an update of an existing PDP Group
-                               // ARGS:        group=<groupId>         <= Update an Existing Group
-                               loggingContext.setServiceName("AC:PAP.updateGroup");
-                               // get the request content into a String
-                               String json = null;
-                               // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
+                    }
+                    response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("PDP '" + pdpId + "' created/updated");
+                    }
+                    // adjust the group's state including the new PDP
+                    ((StdPDPGroup)group).resetStatus();
+                    // tell the Admin Consoles there is a change
+                    loggingContext.metricStarted();
+                    notifyAC();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
+                    // this might affect the PDP, so notify it of the change
+                    pdpChanged(pdp, loggingContext);
+                    loggingContext.metricStarted();
+                    acPutTransaction.commitTransaction();
+                    loggingContext.metricEnded();
+                    PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
+                    loggingContext.transactionEnded();
+                    auditLogger.info("Success");
+                    PolicyLogger.audit("Transaction Ended Successfully");
+                    return;
+                }else{
+                    try{
+                        PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, "XACMLPapServlet", " Error while adding pdp to group in the database: "
+                                +"pdp=null" + ",to group="+group.getId());
+                        throw new PAPException("PDP is null");
+                    } catch(Exception e){
+                        throw new PAPException("PDP is null" + e.getMessage() +e);
+                    }
+                }
+            } else if (request.getParameter("pipId") != null) {
+                //                group=<groupId> pipId=<pipEngineId> contents=pip properties              <= add a PIP to pip config, or replace it if it already exists (lenient operation)
+                loggingContext.setServiceName("AC:PAP.putPIP");
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                return;
+            } else {
+                // Assume that this is an update of an existing PDP Group
+                // ARGS:        group=<groupId>         <= Update an Existing Group
+                loggingContext.setServiceName("AC:PAP.updateGroup");
+                // get the request content into a String
+                String json = null;
+                // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
                 try{
                     Scanner scanner = new Scanner(request.getInputStream());
                     scanner.useDelimiter("\\A");
@@ -2158,880 +2158,880 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                 }catch(IOException e){
                     LOGGER.error(e);
                 }
-                               LOGGER.info("JSON request from AC: " + json);
-                               // convert Object sent as JSON into local object
-                               ObjectMapper mapper = new ObjectMapper();
-                               Object objectFromJSON = null;
-                               try {
-                                   objectFromJSON  = mapper.readValue(json, StdPDPGroup.class);
-                               } catch(Exception e) {
-                                   LOGGER.error(e);
-                               }
-                               if (objectFromJSON == null || ! (objectFromJSON instanceof StdPDPGroup) ||
-                                               ! ((StdPDPGroup)objectFromJSON).getId().equals(group.getId())) {
-                                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + group.getId() + " objectFromJSON="+objectFromJSON);
-                                       loggingContext.transactionEnded();
-                                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input id for object:"+objectFromJSON);
-                               }
-                               // The Path on the PAP side is not carried on the RESTful interface with the AC
-                               // (because it is local to the PAP)
-                               // so we need to fill that in before submitting the group for update
-                               if(objectFromJSON != null){
-                                       ((StdPDPGroup)objectFromJSON).setDirectory(((StdPDPGroup)group).getDirectory());
-                               }
-                               try{
-                                       if("delete".equals(((StdPDPGroup)objectFromJSON).getOperation())){
-                                               acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doDelete");
-                                       } else {
-                                               acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doACPut");
-                                       }
-                               } catch(Exception e){
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database: "
-                                                       +"group="+group.getId());
-                                       LOGGER.error(e);
-                                       throw new PAPException(e.getMessage());
-                               }
-                               
-                               PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();  
-                               OnapPDPGroup updatedGroup = (StdPDPGroup)objectFromJSON;        
-                               if (pushPolicyHandler.preSafetyCheck(updatedGroup, configHome)) {               
-                                       LOGGER.debug("Precheck Successful.");
-                               }
-                               try{
-                                   papEngine.updateGroup((StdPDPGroup)objectFromJSON);
-                               }catch(PAPException e){
-                                   LOGGER.error(e);
-                               }
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("Group '" + group.getId() + "' updated");
-                               }
-                               loggingContext.metricStarted();
-                               acPutTransaction.commitTransaction();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
-                               // tell the Admin Consoles there is a change
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
-                               // Group changed, which might include changing the policies
-                               groupChanged(group, loggingContext);
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       }
-               } catch (PAPException e) {
-                       LOGGER.debug(e);
-                       acPutTransaction.rollbackTransaction();
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC PUT exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       return;
-               }
-       }
-       
-       /**
-        * Requests from the Admin Console to delete/remove items
-        * 
-        * @param request
-        * @param response
-        * @param groupId
-        * @param loggingContext 
-        * @throws ServletException
-        * @throws IOException
-        */
-       private void doACDelete(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
-               PolicyDBDaoTransaction removePdpOrGroupTransaction = policyDBDao.getNewTransaction();
-               try {
-                       // for all DELETE operations the group must exist before the operation can be done
-                       loggingContext.setServiceName("AC:PAP.delete");
-                       OnapPDPGroup group = papEngine.getGroup(groupId);
-                       if (group == null) {
-                               String message = "Unknown groupId '" + groupId + "'";
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_NOT_FOUND, "Unknown groupId '" + groupId +"'");
-                               return;
-                       }
-                       // determine the operation needed based on the parameters in the request
-                       if (request.getParameter("policy") != null) {
-                               //        group=<groupId> policy=<policyId>  [delete=<true|false>]       <= delete policy file from group
-                               loggingContext.setServiceName("AC:PAP.deletePolicy");
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
-                               return;
-                       } else if (request.getParameter("pdpId") != null) {
-                               // ARGS:        group=<groupId> pdpId=<pdpId>                  <= delete PDP 
-                               String pdpId = request.getParameter("pdpId");
-                               OnapPDP pdp = papEngine.getPDP(pdpId);
-                               try{
-                                       removePdpOrGroupTransaction.removePdpFromGroup(pdp.getId(),"XACMLPapServlet.doACDelete");
-                               } catch(Exception e){
-                                       throw new PAPException(e);
-                               }
-                               try{
-                       papEngine.removePDP((OnapPDP) pdp);
-                               }catch(PAPException e){
+                LOGGER.info("JSON request from AC: " + json);
+                // convert Object sent as JSON into local object
+                ObjectMapper mapper = new ObjectMapper();
+                Object objectFromJSON = null;
+                try {
+                    objectFromJSON  = mapper.readValue(json, StdPDPGroup.class);
+                } catch(Exception e) {
+                    LOGGER.error(e);
+                }
+                if (objectFromJSON == null || ! (objectFromJSON instanceof StdPDPGroup) ||
+                        ! ((StdPDPGroup)objectFromJSON).getId().equals(group.getId())) {
+                    PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + group.getId() + " objectFromJSON="+objectFromJSON);
+                    loggingContext.transactionEnded();
+                    PolicyLogger.audit("Transaction Failed - See Error.log");
+                    setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input id for object:"+objectFromJSON);
+                }
+                // The Path on the PAP side is not carried on the RESTful interface with the AC
+                // (because it is local to the PAP)
+                // so we need to fill that in before submitting the group for update
+                if(objectFromJSON != null){
+                    ((StdPDPGroup)objectFromJSON).setDirectory(((StdPDPGroup)group).getDirectory());
+                }
+                try{
+                    if("delete".equals(((StdPDPGroup)objectFromJSON).getOperation())){
+                        acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doDelete");
+                    } else {
+                        acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doACPut");
+                    }
+                } catch(Exception e){
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database: "
+                            +"group="+group.getId());
+                    LOGGER.error(e);
+                    throw new PAPException(e.getMessage());
+                }
+
+                PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
+                OnapPDPGroup updatedGroup = (StdPDPGroup)objectFromJSON;
+                if (pushPolicyHandler.preSafetyCheck(updatedGroup, configHome)) {
+                    LOGGER.debug("Precheck Successful.");
+                }
+                try{
+                    papEngine.updateGroup((StdPDPGroup)objectFromJSON);
+                }catch(PAPException e){
                     LOGGER.error(e);
                 }
-                               // adjust the status of the group, which may have changed when we removed this PDP
-                               ((StdPDPGroup)group).resetStatus();
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
-                               // update the PDP and tell it that it has NO Policies (which prevents it from serving PEP Requests)
-                               pdpChanged(pdp, loggingContext);
-                               loggingContext.metricStarted();
-                               removePdpOrGroupTransaction.commitTransaction();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       } else if (request.getParameter("pipId") != null) {
-                               //        group=<groupId> pipId=<pipEngineId> <= delete PIP config for given engine
-                               loggingContext.setServiceName("AC:PAP.deletePIPConfig");
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See Error.log");
-                               setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
-                               return;
-                       } else {
-                               // ARGS:      group=<groupId> movePDPsToGroupId=<movePDPsToGroupId>            <= delete a group and move all its PDPs to the given group
-                               String moveToGroupId = request.getParameter("movePDPsToGroupId");
-                               OnapPDPGroup moveToGroup = null;
-                               if (moveToGroupId != null) {
-                                   try{
-                                       moveToGroup = papEngine.getGroup(moveToGroupId);
-                                   }catch(PAPException e){
-                           LOGGER.error(e);
-                       }
-                               }
-                               // get list of PDPs in the group being deleted so we can notify them that they got changed
-                               Set<OnapPDP> movedPDPs = new HashSet<>();
-                               movedPDPs.addAll(group.getOnapPdps());
-                               // do the move/remove
-                               try{
-                                       removePdpOrGroupTransaction.deleteGroup(group, moveToGroup,"XACMLPapServlet.doACDelete");
-                               } catch(Exception e){
-                                       PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " Failed to delete PDP Group. Exception");
-                                       throw new PAPException(e.getMessage());
-                               }
-                               try{
-                                   papEngine.removeGroup(group, moveToGroup);
-                               }catch(PAPException e){
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Group '" + group.getId() + "' updated");
+                }
+                loggingContext.metricStarted();
+                acPutTransaction.commitTransaction();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
+                // tell the Admin Consoles there is a change
+                loggingContext.metricStarted();
+                notifyAC();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
+                // Group changed, which might include changing the policies
+                groupChanged(group, loggingContext);
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            }
+        } catch (PAPException e) {
+            LOGGER.debug(e);
+            acPutTransaction.rollbackTransaction();
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC PUT exception");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            return;
+        }
+    }
+
+    /**
+     * Requests from the Admin Console to delete/remove items
+     *
+     * @param request
+     * @param response
+     * @param groupId
+     * @param loggingContext
+     * @throws ServletException
+     * @throws IOException
+     */
+    private void doACDelete(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+        PolicyDBDaoTransaction removePdpOrGroupTransaction = policyDBDao.getNewTransaction();
+        try {
+            // for all DELETE operations the group must exist before the operation can be done
+            loggingContext.setServiceName("AC:PAP.delete");
+            OnapPDPGroup group = papEngine.getGroup(groupId);
+            if (group == null) {
+                String message = "Unknown groupId '" + groupId + "'";
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_NOT_FOUND, "Unknown groupId '" + groupId +"'");
+                return;
+            }
+            // determine the operation needed based on the parameters in the request
+            if (request.getParameter("policy") != null) {
+                //        group=<groupId> policy=<policyId>  [delete=<true|false>]       <= delete policy file from group
+                loggingContext.setServiceName("AC:PAP.deletePolicy");
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                return;
+            } else if (request.getParameter("pdpId") != null) {
+                // ARGS:        group=<groupId> pdpId=<pdpId>                  <= delete PDP
+                String pdpId = request.getParameter("pdpId");
+                OnapPDP pdp = papEngine.getPDP(pdpId);
+                try{
+                    removePdpOrGroupTransaction.removePdpFromGroup(pdp.getId(),"XACMLPapServlet.doACDelete");
+                } catch(Exception e){
+                    throw new PAPException(e);
+                }
+                try{
+                    papEngine.removePDP((OnapPDP) pdp);
+                }catch(PAPException e){
                     LOGGER.error(e);
                 }
-                               response.setStatus(HttpServletResponse.SC_NO_CONTENT);
-                               loggingContext.metricStarted();
-                               notifyAC();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
-                               // notify any PDPs in the removed set that their config may have changed
-                               for (OnapPDP pdp : movedPDPs) {
-                                       pdpChanged(pdp, loggingContext);
-                               }
-                               loggingContext.metricStarted();
-                               removePdpOrGroupTransaction.commitTransaction();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
-                               loggingContext.transactionEnded();
-                               auditLogger.info("Success");
-                               PolicyLogger.audit("Transaction Ended Successfully");
-                               return;
-                       }
-               } catch (PAPException e) {
-                       removePdpOrGroupTransaction.rollbackTransaction();
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC DELETE exception");
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
-                       return;
-               }
-       }
-       
-       /**
-        * Heartbeat thread - periodically check on PDPs' status
-        * 
-        * Heartbeat with all known PDPs.
-        * 
-        * Implementation note:
-        * 
-        * The PDPs are contacted Sequentially, not in Parallel.
-        * 
-        * If we did this in parallel using multiple threads we would simultaneously use
-        *              - 1 thread and
-        *              - 1 connection
-        * for EACH PDP.
-        * This could become a resource problem since we already use multiple threads and connections for updating the PDPs
-        * when user changes occur.
-        * Using separate threads can also make it tricky dealing with timeouts on PDPs that are non-responsive.
-        * 
-        * The Sequential operation does a heartbeat request to each PDP one at a time.
-        * This has the flaw that any PDPs that do not respond will hold up the entire heartbeat sequence until they timeout.
-        * If there are a lot of non-responsive PDPs and the timeout is large-ish (the default is 20 seconds)
-        * it could take a long time to cycle through all of the PDPs.
-        * That means that this may not notice a PDP being down in a predictable time.
-        */
-       private class Heartbeat implements Runnable {
-               private PAPPolicyEngine papEngine;
-               private Set<OnapPDP> pdps = new HashSet<>();
-               private int heartbeatInterval;
-               private int heartbeatTimeout;
-
-               public volatile boolean isRunning = false;
-
-               public synchronized boolean isRunning() {
-                       return this.isRunning;
-               }
-
-               public synchronized void terminate() {
-                       this.isRunning = false;
-               }
-
-               public Heartbeat(PAPPolicyEngine papEngine2) {
-                       papEngine = papEngine2;
-                       this.heartbeatInterval = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_INTERVAL, "10000"));
-                       this.heartbeatTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_TIMEOUT, "10000"));
-               }
-
-               @Override
-               public void run() {
-                       // Set ourselves as running
-                       synchronized(this) {
-                               this.isRunning = true;
-                       }
-                       HashMap<String, URL> idToURLMap = new HashMap<>();
-                       try {
-                               while (this.isRunning()) {
-                                       // Wait the given time
-                                       Thread.sleep(heartbeatInterval);
-                                       // get the list of PDPs (may have changed since last time)
-                                       pdps.clear();
-                                       synchronized(papEngine) {
-                                               try {
-                                                       for (OnapPDPGroup g : papEngine.getOnapPDPGroups()) {
-                                                               for (OnapPDP p : g.getOnapPdps()) {
-                                                                       pdps.add(p);
-                                                               }
-                                                       }
-                                               } catch (PAPException e) {
-                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat unable to read PDPs from PAPEngine");
-                                               }
-                                       }
-                                       // Check for shutdown
-                                       if (this.isRunning() == false) {
-                                               LOGGER.info("isRunning is false, getting out of loop.");
-                                               break;
-                                       }
-                                       // try to get the summary status from each PDP
-                                       boolean changeSeen = false;
-                                       for (OnapPDP pdp : pdps) {
-                                               // Check for shutdown
-                                               if (this.isRunning() == false) {
-                                                       LOGGER.info("isRunning is false, getting out of loop.");
-                                                       break;
-                                               }
-                                               // the id of the PDP is its url (though we add a query parameter)
-                                               URL pdpURL = idToURLMap.get(pdp.getId());
-                                               if (pdpURL == null) {
-                                                       // haven't seen this PDP before
-                                                       String fullURLString = null;
-                                                       try {
-                                                               // Check PDP ID
-                                                               if(CheckPDP.validateID(pdp.getId())){
-                                                                       fullURLString = pdp.getId() + "?type=hb";
-                                                                       pdpURL = new URL(fullURLString);
-                                                                       idToURLMap.put(pdp.getId(), pdpURL);
-                                                               }
-                                                       } catch (MalformedURLException e) {
-                                                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " PDP id '" + fullURLString + "' is not a valid URL");
-                                                               continue;
-                                                       }
-                                               }
-                                               // Do a GET with type HeartBeat
-                                               String newStatus = "";
-                                               HttpURLConnection connection = null;
-                                               try {
-                                                       // Open up the connection
-                                                       if(pdpURL != null){
-                                                               connection = (HttpURLConnection)pdpURL.openConnection();
-                                                               // Setup our method and headers
-                                                               connection.setRequestMethod("GET");
-                                                               connection.setConnectTimeout(heartbeatTimeout);
-                                                               // Authentication
-                                                               String encoding = CheckPDP.getEncoding(pdp.getId());
-                                                               if(encoding !=null){
-                                                                       connection.setRequestProperty("Authorization", "Basic " + encoding);
-                                                               }
-                                                               // Do the connect
-                                                               connection.connect();
-                                                               if (connection.getResponseCode() == 204) {
-                                                                       newStatus = connection.getHeaderField(XACMLRestProperties.PROP_PDP_HTTP_HEADER_HB);
-                                                                       if (LOGGER.isDebugEnabled()) {
-                                                                               LOGGER.debug("Heartbeat '" + pdp.getId() + "' status='" + newStatus + "'");
-                                                                       }
-                                                               } else {
-                                                                       // anything else is an unexpected result
-                                                                       newStatus = PDPStatus.Status.UNKNOWN.toString();
-                                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " Heartbeat connect response code " + connection.getResponseCode() + ": " + pdp.getId());
-                                                               }       
-                                                       }
-                                               } catch (UnknownHostException e) {
-                                                       newStatus = PDPStatus.Status.NO_SUCH_HOST.toString();
-                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' NO_SUCH_HOST");
-                                               } catch (SocketTimeoutException e) {
-                                                       newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
-                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' connection timeout");
-                                               } catch (ConnectException e) {
-                                                       newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
-                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' cannot connect");
-                                               } catch (Exception e) {
-                                                       newStatus = PDPStatus.Status.UNKNOWN.toString();
-                                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat '" + pdp.getId() + "' connect exception");
-                                               } finally {
-                                                       // cleanup the connection
-                                                       if(connection != null)
-                                                               connection.disconnect();
-                                               }
-                                               if ( ! pdp.getStatus().getStatus().toString().equals(newStatus)) {
-                                                       if (LOGGER.isDebugEnabled()) {
-                                                               LOGGER.debug("previous status='" + pdp.getStatus().getStatus()+"'  new Status='" + newStatus + "'");
-                                                       }
-                                                       try {
-                                                               setPDPSummaryStatus(pdp, newStatus);
-                                                       } catch (PAPException e) {
-                                                               PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Unable to set state for PDP '" + pdp.getId());
-                                                       }
-                                                       changeSeen = true;
-                                               }
-                                       }
-                                       // Check for shutdown
-                                       if (this.isRunning() == false) {
-                                               LOGGER.info("isRunning is false, getting out of loop.");
-                                               break;
-                                       }
-                                       // if any of the PDPs changed state, tell the ACs to update
-                                       if (changeSeen) {
-                                               notifyAC();
-                                       }
-                               }
-                       } catch (InterruptedException e) {
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " Heartbeat interrupted.  Shutting down");
-                               this.terminate();
-                               Thread.currentThread().interrupt();
-                       }
-               }
-       }
-
-       /*
-        * HELPER to change Group status when PDP status is changed
-        * (Must NOT be called from a method that is synchronized on the papEngine or it may deadlock)
-        */
-       private void setPDPSummaryStatus(OnapPDP pdp, PDPStatus.Status newStatus) throws PAPException {
-               setPDPSummaryStatus(pdp, newStatus.toString());
-       }
-
-       private void setPDPSummaryStatus(OnapPDP pdp, String newStatus) throws PAPException {
-               synchronized(papEngine) {
-                       StdPDPStatus status = new StdPDPStatus();
-                       status.setStatus(PDPStatus.Status.valueOf(newStatus));
-                       ((StdPDP)pdp).setStatus(status);
-                       // now adjust the group
-                       StdPDPGroup group = (StdPDPGroup)papEngine.getPDPGroup((OnapPDP) pdp);
-                       // if the PDP was just deleted it may transiently exist but not be in a group
-                       if (group != null) {
-                               group.resetStatus();
-                       }
-               }
-       }
-
-       /*
-        * Callback methods telling this servlet to notify PDPs of changes made by the PAP StdEngine
-        * in the PDP group directories
-        */
-       @Override
-       public void changed() {
-               // all PDPs in all groups need to be updated/sync'd
-               Set<OnapPDPGroup> groups;
-               try {
-                       groups = papEngine.getOnapPDPGroups();
-               } catch (PAPException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " getPDPGroups failed");
-                       throw new IllegalAccessError(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get Groups: " + e);
-               }
-               for (OnapPDPGroup group : groups) {
-                       groupChanged(group);
-               }
-       }
-       
-       public void changed(ONAPLoggingContext loggingContext) {
-               // all PDPs in all groups need to be updated/sync'd
-               Set<OnapPDPGroup> groups;
-               try {
-                       groups = papEngine.getOnapPDPGroups();
-               } catch (PAPException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " getPDPGroups failed");
-                       throw new IllegalAccessError(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get Groups: " + e);
-               }
-               for (OnapPDPGroup group : groups) {
-                       groupChanged(group, loggingContext);
-               }
-       }
-       
-       @Override
-       public void groupChanged(OnapPDPGroup group) {
-               // all PDPs within one group need to be updated/sync'd
-               for (OnapPDP pdp : group.getOnapPdps()) {
-                       pdpChanged(pdp);
-               }
-       }
-
-       public void groupChanged(OnapPDPGroup group, ONAPLoggingContext loggingContext) {
-               // all PDPs within one group need to be updated/sync'd
-               for (OnapPDP pdp : group.getOnapPdps()) {
-                       pdpChanged(pdp, loggingContext);
-               }
-       }
-
-       @Override
-        public void pdpChanged(OnapPDP pdp) {
-               // kick off a thread to do an event notification for each PDP.
-               // This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
-               // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
-               Thread t = new Thread(new UpdatePDPThread(pdp));
-               if(CheckPDP.validateID(pdp.getId())){
-                       t.start();
-               }
-       }
-       
-        public void pdpChanged(OnapPDP pdp, ONAPLoggingContext loggingContext) {
-               // kick off a thread to do an event notification for each PDP.
-               // This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
-               // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
-               Thread t = new Thread(new UpdatePDPThread(pdp, loggingContext));
-               if(CheckPDP.validateID(pdp.getId())){
-                       t.start();
-               }
-       }
-
-       private class UpdatePDPThread implements Runnable {
-               private OnapPDP pdp;
-               private String requestId;
-               private ONAPLoggingContext loggingContext;
-
-               public UpdatePDPThread(OnapPDP pdp) {
-                       this.pdp = pdp;
-               }
-
-               public UpdatePDPThread(OnapPDP pdp, ONAPLoggingContext loggingContext) {
-                       this.pdp = pdp;
-                       if ((loggingContext != null) && (loggingContext.getRequestID() != null || loggingContext.getRequestID() == "")) {
-                                       this.requestId = loggingContext.getRequestID();
-                       }
-                       this.loggingContext = loggingContext;
-               }
-
-               public void run() {
-                       // send the current configuration to one PDP
-                       HttpURLConnection connection = null;
-                       // get a new logging context for the thread
-                       try {
-                               if (this.loggingContext == null) {
-                                    loggingContext = new ONAPLoggingContext(baseLoggingContext);
-                               } 
-                       } catch (Exception e) {
-                           PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
-                           // Since this is a server-side error, it probably does not reflect a problem on the client,
-                           // so do not change the PDP status.
-                           return;
-               }
-                       try {
-                               loggingContext.setServiceName("PAP:PDP.putConfig");
-                               // If a requestId was provided, use it, otherwise generate one; post to loggingContext to be used later when calling PDP
-                               if ((requestId == null) || (requestId == "")) {
-                                       UUID requestID = UUID.randomUUID();
-                                       loggingContext.setRequestID(requestID.toString());
-                                       PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (UpdatePDPThread) so we generated one:  " + loggingContext.getRequestID());
-                               } else {
-                                       loggingContext.setRequestID(requestId);
-                                       PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (UpdatePDPThread):  " + loggingContext.getRequestID());
-                               }
-                               loggingContext.transactionStarted();
-                               // the Id of the PDP is its URL
-                               if (LOGGER.isDebugEnabled()) {
-                                       LOGGER.debug("creating url for id '" + pdp.getId() + "'");
-                               }
-                               //TODO - currently always send both policies and pips.  Do we care enough to add code to allow sending just one or the other?
-                               //TODO          (need to change "cache=", implying getting some input saying which to change)
-                               URL url = new URL(pdp.getId() + "?cache=all");
-                               // Open up the connection
-                               connection = (HttpURLConnection)url.openConnection();
-                               // Setup our method and headers
-                               connection.setRequestMethod("PUT");
-                               // Authentication
-                               String encoding = CheckPDP.getEncoding(pdp.getId());
-                               if(encoding !=null){
-                                       connection.setRequestProperty("Authorization", "Basic " + encoding);
-                               }
-                               connection.setRequestProperty("Content-Type", "text/x-java-properties");
-                               connection.setRequestProperty("X-ECOMP-RequestID", loggingContext.getRequestID());
-                               connection.setInstanceFollowRedirects(true);
-                               connection.setDoOutput(true);
-                               try (OutputStream os = connection.getOutputStream()) {
-                                       OnapPDPGroup group = papEngine.getPDPGroup((OnapPDP) pdp);
-                                       // if the PDP was just deleted, there is no group, but we want to send an update anyway
-                                       if (group == null) {
-                                               // create blank properties files
-                                               Properties policyProperties = new Properties();
-                                               policyProperties.put(XACMLProperties.PROP_ROOTPOLICIES, "");
-                                               policyProperties.put(XACMLProperties.PROP_REFERENCEDPOLICIES, "");
-                                               policyProperties.store(os, "");
-                                               Properties pipProps = new Properties();
-                                               pipProps.setProperty(XACMLProperties.PROP_PIP_ENGINES, "");
-                                               pipProps.store(os, "");
-                                       } else {
-                                               // send properties from the current group
-                                               group.getPolicyProperties().store(os, "");
-                                               Properties policyLocations = new Properties();
-                                               for (PDPPolicy policy : group.getPolicies()) {
-                                                       policyLocations.put(policy.getId() + ".url", XACMLPapServlet.papURL + "?id=" + policy.getId());
-                                               }
-                                               policyLocations.store(os, "");
-                                               group.getPipConfigProperties().store(os, "");
-                                       }
-                               } catch (Exception e) {
-                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
-                                       // Since this is a server-side error, it probably does not reflect a problem on the client,
-                                       // so do not change the PDP status.
-                                       return;
-                               }
-                               // Do the connect
-                               loggingContext.metricStarted();
-                               connection.connect();
-                               loggingContext.metricEnded();
-                               PolicyLogger.metrics("XACMLPapServlet UpdatePDPThread connection connect");
-                               if (connection.getResponseCode() == 204) {
-                                       LOGGER.info("Success. We are configured correctly.");
-                                       loggingContext.transactionEnded();
-                                       auditLogger.info("Success. PDP is configured correctly.");
-                                       PolicyLogger.audit("Transaction Success. PDP is configured correctly.");
-                                       setPDPSummaryStatus(pdp, PDPStatus.Status.UP_TO_DATE);
-                               } else if (connection.getResponseCode() == 200) {
-                                       LOGGER.info("Success. PDP needs to update its configuration.");
-                                       loggingContext.transactionEnded();
-                                       auditLogger.info("Success. PDP needs to update its configuration.");
-                                       PolicyLogger.audit("Transaction Success. PDP is configured correctly.");
-                                       setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
-                               } else {
-                                       LOGGER.warn("Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
-                                       loggingContext.transactionEnded();
-                                       auditLogger.warn("Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
-                                       PolicyLogger.audit("Transaction Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
-                                       setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
-                               }
-                       } catch (Exception e) {
-                               LOGGER.debug(e);
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config with PDP '" + pdp.getId() + "'");
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed: Unable to sync config with PDP '" + pdp.getId() + "': " + e);
-                               try {
-                                       setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
-                               } catch (PAPException e1) {
-                                       LOGGER.debug(e1);
-                                       PolicyLogger.audit("Transaction Failed: Unable to set status of PDP " + pdp.getId() + " to UNKNOWN: " + e);
-                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to set status of PDP '" + pdp.getId() + "' to UNKNOWN");
-                               }
-                       } finally {
-                               // cleanup the connection
-                               if(connection != null){
-                                       connection.disconnect();        
-                               }
-                               // tell the AC to update it's status info
-                               notifyAC();
-                       }
-               }
-       }
-
-       /*
-        * RESTful Interface from PAP to ACs notifying them of changes
-        */
-       private void notifyAC() {
-               // kick off a thread to do one event notification for all registered ACs
-               // This needs to be on a separate thread so that ACs can make calls back to PAP to get the updated Group data
-               // as part of processing this message on their end.
-               Thread t = new Thread(new NotifyACThread());
-               t.start();
-       }
-
-       private class NotifyACThread implements Runnable {
-               public void run() {
-                       List<String> disconnectedACs = new ArrayList<>();
-                       // There should be no Concurrent exception here because the list is a CopyOnWriteArrayList.
-                       // The "for each" loop uses the collection's iterator under the covers, so it should be correct.
-                       for (String acURL : adminConsoleURLStringList) {
-                               HttpURLConnection connection = null;
-                               try {
-                                       acURL += "?PAPNotification=true";
-                                       //TODO - Currently we just tell AC that "Something changed" without being specific.  Do we want to tell it which group/pdp changed?
-                                       //TODO - If so, put correct parameters into the Query string here
-                                       acURL += "&objectType=all" + "&action=update";
-                                       if (LOGGER.isDebugEnabled()) {
-                                               LOGGER.debug("creating url for id '" + acURL + "'");
-                                       }
-                                       //TODO - currently always send both policies and pips.  Do we care enough to add code to allow sending just one or the other?
-                                       //TODO          (need to change "cache=", implying getting some input saying which to change)
-                                       URL url = new URL(acURL );
-                                       // Open up the connection
-                                       connection = (HttpURLConnection)url.openConnection();
-                                       // Setup our method and headers
-                                       connection.setRequestMethod("PUT");
-                                       connection.setRequestProperty("Content-Type", "text/x-java-properties");
-                                       // Adding this in. It seems the HttpUrlConnection class does NOT
-                                       // properly forward our headers for POST re-direction. It does so
-                                       // for a GET re-direction.
-                                       // So we need to handle this ourselves.
-                                       //TODO - is this needed for a PUT?  seems better to leave in for now?
-                                       connection.setInstanceFollowRedirects(false);
-                                       // Do not include any data in the PUT because this is just a
-                                       // notification to the AC.
-                                       // The AC will use GETs back to the PAP to get what it needs
-                                       // to fill in the screens.
-                                       // Do the connect
-                                       connection.connect();
-                                       if (connection.getResponseCode() == 204) {
-                                               LOGGER.info("Success. We updated correctly.");
-                                       } else {
-                                               LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
-                                       }
-
-                               } catch (Exception e) {
-                                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config AC '" + acURL + "'");
-                                       disconnectedACs.add(acURL);
-                               } finally {
-                                       // cleanup the connection
-                                       if(connection != null)
-                                               connection.disconnect();
-                               }
-                       }
-                       // remove any ACs that are no longer connected
-                       if (!disconnectedACs.isEmpty()) {
-                               adminConsoleURLStringList.removeAll(disconnectedACs);
-                       }
-               }
-       }
-
-       private void testService(ONAPLoggingContext loggingContext, HttpServletResponse response) throws IOException{
-               LOGGER.info("Test request received");
-               try {
-                       im.evaluateSanity();
-                       //If we make it this far, all is well
-                       String message = "GET:/pap/test called and PAP " + papResourceName + " is OK";
-                       LOGGER.info(message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       return;
-               }catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException e){
-                       String submsg;
-                       if (e instanceof ForwardProgressException) {
-                               submsg = " is not making forward progress.";
-                       } else if (e instanceof AdministrativeStateException) {
-                               submsg = " Administrative State is LOCKED.";
-                       } else {
-                               submsg = " Standby Status is NOT PROVIDING SERVICE.";
-                       }
-
-                       String message = "GET:/pap/test called and PAP " + papResourceName + submsg
-                                       + " Exception Message: " + e.getMessage();
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }catch (Exception e) {
-                       //A subsystem is not making progress, is locked, standby or is not responding
-                       String eMsg = e.getMessage();
-                       if(eMsg == null){
-                               eMsg = "No Exception Message";
-                       }
-                       String message = "GET:/pap/test called and PAP " + papResourceName + " has had a subsystem failure."
-                                       + " Exception Message: " + eMsg;
-                       LOGGER.info(message, e);
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       //Get the specific list of subsystems that failed
-                       String ssFailureList = null;
-                       for(String failedSS : papDependencyGroupsFlatArray){
-                               if(eMsg.contains(failedSS)){
-                                       if(ssFailureList == null){
-                                               ssFailureList = failedSS;
-                                       }else{
-                                               ssFailureList = ssFailureList.concat(","+failedSS);
-                                       }
-                               }
-                       }
-                       if(ssFailureList == null){
-                               ssFailureList = "UnknownSubSystem";
-                       }
-                       response.addHeader("X-ONAP-SubsystemFailure", ssFailureList);
-                       setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
-                       return;
-               }
-       }
-
-       /*
-        * Authorizing the PEP Requests. 
-        */
-       private boolean authorizeRequest(HttpServletRequest request) { 
-               String clientCredentials = request.getHeader(ENVIRONMENT_HEADER);
-               // Check if the Client is Authorized. 
-               if(clientCredentials!=null && clientCredentials.equalsIgnoreCase(environment)){
-                       return true;
-               }else{
-                       return false;
-               }
-       }
-
-       private static void loadWebapps() throws PAPException{
-               if(actionHome == null || configHome == null){
-                       Path webappsPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS));
-                       //Sanity Check
-                       if (webappsPath == null) {
-                               PolicyLogger.error("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
-                               throw new PAPException("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
-                       }
-                       Path webappsPathConfig = Paths.get(webappsPath.toString()+File.separator+"Config");
-                       Path webappsPathAction = Paths.get(webappsPath.toString()+File.separator+"Action");
-                       if (Files.notExists(webappsPathConfig)) {
-                               try {
-                                       Files.createDirectories(webappsPathConfig);
-                               } catch (IOException e) {
-                                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Failed to create config directory: "
-                                                       + webappsPathConfig.toAbsolutePath().toString());
-                               }
-                       }
-                       if (Files.notExists(webappsPathAction)) {
-                               try {
-                                       Files.createDirectories(webappsPathAction);
-                               } catch (IOException e) {
-                                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Failed to create action directory: "
-                                                       + webappsPathAction.toAbsolutePath().toString(), e);
-                               }
-                       }
-                       actionHome = webappsPathAction.toString();
-                       configHome = webappsPathConfig.toString();
-               }
-       }
-
-       public static String getConfigHome(){
-               try {
-                       loadWebapps();
-               } catch (PAPException e) {
-                       LOGGER.debug(e);
-                       return null;
-               }
-               return configHome;
-       }
-       
-       private static void setConfigHome(){
-           configHome = getConfigHome();
-       }
-
-       public static String getActionHome(){
-               try {
-                       loadWebapps();
-               } catch (PAPException e) {
-                       LOGGER.debug(e);
-                       return null;
-               }
-               return actionHome;
-       }
-       
-       private static void setActionHome(){
-           actionHome = getActionHome();
-       }
-
-       public static EntityManagerFactory getEmf() {
-               return emf;
-       }
-       
-       public IntegrityAudit getIa() {
-               return ia;
-       }
-       
-       public static String getPDPFile(){
-               return XACMLPapServlet.pdpFile;
-       }
-       
-       public static String getPersistenceUnit(){
-               return PERSISTENCE_UNIT;
-       }
-       
-       public static PAPPolicyEngine getPAPEngine(){
-               return papEngine;
-       }
-       
-       public static PolicyDBDaoTransaction getDbDaoTransaction(){
-               return policyDBDao.getNewTransaction();
-       }
-       public static String getPapDbDriver() {
-               return papDbDriver;
-       }
-
-       public static void setPapDbDriver(String papDbDriver) {
-               XACMLPapServlet.papDbDriver = papDbDriver;
-       }
-
-       public static String getPapDbUrl() {
-               return papDbUrl;
-       }
-
-       public static void setPapDbUrl(String papDbUrl) {
-               XACMLPapServlet.papDbUrl = papDbUrl;
-       }
-
-       public static String getPapDbUser() {
-               return papDbUser;
-       }
-
-       public static void setPapDbUser(String papDbUser) {
-               XACMLPapServlet.papDbUser = papDbUser;
-       }
-
-       public static String getPapDbPassword() {
-               return papDbPassword;
-       }
-
-       public static void setPapDbPassword(String papDbPassword) {
-               XACMLPapServlet.papDbPassword = papDbPassword;
-       }
-
-       public static String getMsOnapName() {
-               return msOnapName;
-       }
-
-       public static void setMsOnapName(String msOnapName) {
-               XACMLPapServlet.msOnapName = msOnapName;
-       }
-
-       public static String getMsPolicyName() {
-               return msPolicyName;
-       }
-
-       public static void setMsPolicyName(String msPolicyName) {
-               XACMLPapServlet.msPolicyName = msPolicyName;
-       }
+                // adjust the status of the group, which may have changed when we removed this PDP
+                ((StdPDPGroup)group).resetStatus();
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                loggingContext.metricStarted();
+                notifyAC();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
+                // update the PDP and tell it that it has NO Policies (which prevents it from serving PEP Requests)
+                pdpChanged(pdp, loggingContext);
+                loggingContext.metricStarted();
+                removePdpOrGroupTransaction.commitTransaction();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            } else if (request.getParameter("pipId") != null) {
+                //        group=<groupId> pipId=<pipEngineId> <= delete PIP config for given engine
+                loggingContext.setServiceName("AC:PAP.deletePIPConfig");
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed - See Error.log");
+                setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                return;
+            } else {
+                // ARGS:      group=<groupId> movePDPsToGroupId=<movePDPsToGroupId>            <= delete a group and move all its PDPs to the given group
+                String moveToGroupId = request.getParameter("movePDPsToGroupId");
+                OnapPDPGroup moveToGroup = null;
+                if (moveToGroupId != null) {
+                    try{
+                        moveToGroup = papEngine.getGroup(moveToGroupId);
+                    }catch(PAPException e){
+                        LOGGER.error(e);
+                    }
+                }
+                // get list of PDPs in the group being deleted so we can notify them that they got changed
+                Set<OnapPDP> movedPDPs = new HashSet<>();
+                movedPDPs.addAll(group.getOnapPdps());
+                // do the move/remove
+                try{
+                    removePdpOrGroupTransaction.deleteGroup(group, moveToGroup,"XACMLPapServlet.doACDelete");
+                } catch(Exception e){
+                    PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " Failed to delete PDP Group. Exception");
+                    throw new PAPException(e.getMessage());
+                }
+                try{
+                    papEngine.removeGroup(group, moveToGroup);
+                }catch(PAPException e){
+                    LOGGER.error(e);
+                }
+                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                loggingContext.metricStarted();
+                notifyAC();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut notifyAC");
+                // notify any PDPs in the removed set that their config may have changed
+                for (OnapPDP pdp : movedPDPs) {
+                    pdpChanged(pdp, loggingContext);
+                }
+                loggingContext.metricStarted();
+                removePdpOrGroupTransaction.commitTransaction();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
+                loggingContext.transactionEnded();
+                auditLogger.info("Success");
+                PolicyLogger.audit("Transaction Ended Successfully");
+                return;
+            }
+        } catch (PAPException e) {
+            removePdpOrGroupTransaction.rollbackTransaction();
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC DELETE exception");
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+            return;
+        }
+    }
+
+    /**
+     * Heartbeat thread - periodically check on PDPs' status
+     *
+     * Heartbeat with all known PDPs.
+     *
+     * Implementation note:
+     *
+     * The PDPs are contacted Sequentially, not in Parallel.
+     *
+     * If we did this in parallel using multiple threads we would simultaneously use
+     *                 - 1 thread and
+     *                 - 1 connection
+     * for EACH PDP.
+     * This could become a resource problem since we already use multiple threads and connections for updating the PDPs
+     * when user changes occur.
+     * Using separate threads can also make it tricky dealing with timeouts on PDPs that are non-responsive.
+     *
+     * The Sequential operation does a heartbeat request to each PDP one at a time.
+     * This has the flaw that any PDPs that do not respond will hold up the entire heartbeat sequence until they timeout.
+     * If there are a lot of non-responsive PDPs and the timeout is large-ish (the default is 20 seconds)
+     * it could take a long time to cycle through all of the PDPs.
+     * That means that this may not notice a PDP being down in a predictable time.
+     */
+    private class Heartbeat implements Runnable {
+        private PAPPolicyEngine papEngine;
+        private Set<OnapPDP> pdps = new HashSet<>();
+        private int heartbeatInterval;
+        private int heartbeatTimeout;
+
+        public volatile boolean isRunning = false;
+
+        public synchronized boolean isRunning() {
+            return this.isRunning;
+        }
+
+        public synchronized void terminate() {
+            this.isRunning = false;
+        }
+
+        public Heartbeat(PAPPolicyEngine papEngine2) {
+            papEngine = papEngine2;
+            this.heartbeatInterval = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_INTERVAL, "10000"));
+            this.heartbeatTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_TIMEOUT, "10000"));
+        }
+
+        @Override
+        public void run() {
+            // Set ourselves as running
+            synchronized(this) {
+                this.isRunning = true;
+            }
+            HashMap<String, URL> idToURLMap = new HashMap<>();
+            try {
+                while (this.isRunning()) {
+                    // Wait the given time
+                    Thread.sleep(heartbeatInterval);
+                    // get the list of PDPs (may have changed since last time)
+                    pdps.clear();
+                    synchronized(papEngine) {
+                        try {
+                            for (OnapPDPGroup g : papEngine.getOnapPDPGroups()) {
+                                for (OnapPDP p : g.getOnapPdps()) {
+                                    pdps.add(p);
+                                }
+                            }
+                        } catch (PAPException e) {
+                            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat unable to read PDPs from PAPEngine");
+                        }
+                    }
+                    // Check for shutdown
+                    if (this.isRunning() == false) {
+                        LOGGER.info("isRunning is false, getting out of loop.");
+                        break;
+                    }
+                    // try to get the summary status from each PDP
+                    boolean changeSeen = false;
+                    for (OnapPDP pdp : pdps) {
+                        // Check for shutdown
+                        if (this.isRunning() == false) {
+                            LOGGER.info("isRunning is false, getting out of loop.");
+                            break;
+                        }
+                        // the id of the PDP is its url (though we add a query parameter)
+                        URL pdpURL = idToURLMap.get(pdp.getId());
+                        if (pdpURL == null) {
+                            // haven't seen this PDP before
+                            String fullURLString = null;
+                            try {
+                                // Check PDP ID
+                                if(CheckPDP.validateID(pdp.getId())){
+                                    fullURLString = pdp.getId() + "?type=hb";
+                                    pdpURL = new URL(fullURLString);
+                                    idToURLMap.put(pdp.getId(), pdpURL);
+                                }
+                            } catch (MalformedURLException e) {
+                                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " PDP id '" + fullURLString + "' is not a valid URL");
+                                continue;
+                            }
+                        }
+                        // Do a GET with type HeartBeat
+                        String newStatus = "";
+                        HttpURLConnection connection = null;
+                        try {
+                            // Open up the connection
+                            if(pdpURL != null){
+                                connection = (HttpURLConnection)pdpURL.openConnection();
+                                // Setup our method and headers
+                                connection.setRequestMethod("GET");
+                                connection.setConnectTimeout(heartbeatTimeout);
+                                // Authentication
+                                String encoding = CheckPDP.getEncoding(pdp.getId());
+                                if(encoding !=null){
+                                    connection.setRequestProperty("Authorization", "Basic " + encoding);
+                                }
+                                // Do the connect
+                                connection.connect();
+                                if (connection.getResponseCode() == 204) {
+                                    newStatus = connection.getHeaderField(XACMLRestProperties.PROP_PDP_HTTP_HEADER_HB);
+                                    if (LOGGER.isDebugEnabled()) {
+                                        LOGGER.debug("Heartbeat '" + pdp.getId() + "' status='" + newStatus + "'");
+                                    }
+                                } else {
+                                    // anything else is an unexpected result
+                                    newStatus = PDPStatus.Status.UNKNOWN.toString();
+                                    PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " Heartbeat connect response code " + connection.getResponseCode() + ": " + pdp.getId());
+                                }
+                            }
+                        } catch (UnknownHostException e) {
+                            newStatus = PDPStatus.Status.NO_SUCH_HOST.toString();
+                            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' NO_SUCH_HOST");
+                        } catch (SocketTimeoutException e) {
+                            newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
+                            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' connection timeout");
+                        } catch (ConnectException e) {
+                            newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
+                            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' cannot connect");
+                        } catch (Exception e) {
+                            newStatus = PDPStatus.Status.UNKNOWN.toString();
+                            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat '" + pdp.getId() + "' connect exception");
+                        } finally {
+                            // cleanup the connection
+                            if(connection != null)
+                                connection.disconnect();
+                        }
+                        if ( ! pdp.getStatus().getStatus().toString().equals(newStatus)) {
+                            if (LOGGER.isDebugEnabled()) {
+                                LOGGER.debug("previous status='" + pdp.getStatus().getStatus()+"'  new Status='" + newStatus + "'");
+                            }
+                            try {
+                                setPDPSummaryStatus(pdp, newStatus);
+                            } catch (PAPException e) {
+                                PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Unable to set state for PDP '" + pdp.getId());
+                            }
+                            changeSeen = true;
+                        }
+                    }
+                    // Check for shutdown
+                    if (this.isRunning() == false) {
+                        LOGGER.info("isRunning is false, getting out of loop.");
+                        break;
+                    }
+                    // if any of the PDPs changed state, tell the ACs to update
+                    if (changeSeen) {
+                        notifyAC();
+                    }
+                }
+            } catch (InterruptedException e) {
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " Heartbeat interrupted.  Shutting down");
+                this.terminate();
+                Thread.currentThread().interrupt();
+            }
+        }
+    }
+
+    /*
+     * HELPER to change Group status when PDP status is changed
+     * (Must NOT be called from a method that is synchronized on the papEngine or it may deadlock)
+     */
+    private void setPDPSummaryStatus(OnapPDP pdp, PDPStatus.Status newStatus) throws PAPException {
+        setPDPSummaryStatus(pdp, newStatus.toString());
+    }
+
+    private void setPDPSummaryStatus(OnapPDP pdp, String newStatus) throws PAPException {
+        synchronized(papEngine) {
+            StdPDPStatus status = new StdPDPStatus();
+            status.setStatus(PDPStatus.Status.valueOf(newStatus));
+            ((StdPDP)pdp).setStatus(status);
+            // now adjust the group
+            StdPDPGroup group = (StdPDPGroup)papEngine.getPDPGroup((OnapPDP) pdp);
+            // if the PDP was just deleted it may transiently exist but not be in a group
+            if (group != null) {
+                group.resetStatus();
+            }
+        }
+    }
+
+    /*
+     * Callback methods telling this servlet to notify PDPs of changes made by the PAP StdEngine
+     * in the PDP group directories
+     */
+    @Override
+    public void changed() {
+        // all PDPs in all groups need to be updated/sync'd
+        Set<OnapPDPGroup> groups;
+        try {
+            groups = papEngine.getOnapPDPGroups();
+        } catch (PAPException e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " getPDPGroups failed");
+            throw new IllegalAccessError(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get Groups: " + e);
+        }
+        for (OnapPDPGroup group : groups) {
+            groupChanged(group);
+        }
+    }
+
+    public void changed(ONAPLoggingContext loggingContext) {
+        // all PDPs in all groups need to be updated/sync'd
+        Set<OnapPDPGroup> groups;
+        try {
+            groups = papEngine.getOnapPDPGroups();
+        } catch (PAPException e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " getPDPGroups failed");
+            throw new IllegalAccessError(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Unable to get Groups: " + e);
+        }
+        for (OnapPDPGroup group : groups) {
+            groupChanged(group, loggingContext);
+        }
+    }
+
+    @Override
+    public void groupChanged(OnapPDPGroup group) {
+        // all PDPs within one group need to be updated/sync'd
+        for (OnapPDP pdp : group.getOnapPdps()) {
+            pdpChanged(pdp);
+        }
+    }
+
+    public void groupChanged(OnapPDPGroup group, ONAPLoggingContext loggingContext) {
+        // all PDPs within one group need to be updated/sync'd
+        for (OnapPDP pdp : group.getOnapPdps()) {
+            pdpChanged(pdp, loggingContext);
+        }
+    }
+
+    @Override
+     public void pdpChanged(OnapPDP pdp) {
+        // kick off a thread to do an event notification for each PDP.
+        // This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
+        // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
+        Thread t = new Thread(new UpdatePDPThread(pdp));
+        if(CheckPDP.validateID(pdp.getId())){
+            t.start();
+        }
+    }
+
+     public void pdpChanged(OnapPDP pdp, ONAPLoggingContext loggingContext) {
+        // kick off a thread to do an event notification for each PDP.
+        // This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
+        // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
+        Thread t = new Thread(new UpdatePDPThread(pdp, loggingContext));
+        if(CheckPDP.validateID(pdp.getId())){
+            t.start();
+        }
+    }
+
+    private class UpdatePDPThread implements Runnable {
+        private OnapPDP pdp;
+        private String requestId;
+        private ONAPLoggingContext loggingContext;
+
+        public UpdatePDPThread(OnapPDP pdp) {
+            this.pdp = pdp;
+        }
+
+        public UpdatePDPThread(OnapPDP pdp, ONAPLoggingContext loggingContext) {
+            this.pdp = pdp;
+            if ((loggingContext != null) && (loggingContext.getRequestID() != null || loggingContext.getRequestID() == "")) {
+                    this.requestId = loggingContext.getRequestID();
+            }
+            this.loggingContext = loggingContext;
+        }
+
+        public void run() {
+            // send the current configuration to one PDP
+            HttpURLConnection connection = null;
+            // get a new logging context for the thread
+            try {
+                if (this.loggingContext == null) {
+                     loggingContext = new ONAPLoggingContext(baseLoggingContext);
+                }
+            } catch (Exception e) {
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
+                // Since this is a server-side error, it probably does not reflect a problem on the client,
+                // so do not change the PDP status.
+                return;
+            }
+            try {
+                loggingContext.setServiceName("PAP:PDP.putConfig");
+                // If a requestId was provided, use it, otherwise generate one; post to loggingContext to be used later when calling PDP
+                if ((requestId == null) || (requestId == "")) {
+                    UUID requestID = UUID.randomUUID();
+                    loggingContext.setRequestID(requestID.toString());
+                    PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (UpdatePDPThread) so we generated one:  " + loggingContext.getRequestID());
+                } else {
+                    loggingContext.setRequestID(requestId);
+                    PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (UpdatePDPThread):  " + loggingContext.getRequestID());
+                }
+                loggingContext.transactionStarted();
+                // the Id of the PDP is its URL
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("creating url for id '" + pdp.getId() + "'");
+                }
+                //TODO - currently always send both policies and pips.  Do we care enough to add code to allow sending just one or the other?
+                //TODO         (need to change "cache=", implying getting some input saying which to change)
+                URL url = new URL(pdp.getId() + "?cache=all");
+                // Open up the connection
+                connection = (HttpURLConnection)url.openConnection();
+                // Setup our method and headers
+                connection.setRequestMethod("PUT");
+                // Authentication
+                String encoding = CheckPDP.getEncoding(pdp.getId());
+                if(encoding !=null){
+                    connection.setRequestProperty("Authorization", "Basic " + encoding);
+                }
+                connection.setRequestProperty("Content-Type", "text/x-java-properties");
+                connection.setRequestProperty("X-ECOMP-RequestID", loggingContext.getRequestID());
+                connection.setInstanceFollowRedirects(true);
+                connection.setDoOutput(true);
+                try (OutputStream os = connection.getOutputStream()) {
+                    OnapPDPGroup group = papEngine.getPDPGroup((OnapPDP) pdp);
+                    // if the PDP was just deleted, there is no group, but we want to send an update anyway
+                    if (group == null) {
+                        // create blank properties files
+                        Properties policyProperties = new Properties();
+                        policyProperties.put(XACMLProperties.PROP_ROOTPOLICIES, "");
+                        policyProperties.put(XACMLProperties.PROP_REFERENCEDPOLICIES, "");
+                        policyProperties.store(os, "");
+                        Properties pipProps = new Properties();
+                        pipProps.setProperty(XACMLProperties.PROP_PIP_ENGINES, "");
+                        pipProps.store(os, "");
+                    } else {
+                        // send properties from the current group
+                        group.getPolicyProperties().store(os, "");
+                        Properties policyLocations = new Properties();
+                        for (PDPPolicy policy : group.getPolicies()) {
+                            policyLocations.put(policy.getId() + ".url", XACMLPapServlet.papURL + "?id=" + policy.getId());
+                        }
+                        policyLocations.store(os, "");
+                        group.getPipConfigProperties().store(os, "");
+                    }
+                } catch (Exception e) {
+                    PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
+                    // Since this is a server-side error, it probably does not reflect a problem on the client,
+                    // so do not change the PDP status.
+                    return;
+                }
+                // Do the connect
+                loggingContext.metricStarted();
+                connection.connect();
+                loggingContext.metricEnded();
+                PolicyLogger.metrics("XACMLPapServlet UpdatePDPThread connection connect");
+                if (connection.getResponseCode() == 204) {
+                    LOGGER.info("Success. We are configured correctly.");
+                    loggingContext.transactionEnded();
+                    auditLogger.info("Success. PDP is configured correctly.");
+                    PolicyLogger.audit("Transaction Success. PDP is configured correctly.");
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.UP_TO_DATE);
+                } else if (connection.getResponseCode() == 200) {
+                    LOGGER.info("Success. PDP needs to update its configuration.");
+                    loggingContext.transactionEnded();
+                    auditLogger.info("Success. PDP needs to update its configuration.");
+                    PolicyLogger.audit("Transaction Success. PDP is configured correctly.");
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
+                } else {
+                    LOGGER.warn("Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
+                    loggingContext.transactionEnded();
+                    auditLogger.warn("Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
+                    PolicyLogger.audit("Transaction Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
+                }
+            } catch (Exception e) {
+                LOGGER.debug(e);
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config with PDP '" + pdp.getId() + "'");
+                loggingContext.transactionEnded();
+                PolicyLogger.audit("Transaction Failed: Unable to sync config with PDP '" + pdp.getId() + "': " + e);
+                try {
+                    setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
+                } catch (PAPException e1) {
+                    LOGGER.debug(e1);
+                    PolicyLogger.audit("Transaction Failed: Unable to set status of PDP " + pdp.getId() + " to UNKNOWN: " + e);
+                    PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to set status of PDP '" + pdp.getId() + "' to UNKNOWN");
+                }
+            } finally {
+                // cleanup the connection
+                if(connection != null){
+                    connection.disconnect();
+                }
+                // tell the AC to update it's status info
+                notifyAC();
+            }
+        }
+    }
+
+    /*
+     * RESTful Interface from PAP to ACs notifying them of changes
+     */
+    private void notifyAC() {
+        // kick off a thread to do one event notification for all registered ACs
+        // This needs to be on a separate thread so that ACs can make calls back to PAP to get the updated Group data
+        // as part of processing this message on their end.
+        Thread t = new Thread(new NotifyACThread());
+        t.start();
+    }
+
+    private class NotifyACThread implements Runnable {
+        public void run() {
+            List<String> disconnectedACs = new ArrayList<>();
+            // There should be no Concurrent exception here because the list is a CopyOnWriteArrayList.
+            // The "for each" loop uses the collection's iterator under the covers, so it should be correct.
+            for (String acURL : adminConsoleURLStringList) {
+                HttpURLConnection connection = null;
+                try {
+                    acURL += "?PAPNotification=true";
+                    //TODO - Currently we just tell AC that "Something changed" without being specific.  Do we want to tell it which group/pdp changed?
+                    //TODO - If so, put correct parameters into the Query string here
+                    acURL += "&objectType=all" + "&action=update";
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("creating url for id '" + acURL + "'");
+                    }
+                    //TODO - currently always send both policies and pips.  Do we care enough to add code to allow sending just one or the other?
+                    //TODO             (need to change "cache=", implying getting some input saying which to change)
+                    URL url = new URL(acURL );
+                    // Open up the connection
+                    connection = (HttpURLConnection)url.openConnection();
+                    // Setup our method and headers
+                    connection.setRequestMethod("PUT");
+                    connection.setRequestProperty("Content-Type", "text/x-java-properties");
+                    // Adding this in. It seems the HttpUrlConnection class does NOT
+                    // properly forward our headers for POST re-direction. It does so
+                    // for a GET re-direction.
+                    // So we need to handle this ourselves.
+                    //TODO - is this needed for a PUT?  seems better to leave in for now?
+                    connection.setInstanceFollowRedirects(false);
+                    // Do not include any data in the PUT because this is just a
+                    // notification to the AC.
+                    // The AC will use GETs back to the PAP to get what it needs
+                    // to fill in the screens.
+                    // Do the connect
+                    connection.connect();
+                    if (connection.getResponseCode() == 204) {
+                        LOGGER.info("Success. We updated correctly.");
+                    } else {
+                        LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed: " + connection.getResponseCode() + "  message: " + connection.getResponseMessage());
+                    }
+
+                } catch (Exception e) {
+                    PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config AC '" + acURL + "'");
+                    disconnectedACs.add(acURL);
+                } finally {
+                    // cleanup the connection
+                    if(connection != null)
+                        connection.disconnect();
+                }
+            }
+            // remove any ACs that are no longer connected
+            if (!disconnectedACs.isEmpty()) {
+                adminConsoleURLStringList.removeAll(disconnectedACs);
+            }
+        }
+    }
+
+    private void testService(ONAPLoggingContext loggingContext, HttpServletResponse response) throws IOException{
+        LOGGER.info("Test request received");
+        try {
+            im.evaluateSanity();
+            //If we make it this far, all is well
+            String message = "GET:/pap/test called and PAP " + papResourceName + " is OK";
+            LOGGER.info(message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            response.setStatus(HttpServletResponse.SC_OK);
+            return;
+        }catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException e){
+            String submsg;
+            if (e instanceof ForwardProgressException) {
+                submsg = " is not making forward progress.";
+            } else if (e instanceof AdministrativeStateException) {
+                submsg = " Administrative State is LOCKED.";
+            } else {
+                submsg = " Standby Status is NOT PROVIDING SERVICE.";
+            }
+
+            String message = "GET:/pap/test called and PAP " + papResourceName + submsg
+                    + " Exception Message: " + e.getMessage();
+            LOGGER.info(message, e);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }catch (Exception e) {
+            //A subsystem is not making progress, is locked, standby or is not responding
+            String eMsg = e.getMessage();
+            if(eMsg == null){
+                eMsg = "No Exception Message";
+            }
+            String message = "GET:/pap/test called and PAP " + papResourceName + " has had a subsystem failure."
+                    + " Exception Message: " + eMsg;
+            LOGGER.info(message, e);
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            //Get the specific list of subsystems that failed
+            String ssFailureList = null;
+            for(String failedSS : papDependencyGroupsFlatArray){
+                if(eMsg.contains(failedSS)){
+                    if(ssFailureList == null){
+                        ssFailureList = failedSS;
+                    }else{
+                        ssFailureList = ssFailureList.concat(","+failedSS);
+                    }
+                }
+            }
+            if(ssFailureList == null){
+                ssFailureList = "UnknownSubSystem";
+            }
+            response.addHeader("X-ONAP-SubsystemFailure", ssFailureList);
+            setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+            return;
+        }
+    }
+
+    /*
+     * Authorizing the PEP Requests.
+     */
+    private boolean authorizeRequest(HttpServletRequest request) {
+        String clientCredentials = request.getHeader(ENVIRONMENT_HEADER);
+        // Check if the Client is Authorized.
+        if(clientCredentials!=null && clientCredentials.equalsIgnoreCase(environment)){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    private static void loadWebapps() throws PAPException{
+        if(actionHome == null || configHome == null){
+            Path webappsPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS));
+            //Sanity Check
+            if (webappsPath == null) {
+                PolicyLogger.error("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
+                throw new PAPException("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
+            }
+            Path webappsPathConfig = Paths.get(webappsPath.toString()+File.separator+"Config");
+            Path webappsPathAction = Paths.get(webappsPath.toString()+File.separator+"Action");
+            if (Files.notExists(webappsPathConfig)) {
+                try {
+                    Files.createDirectories(webappsPathConfig);
+                } catch (IOException e) {
+                    PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Failed to create config directory: "
+                            + webappsPathConfig.toAbsolutePath().toString());
+                }
+            }
+            if (Files.notExists(webappsPathAction)) {
+                try {
+                    Files.createDirectories(webappsPathAction);
+                } catch (IOException e) {
+                    LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Failed to create action directory: "
+                            + webappsPathAction.toAbsolutePath().toString(), e);
+                }
+            }
+            actionHome = webappsPathAction.toString();
+            configHome = webappsPathConfig.toString();
+        }
+    }
+
+    public static String getConfigHome(){
+        try {
+            loadWebapps();
+        } catch (PAPException e) {
+            LOGGER.debug(e);
+            return null;
+        }
+        return configHome;
+    }
+
+    private static void setConfigHome(){
+        configHome = getConfigHome();
+    }
+
+    public static String getActionHome(){
+        try {
+            loadWebapps();
+        } catch (PAPException e) {
+            LOGGER.debug(e);
+            return null;
+        }
+        return actionHome;
+    }
+
+    private static void setActionHome(){
+        actionHome = getActionHome();
+    }
+
+    public static EntityManagerFactory getEmf() {
+        return emf;
+    }
+
+    public IntegrityAudit getIa() {
+        return ia;
+    }
+
+    public static String getPDPFile(){
+        return XACMLPapServlet.pdpFile;
+    }
+
+    public static String getPersistenceUnit(){
+        return PERSISTENCE_UNIT;
+    }
+
+    public static PAPPolicyEngine getPAPEngine(){
+        return papEngine;
+    }
+
+    public static PolicyDBDaoTransaction getDbDaoTransaction(){
+        return policyDBDao.getNewTransaction();
+    }
+    public static String getPapDbDriver() {
+        return papDbDriver;
+    }
+
+    public static void setPapDbDriver(String papDbDriver) {
+        XACMLPapServlet.papDbDriver = papDbDriver;
+    }
+
+    public static String getPapDbUrl() {
+        return papDbUrl;
+    }
+
+    public static void setPapDbUrl(String papDbUrl) {
+        XACMLPapServlet.papDbUrl = papDbUrl;
+    }
+
+    public static String getPapDbUser() {
+        return papDbUser;
+    }
+
+    public static void setPapDbUser(String papDbUser) {
+        XACMLPapServlet.papDbUser = papDbUser;
+    }
+
+    public static String getPapDbPassword() {
+        return papDbPassword;
+    }
+
+    public static void setPapDbPassword(String papDbPassword) {
+        XACMLPapServlet.papDbPassword = papDbPassword;
+    }
+
+    public static String getMsOnapName() {
+        return msOnapName;
+    }
+
+    public static void setMsOnapName(String msOnapName) {
+        XACMLPapServlet.msOnapName = msOnapName;
+    }
+
+    public static String getMsPolicyName() {
+        return msPolicyName;
+    }
+
+    public static void setMsPolicyName(String msPolicyName) {
+        XACMLPapServlet.msPolicyName = msPolicyName;
+    }
 }
\ No newline at end of file
index c8b8c6a..e5b6915 100644 (file)
@@ -51,410 +51,410 @@ import org.springframework.stereotype.Service;
 @Primary
 public class CommonClassDaoImpl implements CommonClassDao{
 
-       private static final Log LOGGER = LogFactory.getLog(CommonClassDaoImpl.class);
-       
-       
-       private static SessionFactory sessionFactory;
-       
-       
-       @Autowired
-       private CommonClassDaoImpl(SessionFactory sessionFactory){
-               CommonClassDaoImpl.sessionFactory = sessionFactory;
-       }
-       
-       public CommonClassDaoImpl(){
-               //Default Constructor
-       }
-       
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public List<Object> getData(Class className) {
-               Session session = sessionFactory.openSession();
-               List<Object> data = null;
-               try{
-                       Criteria cr = session.createCriteria(className);
-                       data = cr.list();
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);  
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
-                       }
-               }
-               return data;
-       }
-
-
-       @SuppressWarnings({ "rawtypes", "unchecked" })
-       @Override
-       public List<Object> getDataById(Class className, String columnName, String key) {
-               Session session = sessionFactory.openSession();
-               List<Object> data = null;
-               try {
-                       Criteria cr = session.createCriteria(className);
-                       if(columnName.contains(":") && key.contains(":")){
-                               String[] columns = columnName.split(":");
-                               String[] keys = key.split(":");
-                               for(int i=0; i < columns.length; i++){
-                                       cr.add(Restrictions.eq(columns[i], keys[i]));
-                               }
-                       }else{
-                               cr.add(Restrictions.eq(columnName, key));       
-                       }
-                       data = cr.list();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);          
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               return data;
-       }
-       
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public List<String> getDataByColumn(Class className, String columnName) {
-               Session session = sessionFactory.openSession();
-               List<String> data = null;
-               try{
-                       Criteria cr = session.createCriteria(className);
-                       cr.setProjection(Projections.property(columnName));
-                       data = cr.list();
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);  
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
-                       }
-               }
-               return data;
-       }
-       
-       @Override
-       public void save(Object entity) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               try {
-                       session.persist(entity);
-                       tx.commit();    
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Saving  data to Table"+e);   
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               
-       }
-
-       @Override
-       public void delete(Object entity) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               try {
-                       session.delete(entity);
-                       tx.commit();    
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Deleting data from Table"+e);        
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               
-       }
-
-
-       @Override
-       public void update(Object entity) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               try {
-                       session.update(entity);
-                       tx.commit();    
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating data to Table"+e);  
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               
-       }
-
-
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       @Override
-       public List<Object> checkDuplicateEntry(String value, String columnName, Class className) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               List<Object> data = null;
-               
-               String[] columnNames = null;
-               if(columnName != null && columnName.contains(":")){
-                       columnNames = columnName.split(":");
-               }
-               String[] values = null;
-               if(value != null && value.contains(":")){
-                       values = value.split(":");
-               }               
-               try {
-                       Criteria cr = session.createCriteria(className);
-                       if(columnNames != null && values != null && columnNames.length == values.length){
-                               for (int i = 0; i < columnNames.length; i++){
-                                       cr.add(Restrictions.eq(columnNames[i],values[i]));
-                               }
-                       }else{
-                               cr.add(Restrictions.eq(columnName,value));
-                       }
-
-                       data = cr.list();
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for Table"+e + className);    
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               return data;
-       }
-
-       
-       @SuppressWarnings("unchecked")
-       @Override
-       public List<Object> getDataByQuery(String query, SimpleBindings params) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               List<Object> data = null;
-               try {
-                       Query hbquery = session.createQuery(query);
-                       for (Map.Entry<String, Object> paramPair : params.entrySet()) {
-                               if(paramPair.getValue() instanceof java.lang.Long){
-                                       hbquery.setLong(paramPair.getKey(), (long) paramPair.getValue());
-                               }
-                               else{
-                                       hbquery.setParameter(paramPair.getKey(), paramPair.getValue());
-                               }
-                       }
-                       data = hbquery.list();
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e);
-                       throw e;
-               }finally{
-                       try{
-                               session.close();
-                       }catch(HibernateException e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement",e1);
-                       }
-               }
-               return data;
-       }
-
-
-       @Override
-       public void updateQuery(String query) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();    
-               try {
-                       Query hbquery = session.createQuery(query);
-                       hbquery.executeUpdate();
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating Database Table"+e); 
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-       }
-
-
-       @SuppressWarnings("rawtypes")
-       @Override
-       public Object getEntityItem(Class className, String columnName, String key) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               Object data = null;
-               try {
-                       Criteria cr = session.createCriteria(className);
-                       if(columnName.contains(":") && key.contains(":")){
-                               String[] columns = columnName.split(":");
-                               String[] keys = key.split(":");
-                               for(int i=0; i < columns.length; i++){
-                                       cr.add(Restrictions.eq(columns[i], keys[i]));
-                               }
-                       }else{
-                               cr.add(Restrictions.eq(columnName, key));       
-                       }
-                       data = cr.list().get(0);
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e); 
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               return data;
-       }
-
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public List<PolicyRoles> getUserRoles() {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               List<PolicyRoles> rolesData = null;
-               try {
-                       Criteria cr = session.createCriteria(PolicyRoles.class);                
-                       Disjunction disjunction = Restrictions.disjunction(); 
-                       Conjunction conjunction1  = Restrictions.conjunction();
-                       conjunction1.add(Restrictions.eq("role", "admin"));
-                       Conjunction conjunction2  = Restrictions.conjunction();
-                       conjunction2.add(Restrictions.eq("role", "editor"));    
-                       Conjunction conjunction3  = Restrictions.conjunction();
-                       conjunction3.add(Restrictions.eq("role", "guest"));     
-                       disjunction.add(conjunction1);
-                       disjunction.add(conjunction2);
-                       disjunction.add(conjunction3);
-                       rolesData = cr.add(disjunction).list();
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying PolicyRoles Table"+e);      
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               return rolesData;
-       }
-
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public void updateClAlarms(String clName, String alarms) {
-               Session session = sessionFactory.openSession();
-               List<ClosedLoops> closedloopsdata = null;
-               Transaction tx = session.beginTransaction();
-               try {
-               Criteria cr = session.createCriteria(ClosedLoops.class);
-               cr.add(Restrictions.eq("closedLoopControlName",clName));
+    private static final Log LOGGER = LogFactory.getLog(CommonClassDaoImpl.class);
+
+
+    private static SessionFactory sessionFactory;
+
+
+    @Autowired
+    private CommonClassDaoImpl(SessionFactory sessionFactory){
+        CommonClassDaoImpl.sessionFactory = sessionFactory;
+    }
+
+    public CommonClassDaoImpl(){
+        //Default Constructor
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @Override
+    public List<Object> getData(Class className) {
+        Session session = sessionFactory.openSession();
+        List<Object> data = null;
+        try{
+            Criteria cr = session.createCriteria(className);
+            data = cr.list();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
+            }
+        }
+        return data;
+    }
+
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Override
+    public List<Object> getDataById(Class className, String columnName, String key) {
+        Session session = sessionFactory.openSession();
+        List<Object> data = null;
+        try {
+            Criteria cr = session.createCriteria(className);
+            if(columnName.contains(":") && key.contains(":")){
+                String[] columns = columnName.split(":");
+                String[] keys = key.split(":");
+                for(int i=0; i < columns.length; i++){
+                    cr.add(Restrictions.eq(columns[i], keys[i]));
+                }
+            }else{
+                cr.add(Restrictions.eq(columnName, key));
+            }
+            data = cr.list();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+        return data;
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @Override
+    public List<String> getDataByColumn(Class className, String columnName) {
+        Session session = sessionFactory.openSession();
+        List<String> data = null;
+        try{
+            Criteria cr = session.createCriteria(className);
+            cr.setProjection(Projections.property(columnName));
+            data = cr.list();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
+            }
+        }
+        return data;
+    }
+
+    @Override
+    public void save(Object entity) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        try {
+            session.persist(entity);
+            tx.commit();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Saving  data to Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+
+    }
+
+    @Override
+    public void delete(Object entity) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        try {
+            session.delete(entity);
+            tx.commit();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Deleting data from Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+
+    }
+
+
+    @Override
+    public void update(Object entity) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        try {
+            session.update(entity);
+            tx.commit();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating data to Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+
+    }
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @Override
+    public List<Object> checkDuplicateEntry(String value, String columnName, Class className) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        List<Object> data = null;
+
+        String[] columnNames = null;
+        if(columnName != null && columnName.contains(":")){
+            columnNames = columnName.split(":");
+        }
+        String[] values = null;
+        if(value != null && value.contains(":")){
+            values = value.split(":");
+        }
+        try {
+            Criteria cr = session.createCriteria(className);
+            if(columnNames != null && values != null && columnNames.length == values.length){
+                for (int i = 0; i < columnNames.length; i++){
+                    cr.add(Restrictions.eq(columnNames[i],values[i]));
+                }
+            }else{
+                cr.add(Restrictions.eq(columnName,value));
+            }
+
+            data = cr.list();
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for Table"+e + className);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+        return data;
+    }
+
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public List<Object> getDataByQuery(String query, SimpleBindings params) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        List<Object> data = null;
+        try {
+            Query hbquery = session.createQuery(query);
+            for (Map.Entry<String, Object> paramPair : params.entrySet()) {
+                if(paramPair.getValue() instanceof java.lang.Long){
+                    hbquery.setLong(paramPair.getKey(), (long) paramPair.getValue());
+                }
+                else{
+                    hbquery.setParameter(paramPair.getKey(), paramPair.getValue());
+                }
+            }
+            data = hbquery.list();
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e);
+            throw e;
+        }finally{
+            try{
+                session.close();
+            }catch(HibernateException e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement",e1);
+            }
+        }
+        return data;
+    }
+
+
+    @Override
+    public void updateQuery(String query) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        try {
+            Query hbquery = session.createQuery(query);
+            hbquery.executeUpdate();
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating Database Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+    }
+
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public Object getEntityItem(Class className, String columnName, String key) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        Object data = null;
+        try {
+            Criteria cr = session.createCriteria(className);
+            if(columnName.contains(":") && key.contains(":")){
+                String[] columns = columnName.split(":");
+                String[] keys = key.split(":");
+                for(int i=0; i < columns.length; i++){
+                    cr.add(Restrictions.eq(columns[i], keys[i]));
+                }
+            }else{
+                cr.add(Restrictions.eq(columnName, key));
+            }
+            data = cr.list().get(0);
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+        return data;
+    }
+
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public List<PolicyRoles> getUserRoles() {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        List<PolicyRoles> rolesData = null;
+        try {
+            Criteria cr = session.createCriteria(PolicyRoles.class);
+            Disjunction disjunction = Restrictions.disjunction();
+            Conjunction conjunction1  = Restrictions.conjunction();
+            conjunction1.add(Restrictions.eq("role", "admin"));
+            Conjunction conjunction2  = Restrictions.conjunction();
+            conjunction2.add(Restrictions.eq("role", "editor"));
+            Conjunction conjunction3  = Restrictions.conjunction();
+            conjunction3.add(Restrictions.eq("role", "guest"));
+            disjunction.add(conjunction1);
+            disjunction.add(conjunction2);
+            disjunction.add(conjunction3);
+            rolesData = cr.add(disjunction).list();
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying PolicyRoles Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+        return rolesData;
+    }
+
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void updateClAlarms(String clName, String alarms) {
+        Session session = sessionFactory.openSession();
+        List<ClosedLoops> closedloopsdata = null;
+        Transaction tx = session.beginTransaction();
+        try {
+            Criteria cr = session.createCriteria(ClosedLoops.class);
+            cr.add(Restrictions.eq("closedLoopControlName",clName));
+            closedloopsdata = cr.list();
+            ClosedLoops closedloop = closedloopsdata.get(0);
+            closedloop.setAlarmConditions(alarms);
+            session.update(closedloop);
+            tx.commit();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating ClosedLoops Table"+e);
+        }finally{
+            session.close();
+        }
+    }
+
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void updateClYaml(String clName, String yaml) {
+        Session session = sessionFactory.openSession();
+        List<ClosedLoops> closedloopsdata = null;
+        Transaction tx = session.beginTransaction();
+        try {
+            Criteria cr = session.createCriteria(ClosedLoops.class);
+            cr.add(Restrictions.eq("closedLoopControlName",clName));
             closedloopsdata = cr.list();
-                       ClosedLoops closedloop = closedloopsdata.get(0);
-                       closedloop.setAlarmConditions(alarms);
-                       session.update(closedloop);
-                       tx.commit();    
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating ClosedLoops Table"+e);      
-               }finally{
-                       session.close();
-               }
-       }
-
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public void updateClYaml(String clName, String yaml) {
-               Session session = sessionFactory.openSession();
+            ClosedLoops closedloop = closedloopsdata.get(0);
+            closedloop.setYaml(yaml);
+            session.update(closedloop);
+            tx.commit();
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating ClosedLoops Table"+e);
+        }finally{
+            session.close();
+        }
+    }
+
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void deleteAll() {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
         List<ClosedLoops> closedloopsdata = null;
-               Transaction tx = session.beginTransaction();
-               try {
-               Criteria cr = session.createCriteria(ClosedLoops.class);
-               cr.add(Restrictions.eq("closedLoopControlName",clName));
+        try {
+            Criteria cr = session.createCriteria(ClosedLoops.class);
             closedloopsdata = cr.list();
-                       ClosedLoops closedloop = closedloopsdata.get(0);
-                       closedloop.setYaml(yaml);
-                       session.update(closedloop);
-                       tx.commit();    
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating ClosedLoops Table"+e);      
-               }finally{
-                       session.close();
-               }
-       }
-
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public void deleteAll() {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               List<ClosedLoops> closedloopsdata = null;
-               try {
-                       Criteria cr = session.createCriteria(ClosedLoops.class);
-                       closedloopsdata = cr.list();
-
-                       if(closedloopsdata!=null && !closedloopsdata.isEmpty()) {
-                               LOGGER.info("ClosedLoops exist in the database, we need to delete them in our first step to buildCache().");
-                               for(int i=0; i < closedloopsdata.size(); i++) {
-                                       ClosedLoops cl = closedloopsdata.get(i);
-                                       session.delete(cl);
-                               }
-                       } else {
-                               LOGGER.info("No ClosedLoops exist in the database, no need to delete.");
-                       }
-
-                       tx.commit();
-               }catch(Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while deleting ClosedLoops from the table"+e);
-               }finally{
-                       session.close();
-               }
-       }
-
-       @SuppressWarnings({ "unchecked"})
-       @Override
-       public List<Object> checkExistingGroupListforUpdate(String groupListValue, String groupNameValue) {
-               Session session = sessionFactory.openSession();
-               Transaction tx = session.beginTransaction();
-               List<Object> data = null;
-               try {
-                       Criteria cr = session.createCriteria(GroupPolicyScopeList.class);
-                       cr.add(Restrictions.eq("groupList",groupListValue));    
-                       Criterion expression = Restrictions.eq("name", groupNameValue);
-                       cr.add(Restrictions.not(expression));
-                       data = cr.list();
-                       tx.commit();
-               } catch (Exception e) {
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for GroupPolicyScopeList Table"+e);   
-               }finally{
-                       try{
-                               session.close();
-                       }catch(Exception e1){
-                               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
-                       }
-               }
-               return data;
-       }
-
-
-       @Override
-       public List<Object> getMultipleDataOnAddingConjunction(@SuppressWarnings("rawtypes") Class className, String columnName, List<String> data) {
-               return null;
-       }
+
+            if(closedloopsdata!=null && !closedloopsdata.isEmpty()) {
+                LOGGER.info("ClosedLoops exist in the database, we need to delete them in our first step to buildCache().");
+                for(int i=0; i < closedloopsdata.size(); i++) {
+                    ClosedLoops cl = closedloopsdata.get(i);
+                    session.delete(cl);
+                }
+            } else {
+                LOGGER.info("No ClosedLoops exist in the database, no need to delete.");
+            }
+
+            tx.commit();
+        }catch(Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while deleting ClosedLoops from the table"+e);
+        }finally{
+            session.close();
+        }
+    }
+
+    @SuppressWarnings({ "unchecked"})
+    @Override
+    public List<Object> checkExistingGroupListforUpdate(String groupListValue, String groupNameValue) {
+        Session session = sessionFactory.openSession();
+        Transaction tx = session.beginTransaction();
+        List<Object> data = null;
+        try {
+            Criteria cr = session.createCriteria(GroupPolicyScopeList.class);
+            cr.add(Restrictions.eq("groupList",groupListValue));
+            Criterion expression = Restrictions.eq("name", groupNameValue);
+            cr.add(Restrictions.not(expression));
+            data = cr.list();
+            tx.commit();
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for GroupPolicyScopeList Table"+e);
+        }finally{
+            try{
+                session.close();
+            }catch(Exception e1){
+                LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
+            }
+        }
+        return data;
+    }
+
+
+    @Override
+    public List<Object> getMultipleDataOnAddingConjunction(@SuppressWarnings("rawtypes") Class className, String columnName, List<String> data) {
+        return null;
+    }
 
     public static void setSessionfactory(SessionFactory sessionfactory) {
         sessionFactory = sessionfactory;
index dcabefc..79b07e2 100644 (file)
@@ -71,280 +71,280 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
  *
  */
 public class ElasticSearchPolicyUpdate {
-       
-       private static final Logger LOGGER = FlexLogger.getLogger(ElasticSearchPolicyUpdate.class);
-       protected final static JestClientFactory jestFactory = new JestClientFactory();
-       
-       public static void main(String[] args) {
-               
-               String elkURL = null;
-               String databseUrl = null;
-               String userName = null;
-               String txt = null;
-               String databaseDriver = null; 
-               
-               String propertyFile = System.getProperty("PROPERTY_FILE");
-               Properties config = new Properties();
-               Path file = Paths.get(propertyFile);
-               if(!file.toFile().exists()){
-                       LOGGER.error("Config File doesn't Exist in the specified Path " + file.toString());
-               }else{
-                       if(file.toString().endsWith(".properties")){
-                               try {
-                                       InputStream in = new FileInputStream(file.toFile());
-                                       config.load(in);
-                                       elkURL = config.getProperty("policy.elk.url");
-                                       databseUrl = config.getProperty("policy.database.url");
-                                       userName = config.getProperty("policy.database.username");
-                                       txt = CryptoUtils.decryptTxtNoExStr(config.getProperty("policy.database.password"));
-                                       databaseDriver = config.getProperty("policy.database.driver");
-                                       if(elkURL == null || databseUrl == null || userName == null || txt == null || databaseDriver == null){
-                                               LOGGER.error("please check the elk configuration");
-                                       }
-                               } catch (Exception e) {
-                                       LOGGER.error("Config File doesn't Exist in the specified Path " + file.toString(),e);
-                               } 
-                       }
-               }
-
-               Builder bulk = null;
-               
-               HttpClientConfig httpClientConfig = new HttpClientConfig.Builder(elkURL).multiThreaded(true).build();
-               jestFactory.setHttpClientConfig(httpClientConfig);
-           JestHttpClient client = (JestHttpClient) jestFactory.getObject();
-           
-               Connection conn = null;
-               Statement stmt = null;
-               ResultSet result = null;
-               
-               List<Index> listIndex = new ArrayList<>();
-               
-               try {
-                       Class.forName(databaseDriver);
-                       conn = DriverManager.getConnection(databseUrl, userName, txt);
-                       stmt = conn.createStatement();
-                       
-                       String policyEntityQuery = "Select * from PolicyEntity";
-                       result = stmt.executeQuery(policyEntityQuery);
-                       
-                       while(result.next()){
-                               StringBuilder policyDataString = new StringBuilder("{");
-                               String scope = result.getString("scope");
-                               String policyName = result.getString("policyName");
-                               if(policyName != null){
-                                       policyDataString.append("\"policyName\":\""+scope+"."+policyName+"\",");
-                               }
-                               String description = result.getString("description");
-                               if(description != null){
-                                       policyDataString.append("\"policyDescription\":\""+description+"\",");
-                               }
-                               Object policyData = result.getString("policydata");
-                               
-                               if(scope != null){
-                                       policyDataString.append("\"scope\":\""+scope+"\",");
-                               }
-                               String actionbodyid = result.getString("actionbodyid");
-                               String configurationdataid = result.getString("configurationdataid");
-                               
-                               
-                               String policyWithScopeName = scope + "." + policyName;
-                               String _type = null;
-                               
-                               if(policyWithScopeName.contains(".Config_")){
-                                       policyDataString.append("\"policyType\":\"Config\",");
-                                       if(policyWithScopeName.contains(".Config_Fault_")){
-                                               _type = "closedloop";
-                                               policyDataString.append("\"configPolicyType\":\"ClosedLoop_Fault\",");
-                                       }else if(policyWithScopeName.contains(".Config_PM_")){
-                                               _type = "closedloop";
-                                               policyDataString.append("\"configPolicyType\":\"ClosedLoop_PM\",");
-                                       }else{
-                                               _type = "config";
-                                               policyDataString.append("\"configPolicyType\":\"Base\",");
-                                       }
-                               }else if(policyWithScopeName.contains(".Action_")){
-                                       _type = "action";
-                                       policyDataString.append("\"policyType\":\"Action\",");
-                               }else if(policyWithScopeName.contains(".Decision_")){
-                                       _type = "decision";
-                                       policyDataString.append("\"policyType\":\"Decision\",");
-                               }
-                               
-                               if(!"decision".equals(_type)){
-                                       if(configurationdataid != null){
-                                           updateConfigData(conn, configurationdataid, policyDataString);
-                                       }
-                                       if(actionbodyid != null){
-                                           updateActionData(conn, actionbodyid, policyDataString);
-                                       }       
-                               }
-                               
-                               String _id = policyWithScopeName;
-                               
-                               String dataString = constructPolicyData(policyData, policyDataString);
-                               dataString = dataString.substring(0, dataString.length()-1);
-                               dataString = dataString.trim().replace(System.getProperty("line.separator"), "") + "}";
-                               dataString = dataString.replace("null", "\"\"");
-                               dataString = dataString.replaceAll("\n", "");
-                               
-                               try{
-                                       Gson gson = new Gson();
-                                       gson.fromJson(dataString, Object.class);
-                               }catch(Exception e){
-                                       LOGGER.error(e);
-                                       continue;
-                               }
-                               
-                               if("config".equals(_type)){
-                                       listIndex.add(new Index.Builder(dataString).index("policy").type("config").id(_id).build());
-                               }else if("closedloop".equals(_type)){
-                                       listIndex.add(new Index.Builder(dataString).index("policy").type("closedloop").id(_id).build());
-                               }else if("action".equals(_type)){
-                                       listIndex.add(new Index.Builder(dataString).index("policy").type("action").id(_id).build());
-                               }else if("decision".equals(_type)){
-                                       listIndex.add(new Index.Builder(dataString).index("policy").type("decision").id(_id).build());
-                               }
-                       }
-                       
-                       result.close();
-                       bulk = new Bulk.Builder();
-                       for(int i =0; i < listIndex.size(); i++){
-                               bulk.addAction(listIndex.get(i));
-                       }
-                       BulkResult searchResult = client.execute(bulk.build());
-                       if(searchResult.isSucceeded()){
-                               LOGGER.debug("Success");
-                       }else{
-                               LOGGER.error("Failure");
-                       }
-               } catch (Exception e) {
-                       LOGGER.error("Exception Occured while performing database Operation for Elastic Search Policy Upgrade"+e);
-               }finally{
-                       if(result != null){
-                           try {
-                               result.close();
-                           } catch (Exception e) {
-                               LOGGER.error("Exception Occured while closing the resultset"+e);
-                           }
-                       }
-                       if(stmt != null){
-                           try {
-                               stmt.close();
-                           } catch (Exception e) {
-                               LOGGER.error("Exception Occured while closing the statement"+e);
-                           }
-                       }
-                       if(conn != null){
-                               try {
-                                       conn.close();
-                               } catch (Exception e) {
-                                       LOGGER.error("Exception Occured while closing the connection"+e);
-                               }
-                       }
-               }
-       }
-       
-       public static String constructPolicyData(Object policyContent, StringBuilder policyDataString){
-               InputStream stream = new ByteArrayInputStream(policyContent.toString().getBytes(StandardCharsets.UTF_8));
-               Object policyData = XACMLPolicyScanner.readPolicy(stream);
-               if(policyData instanceof PolicyType){
-                       PolicyType policy = (PolicyType) policyData;
-                       TargetType target = policy.getTarget();
-                       if (target != null) {
-                               // Under target we have AnyOFType
-                               List<AnyOfType> anyOfList = target.getAnyOf();
-                               if (anyOfList != null) {
-                                       Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
-                                       while (iterAnyOf.hasNext()) {
-                                               AnyOfType anyOf = iterAnyOf.next();
-                                               // Under AnyOFType we have AllOFType
-                                               List<AllOfType> allOfList = anyOf.getAllOf();
-                                               if (allOfList != null) {
-                                                       Iterator<AllOfType> iterAllOf = allOfList.iterator();
-                                                       while (iterAllOf.hasNext()) {
-                                                               AllOfType allOf = iterAllOf.next();
-                                                               // Under AllOFType we have Match
-                                                               List<MatchType> matchList = allOf.getMatch();
-                                                               if (matchList != null) {
-                                                                       Iterator<MatchType> iterMatch = matchList.iterator();
-                                                                       while (iterMatch.hasNext()) {
-                                                                               MatchType match = iterMatch.next();
-                                                                               //
-                                                                               // Under the match we have attribute value and
-                                                                               // attributeDesignator. So,finally down to the actual attribute.
-                                                                               //
-                                                                               AttributeValueType attributeValue = match.getAttributeValue();
-                                                                               String value = (String) attributeValue.getContent().get(0);
-                                                                               AttributeDesignatorType designator = match.getAttributeDesignator();
-                                                                               String attributeId = designator.getAttributeId();
-                                                                               // First match in the target is OnapName, so set that value.
-                                                                               if ("ONAPName".equals(attributeId)) {
-                                                                                       policyDataString.append("\"onapName\":\""+value+"\",");
-                                                                               }
-                                                                               if ("RiskType".equals(attributeId)){
-                                                                                       policyDataString.append("\"riskType\":\""+value+"\",");
-                                                                               }
-                                                                               if ("RiskLevel".equals(attributeId)){
-                                                                                       policyDataString.append("\"riskLevel\":\""+value+"\",");
-                                                                               }
-                                                                               if ("guard".equals(attributeId)){
-                                                                                       policyDataString.append("\"guard\":\""+value+"\",");
-                                                                               }
-                                                                               if ("ConfigName".equals(attributeId)){
-                                                                                       policyDataString.append("\"configName\":\""+value+"\",");
-                                                                               }
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               }
-               return policyDataString.toString();
-       }
-       
-       private static void updateConfigData(Connection conn, String configurationdataid, StringBuilder policyDataString) throws Exception {
-
-               PreparedStatement pstmt = null;
-               ResultSet configResult = null;
-               try {
-                   String configEntityQuery = "Select * from ConfigurationDataEntity where configurationDataId = ?";
-                   pstmt = null;
-                   pstmt = conn.prepareStatement(configEntityQuery);
-                   pstmt.setString(1, configurationdataid);
-                   configResult = pstmt.executeQuery();
-                   while(configResult.next()){
-                       String configBody = configResult.getString("configbody");
-                       String configType = configResult.getString("configtype");
-                       if(configBody!=null){
-                           configBody = configBody.replace("null", "\"\"");
-                           configBody= configBody.replace("\"", "\\\"");
-                           policyDataString.append("\"jsonBodyData\":\""+configBody+"\",\"configType\":\""+configType+"\",");
-                       }
-                   }
-               } catch(Exception e) {
-                   LOGGER.error("Exception Occured while updating configData"+e);
-                   throw(e);
-               } finally {
-                   if(configResult != null){
-                       try {
-                           configResult.close();
-                       } catch (Exception e) {
-                           LOGGER.error("Exception Occured while closing the ResultSet"+e);
-                       }
-                   }
-                   if(pstmt != null){
-                       try {
-                           pstmt.close();
-                       } catch (Exception e) {
-                           LOGGER.error("Exception Occured while closing the PreparedStatement"+e);
-                       }
-                   }
-              }
-       }
-       
-       private static void updateActionData(Connection conn, String actionbodyid, StringBuilder policyDataString) throws Exception {
+
+    private static final Logger LOGGER = FlexLogger.getLogger(ElasticSearchPolicyUpdate.class);
+    protected final static JestClientFactory jestFactory = new JestClientFactory();
+
+    public static void main(String[] args) {
+
+        String elkURL = null;
+        String databseUrl = null;
+        String userName = null;
+        String txt = null;
+        String databaseDriver = null;
+
+        String propertyFile = System.getProperty("PROPERTY_FILE");
+        Properties config = new Properties();
+        Path file = Paths.get(propertyFile);
+        if(!file.toFile().exists()){
+            LOGGER.error("Config File doesn't Exist in the specified Path " + file.toString());
+        }else{
+            if(file.toString().endsWith(".properties")){
+                try {
+                    InputStream in = new FileInputStream(file.toFile());
+                    config.load(in);
+                    elkURL = config.getProperty("policy.elk.url");
+                    databseUrl = config.getProperty("policy.database.url");
+                    userName = config.getProperty("policy.database.username");
+                    txt = CryptoUtils.decryptTxtNoExStr(config.getProperty("policy.database.password"));
+                    databaseDriver = config.getProperty("policy.database.driver");
+                    if(elkURL == null || databseUrl == null || userName == null || txt == null || databaseDriver == null){
+                        LOGGER.error("please check the elk configuration");
+                    }
+                } catch (Exception e) {
+                    LOGGER.error("Config File doesn't Exist in the specified Path " + file.toString(),e);
+                }
+            }
+        }
+
+        Builder bulk = null;
+
+        HttpClientConfig httpClientConfig = new HttpClientConfig.Builder(elkURL).multiThreaded(true).build();
+        jestFactory.setHttpClientConfig(httpClientConfig);
+        JestHttpClient client = (JestHttpClient) jestFactory.getObject();
+
+        Connection conn = null;
+        Statement stmt = null;
+        ResultSet result = null;
+
+        List<Index> listIndex = new ArrayList<>();
+
+        try {
+            Class.forName(databaseDriver);
+            conn = DriverManager.getConnection(databseUrl, userName, txt);
+            stmt = conn.createStatement();
+
+            String policyEntityQuery = "Select * from PolicyEntity";
+            result = stmt.executeQuery(policyEntityQuery);
+
+            while(result.next()){
+                StringBuilder policyDataString = new StringBuilder("{");
+                String scope = result.getString("scope");
+                String policyName = result.getString("policyName");
+                if(policyName != null){
+                    policyDataString.append("\"policyName\":\""+scope+"."+policyName+"\",");
+                }
+                String description = result.getString("description");
+                if(description != null){
+                    policyDataString.append("\"policyDescription\":\""+description+"\",");
+                }
+                Object policyData = result.getString("policydata");
+
+                if(scope != null){
+                    policyDataString.append("\"scope\":\""+scope+"\",");
+                }
+                String actionbodyid = result.getString("actionbodyid");
+                String configurationdataid = result.getString("configurationdataid");
+
+
+                String policyWithScopeName = scope + "." + policyName;
+                String _type = null;
+
+                if(policyWithScopeName.contains(".Config_")){
+                    policyDataString.append("\"policyType\":\"Config\",");
+                    if(policyWithScopeName.contains(".Config_Fault_")){
+                        _type = "closedloop";
+                        policyDataString.append("\"configPolicyType\":\"ClosedLoop_Fault\",");
+                    }else if(policyWithScopeName.contains(".Config_PM_")){
+                        _type = "closedloop";
+                        policyDataString.append("\"configPolicyType\":\"ClosedLoop_PM\",");
+                    }else{
+                        _type = "config";
+                        policyDataString.append("\"configPolicyType\":\"Base\",");
+                    }
+                }else if(policyWithScopeName.contains(".Action_")){
+                    _type = "action";
+                    policyDataString.append("\"policyType\":\"Action\",");
+                }else if(policyWithScopeName.contains(".Decision_")){
+                    _type = "decision";
+                    policyDataString.append("\"policyType\":\"Decision\",");
+                }
+
+                if(!"decision".equals(_type)){
+                    if(configurationdataid != null){
+                        updateConfigData(conn, configurationdataid, policyDataString);
+                    }
+                    if(actionbodyid != null){
+                        updateActionData(conn, actionbodyid, policyDataString);
+                    }
+                }
+
+                String _id = policyWithScopeName;
+
+                String dataString = constructPolicyData(policyData, policyDataString);
+                dataString = dataString.substring(0, dataString.length()-1);
+                dataString = dataString.trim().replace(System.getProperty("line.separator"), "") + "}";
+                dataString = dataString.replace("null", "\"\"");
+                dataString = dataString.replaceAll("\n", "");
+
+                try{
+                    Gson gson = new Gson();
+                    gson.fromJson(dataString, Object.class);
+                }catch(Exception e){
+                    LOGGER.error(e);
+                    continue;
+                }
+
+                if("config".equals(_type)){
+                    listIndex.add(new Index.Builder(dataString).index("policy").type("config").id(_id).build());
+                }else if("closedloop".equals(_type)){
+                    listIndex.add(new Index.Builder(dataString).index("policy").type("closedloop").id(_id).build());
+                }else if("action".equals(_type)){
+                    listIndex.add(new Index.Builder(dataString).index("policy").type("action").id(_id).build());
+                }else if("decision".equals(_type)){
+                    listIndex.add(new Index.Builder(dataString).index("policy").type("decision").id(_id).build());
+                }
+            }
+
+            result.close();
+            bulk = new Bulk.Builder();
+            for(int i =0; i < listIndex.size(); i++){
+                bulk.addAction(listIndex.get(i));
+            }
+            BulkResult searchResult = client.execute(bulk.build());
+            if(searchResult.isSucceeded()){
+                LOGGER.debug("Success");
+            }else{
+                LOGGER.error("Failure");
+            }
+        } catch (Exception e) {
+            LOGGER.error("Exception Occured while performing database Operation for Elastic Search Policy Upgrade"+e);
+        }finally{
+                if(result != null){
+                    try {
+                        result.close();
+                    } catch (Exception e) {
+                        LOGGER.error("Exception Occured while closing the resultset"+e);
+                    }
+                }
+                if(stmt != null){
+                    try {
+                        stmt.close();
+                    } catch (Exception e) {
+                        LOGGER.error("Exception Occured while closing the statement"+e);
+                    }
+                }
+            if(conn != null){
+                try {
+                    conn.close();
+                } catch (Exception e) {
+                    LOGGER.error("Exception Occured while closing the connection"+e);
+                }
+            }
+        }
+    }
+
+    public static String constructPolicyData(Object policyContent, StringBuilder policyDataString){
+        InputStream stream = new ByteArrayInputStream(policyContent.toString().getBytes(StandardCharsets.UTF_8));
+        Object policyData = XACMLPolicyScanner.readPolicy(stream);
+        if(policyData instanceof PolicyType){
+            PolicyType policy = (PolicyType) policyData;
+            TargetType target = policy.getTarget();
+            if (target != null) {
+                // Under target we have AnyOFType
+                List<AnyOfType> anyOfList = target.getAnyOf();
+                if (anyOfList != null) {
+                    Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
+                    while (iterAnyOf.hasNext()) {
+                        AnyOfType anyOf = iterAnyOf.next();
+                        // Under AnyOFType we have AllOFType
+                        List<AllOfType> allOfList = anyOf.getAllOf();
+                        if (allOfList != null) {
+                            Iterator<AllOfType> iterAllOf = allOfList.iterator();
+                            while (iterAllOf.hasNext()) {
+                                AllOfType allOf = iterAllOf.next();
+                                // Under AllOFType we have Match
+                                List<MatchType> matchList = allOf.getMatch();
+                                if (matchList != null) {
+                                    Iterator<MatchType> iterMatch = matchList.iterator();
+                                    while (iterMatch.hasNext()) {
+                                        MatchType match = iterMatch.next();
+                                        //
+                                        // Under the match we have attribute value and
+                                        // attributeDesignator. So,finally down to the actual attribute.
+                                        //
+                                        AttributeValueType attributeValue = match.getAttributeValue();
+                                        String value = (String) attributeValue.getContent().get(0);
+                                        AttributeDesignatorType designator = match.getAttributeDesignator();
+                                        String attributeId = designator.getAttributeId();
+                                        // First match in the target is OnapName, so set that value.
+                                        if ("ONAPName".equals(attributeId)) {
+                                            policyDataString.append("\"onapName\":\""+value+"\",");
+                                        }
+                                        if ("RiskType".equals(attributeId)){
+                                            policyDataString.append("\"riskType\":\""+value+"\",");
+                                        }
+                                        if ("RiskLevel".equals(attributeId)){
+                                            policyDataString.append("\"riskLevel\":\""+value+"\",");
+                                        }
+                                        if ("guard".equals(attributeId)){
+                                            policyDataString.append("\"guard\":\""+value+"\",");
+                                        }
+                                        if ("ConfigName".equals(attributeId)){
+                                            policyDataString.append("\"configName\":\""+value+"\",");
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return policyDataString.toString();
+    }
+
+    private static void updateConfigData(Connection conn, String configurationdataid, StringBuilder policyDataString) throws Exception {
+
+            PreparedStatement pstmt = null;
+            ResultSet configResult = null;
+            try {
+                String configEntityQuery = "Select * from ConfigurationDataEntity where configurationDataId = ?";
+                pstmt = null;
+                pstmt = conn.prepareStatement(configEntityQuery);
+                pstmt.setString(1, configurationdataid);
+                configResult = pstmt.executeQuery();
+                while(configResult.next()){
+                    String configBody = configResult.getString("configbody");
+                    String configType = configResult.getString("configtype");
+                    if(configBody!=null){
+                        configBody = configBody.replace("null", "\"\"");
+                        configBody= configBody.replace("\"", "\\\"");
+                        policyDataString.append("\"jsonBodyData\":\""+configBody+"\",\"configType\":\""+configType+"\",");
+                    }
+                }
+            } catch(Exception e) {
+                LOGGER.error("Exception Occured while updating configData"+e);
+                throw(e);
+            } finally {
+                if(configResult != null){
+                    try {
+                        configResult.close();
+                    } catch (Exception e) {
+                        LOGGER.error("Exception Occured while closing the ResultSet"+e);
+                    }
+                }
+                if(pstmt != null){
+                    try {
+                        pstmt.close();
+                    } catch (Exception e) {
+                        LOGGER.error("Exception Occured while closing the PreparedStatement"+e);
+                    }
+                }
+           }
+    }
+
+    private static void updateActionData(Connection conn, String actionbodyid, StringBuilder policyDataString) throws Exception {
 
             PreparedStatement pstmt = null;
             ResultSet actionResult = null;
@@ -378,5 +378,5 @@ public class ElasticSearchPolicyUpdate {
                     }
                 }
            }
-       }
+    }
 }
\ No newline at end of file
index 83d5c3f..e895b63 100644 (file)
@@ -27,78 +27,78 @@ import org.onap.policy.rest.adapter.PolicyRestAdapter;
 import io.searchbox.client.JestResult;
 
 public interface ElkConnector {
-       
-       public static final String ELK_URL = "http://localhost:9200";
-       public static final String ELK_INDEX_POLICY = "policy";
-       
-       public enum PolicyIndexType {
-               config,
-               action,
-               decision,
-               closedloop,
-               all,
-       }
-       
-       public enum PolicyType {
-               Config,
-               Action,
-               Decision,
-               Config_Fault,
-               Config_PM,
-               Config_FW,
-               Config_MS,
-               Config_OOF,
-               none,
-       }
-       
-       public enum PolicyBodyType {
-               json,
-               xml,
-               properties,
-               txt,
-               none,
-       }
-
-       public boolean delete(PolicyRestAdapter policyData)
-                       throws IllegalStateException;
-
-       public JestResult search(PolicyIndexType type, String text) 
-                  throws IllegalStateException, IllegalArgumentException;
-       
-       public JestResult search(PolicyIndexType type, String text, 
-                       Map<String, String> searchKeyValue) 
-                          throws IllegalStateException, IllegalArgumentException;
-       
-       public boolean update(PolicyRestAdapter policyData) throws IllegalStateException;
-       
-       public ElkConnector singleton = new ElkConnectorImpl();
-       
-       public static PolicyIndexType toPolicyIndexType(String policyName) 
-                       throws IllegalArgumentException {
-               if (policyName == null)
-                       throw new IllegalArgumentException("Unsupported NULL policy name conversion");
-
-               if (policyName.startsWith("Config_Fault")) {
-                       return PolicyIndexType.closedloop;
-               } else if (policyName.startsWith("Config_PM")) {
-                       return PolicyIndexType.closedloop;
-               } else if (policyName.startsWith("Config_FW")) {
-                       return PolicyIndexType.config;
-               } else if (policyName.startsWith("Config_MS")) {
-                       return PolicyIndexType.config;
-               } else if (policyName.startsWith("Config_OOF")) {
-                       return PolicyIndexType.config;
-               }else if (policyName.startsWith("Action")) {
-                       return PolicyIndexType.action;
-               } else if (policyName.startsWith("Decision")) {
-                       return PolicyIndexType.decision;
-               } else if (policyName.startsWith("Config")) {
-                       return PolicyIndexType.config;
-               } else {
-                       throw new IllegalArgumentException
-                       ("Unsupported policy name conversion to index: " + 
-                                       policyName);
-               }
-       }
-       
+
+    public static final String ELK_URL = "http://localhost:9200";
+    public static final String ELK_INDEX_POLICY = "policy";
+
+    public enum PolicyIndexType {
+        config,
+        action,
+        decision,
+        closedloop,
+        all,
+    }
+
+    public enum PolicyType {
+        Config,
+        Action,
+        Decision,
+        Config_Fault,
+        Config_PM,
+        Config_FW,
+        Config_MS,
+        Config_OOF,
+        none,
+    }
+
+    public enum PolicyBodyType {
+        json,
+        xml,
+        properties,
+        txt,
+        none,
+    }
+
+    public boolean delete(PolicyRestAdapter policyData)
+            throws IllegalStateException;
+
+    public JestResult search(PolicyIndexType type, String text)
+           throws IllegalStateException, IllegalArgumentException;
+
+    public JestResult search(PolicyIndexType type, String text,
+            Map<String, String> searchKeyValue)
+               throws IllegalStateException, IllegalArgumentException;
+
+    public boolean update(PolicyRestAdapter policyData) throws IllegalStateException;
+
+    public ElkConnector singleton = new ElkConnectorImpl();
+
+    public static PolicyIndexType toPolicyIndexType(String policyName)
+            throws IllegalArgumentException {
+        if (policyName == null)
+            throw new IllegalArgumentException("Unsupported NULL policy name conversion");
+
+        if (policyName.startsWith("Config_Fault")) {
+            return PolicyIndexType.closedloop;
+        } else if (policyName.startsWith("Config_PM")) {
+            return PolicyIndexType.closedloop;
+        } else if (policyName.startsWith("Config_FW")) {
+            return PolicyIndexType.config;
+        } else if (policyName.startsWith("Config_MS")) {
+            return PolicyIndexType.config;
+        } else if (policyName.startsWith("Config_OOF")) {
+            return PolicyIndexType.config;
+        }else if (policyName.startsWith("Action")) {
+            return PolicyIndexType.action;
+        } else if (policyName.startsWith("Decision")) {
+            return PolicyIndexType.decision;
+        } else if (policyName.startsWith("Config")) {
+            return PolicyIndexType.config;
+        } else {
+            throw new IllegalArgumentException
+            ("Unsupported policy name conversion to index: " +
+                    policyName);
+        }
+    }
+
 }
index d87e75f..19a7ed2 100644 (file)
@@ -47,384 +47,384 @@ import io.searchbox.params.Parameters;
 
 public class ElkConnectorImpl implements ElkConnector{
 
-       private static final Logger LOGGER = FlexLogger.getLogger(ElkConnector.class);
-
-       protected final JestClientFactory jestFactory = new JestClientFactory();
-       protected final JestClient jestClient;  
-       protected static int QUERY_MAXRECORDS = 1000;
-
-       public ElkConnectorImpl() {
-               if (LOGGER.isDebugEnabled()){
-                       LOGGER.debug("ENTER: -");
-               }
-               HttpClientConfig jestClientConfig = new HttpClientConfig.Builder(ELK_URL).multiThreaded(true).build();
-               jestFactory.setHttpClientConfig(jestClientConfig);
-               jestClient = jestFactory.getObject();
-       }
-
-       protected boolean isType(PolicyIndexType type) throws IOException {
-               if (LOGGER.isDebugEnabled()){
-                       LOGGER.debug("ENTER: -");
-               }
-
-               try {
-                       Action<JestResult> typeQuery = new TypeExist.Builder(ELK_INDEX_POLICY).addType(type.toString()).build();
-                       JestResult result = jestClient.execute(typeQuery);
-
-                       if (LOGGER.isInfoEnabled()) {
-                               LOGGER.info("JSON:" + result.getJsonString());
-                               LOGGER.info("ERROR:" + result.getErrorMessage());
-                               LOGGER.info("PATH:" + result.getPathToResult());
-                               LOGGER.info(result.getJsonObject());
-                       }
-                       return result.isSucceeded();    
-               } catch (IOException e) {
-                       LOGGER.warn("Error checking type existance of " + type.toString() + ": " + e.getMessage(), e);
-                       throw e;
-               }
-       }
-
-       protected boolean isIndex() throws IOException {
-               try {
-                       Action<JestResult> indexQuery = new IndicesExists.Builder(ELK_INDEX_POLICY).build();
-
-                       JestResult result = jestClient.execute(indexQuery);
-                       if (LOGGER.isInfoEnabled()) {
-                               LOGGER.info("JSON:" + result.getJsonString());
-                               LOGGER.info("ERROR:" + result.getErrorMessage());
-                               LOGGER.info("PATH:" + result.getPathToResult());
-                               LOGGER.info(result.getJsonObject());
-                       }
-                       return result.isSucceeded();    
-               } catch (IOException e) {
-                       LOGGER.warn("Error checking index existance of " + ELK_INDEX_POLICY + ": " + e.getMessage(), e);
-                       throw e;
-               }
-       }
-       private boolean isAlphaNumeric(String query){
-               return query.matches("[a-zA-Z_0-9]+");
-       }
-
-       @Override
-       public JestResult search(PolicyIndexType type, String text) throws IllegalStateException, IllegalArgumentException {
-               if (LOGGER.isTraceEnabled()){
-                       LOGGER.trace("ENTER: " + text);
-               }
-
-               if (text == null || text.isEmpty()) {
-                       throw new IllegalArgumentException("No search string provided");
-               }
-
-               if(!isAlphaNumeric(text)){
-                       throw new IllegalArgumentException("Search must be alpha numeric");
-               }
-
-               QueryStringQueryBuilder mQ = QueryBuilders.queryStringQuery("*"+text+"*");
-               SearchSourceBuilder searchSourceBuilder = 
-                               new SearchSourceBuilder().query(mQ);
-               
-               Builder searchBuilder = new Search.Builder(searchSourceBuilder.toString()).
-                               addIndex(ELK_INDEX_POLICY).
-                               setParameter(Parameters.SIZE, ElkConnectorImpl.QUERY_MAXRECORDS);
-
-               if (type == null || type == PolicyIndexType.all) {
-                       for (PolicyIndexType pT: PolicyIndexType.values()) {
-                               if (pT != PolicyIndexType.all) {
-                                       searchBuilder.addType(pT.toString());
-                               }
-                       }
-               } else {
-                       searchBuilder.addType(type.toString());
-               }
-
-               Search search = searchBuilder.build();
-               JestResult result;
-               try {
-                       result = jestClient.execute(search);
-               } catch (IOException ioe) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ":" + 
-                                       search + ": " + ioe.getMessage(), ioe);
-                       throw new IllegalStateException(ioe);
-               }
-
-               if (result.isSucceeded()) {
-                       if (LOGGER.isInfoEnabled()){
-                               LOGGER.info("OK:" + result.getResponseCode() + ":" + search + ": " + 
-                                               result.getPathToResult() + ":" + System.lineSeparator() +
-                                               result.getJsonString());
-                       }
-               } else {        
-                       /* Unsuccessful search */
-                       if (LOGGER.isWarnEnabled()){
-                               LOGGER.warn(XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" + 
-                                               result.getResponseCode() + ": " + 
-                                               search.getURI() + ":" +
-                                               result.getPathToResult() + ":" +
-                                               result.getJsonString() + ":" +
-                                               result.getErrorMessage());
-                       }
-
-                       String errorMessage = result.getErrorMessage();
-                       if (errorMessage != null && !errorMessage.isEmpty()) {
-                               String xMessage;
-                               if (errorMessage.contains("TokenMgrError")) {
-                                       int indexError = errorMessage.lastIndexOf("TokenMgrError");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
-                               } else if (errorMessage.contains("QueryParsingException")) {
-                                       int indexError = errorMessage.lastIndexOf("QueryParsingException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
-                               } else if (errorMessage.contains("JsonParseException")) {
-                                       int indexError = errorMessage.lastIndexOf("JsonParseException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else if (errorMessage.contains("Parse Failure")) {
-                                       int indexError = errorMessage.lastIndexOf("Parse Failure");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else if (errorMessage.contains("SearchParseException")) {
-                                       int indexError = errorMessage.lastIndexOf("SearchParseException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else {
-                                       xMessage = result.getErrorMessage();
-                               }
-                               throw new IllegalStateException(xMessage);
-                       }
-               }
-
-               return result;
-       }
-
-
-       @Override
-       public JestResult search(PolicyIndexType type, String text, 
-                       Map<String, String> filter_s) 
-                                       throws IllegalStateException, IllegalArgumentException {
-               if (LOGGER.isTraceEnabled()){
-                       LOGGER.trace("ENTER: " + text);
-               }
-
-               if (filter_s == null || filter_s.size() == 0) {
-                       return search(type, text);
-               }
-
-               if(!isAlphaNumeric(text)){
-                       throw new IllegalArgumentException("Search must be alpha numeric");
-               }
-
-               String matches_s = "";
-               matches_s = "{\n" +
-                               "    \"size\" : "+ ElkConnectorImpl.QUERY_MAXRECORDS + ",\n" +
-                               "    \"query\": {\n" +
-                               "        \"bool\" : {\n" +
-                               "            \"must\" : [";
-               
-               String match_params = "";
-               boolean first = true;
-               for(Entry<String, String> entry : filter_s.entrySet()){
-                       String key = entry.getKey();
-                       String value = entry.getValue();
-                       if(first){
-                               match_params = "\"match\" : {\""+key+"\" : \""+value+"\" }},";
-                               first = false;
-                       }else{
-                               match_params = match_params + "{\"match\" : { \""+key+"\" : \""+value+"\" } },";
-                       }
-               }
-               if(match_params.endsWith(",")){
-                       match_params = match_params.substring(0, match_params.length()-2);
-               }
-
-               matches_s = matches_s + "{\n" + match_params + "\n}" ;
-               
-               boolean query = false;
-               String query_String = "";
-               if(text != null){
-                       query = true;
-                       query_String = "{\n \"query_string\" : {\n \"query\" : \"*"+text+"*\"\n} \n}";
-               }
-               
-               if(query){
-                       matches_s = matches_s + "," +  query_String + "]\n}\n}\n}";
-               }else{
-                       matches_s = matches_s + "]\n}\n}\n}";
-               }
-                               
-               Builder searchBuilder = new Search.Builder(matches_s).addIndex(ELK_INDEX_POLICY);
-
-               if (type == null || type == PolicyIndexType.all) {
-                       for (PolicyIndexType pT: PolicyIndexType.values()) {
-                               if (pT != PolicyIndexType.all) {
-                                       searchBuilder.addType(pT.toString());
-                               }
-                       }
-               } else {
-                       searchBuilder.addType(type.toString());
-               }
-
-               Search search = searchBuilder.build();
-
-               JestResult result;
-               try {
-                       result = jestClient.execute(search);
-               } catch (IOException ioe) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ":" + 
-                                       search + ": " + ioe.getMessage(), ioe);
-                       throw new IllegalStateException(ioe);
-               }
-
-               if (result.isSucceeded()) {
-                       if (LOGGER.isInfoEnabled()){
-                               LOGGER.info("OK:" + result.getResponseCode() + ":" + search + ": " + 
-                                               result.getPathToResult() + ":" + System.lineSeparator() +
-                                               result.getJsonString());        
-                       }       
-               } else {        
-                       /* Unsuccessful search */
-                       if (LOGGER.isWarnEnabled()){
-                               LOGGER.warn(XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" + 
-                                               result.getResponseCode() + ": " + 
-                                               search.getURI() + ":" +
-                                               result.getPathToResult() + ":" +
-                                               result.getJsonString() + ":" +
-                                               result.getErrorMessage());
-                       }
-
-                       String errorMessage = result.getErrorMessage();
-                       if (errorMessage != null && !errorMessage.isEmpty()) {
-                               String xMessage = errorMessage;
-                               if (errorMessage.contains("TokenMgrError")) {
-                                       int indexError = errorMessage.lastIndexOf("TokenMgrError");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
-                               } else if (errorMessage.contains("QueryParsingException")) {
-                                       int indexError = errorMessage.lastIndexOf("QueryParsingException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
-                               } else if (errorMessage.contains("JsonParseException")) {
-                                       int indexError = errorMessage.lastIndexOf("JsonParseException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else if (errorMessage.contains("Parse Failure")) {
-                                       int indexError = errorMessage.lastIndexOf("Parse Failure");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else if (errorMessage.contains("SearchParseException")) {
-                                       int indexError = errorMessage.lastIndexOf("SearchParseException");
-                                       xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);                                
-                               } else {
-                                       xMessage = result.getErrorMessage();
-                               }
-                               throw new IllegalStateException(xMessage);
-                       }
-               }
-
-               return result;
-       }
-
-       public boolean put(PolicyRestAdapter policyData) 
-                       throws IOException, IllegalStateException {
-               if (LOGGER.isTraceEnabled()) LOGGER.trace("ENTER");
-
-               PolicyIndexType indexType;
-               try {
-                       String policyName = policyData.getNewFileName();
-                       if(policyName.contains("Config_")){
-                               policyName = policyName.replace(".Config_", ":Config_");
-                       }else if(policyName.contains("Action_")){
-                               policyName = policyName.replace(".Action_", ":Action_");
-                       }else if(policyName.contains("Decision_")){
-                               policyName = policyName.replace(".Decision_", ":Decision_");
-                       }
-                       
-                       String[] splitPolicyName = policyName.split(":");
-                       indexType = ElkConnector.toPolicyIndexType(splitPolicyName[1]);
-               } catch (IllegalArgumentException e) {
-                       LOGGER.error(e);
-                       throw new IllegalStateException("ELK: Index: " + ELK_INDEX_POLICY + e.getMessage());                    
-               }
-               PolicyElasticData elasticData = new PolicyElasticData(policyData);
-               JSONObject jsonObj = new JSONObject(elasticData);
-               Index elkPut = new Index.Builder(jsonObj.toString()).
-                               index(ELK_INDEX_POLICY).
-                               type(indexType.name()).
-                               id(elasticData.getPolicyName()).
-                               refresh(true).
-                               build();
-
-               JestResult result = jestClient.execute(elkPut);
-
-               if (result.isSucceeded()) {
-                       if (LOGGER.isInfoEnabled())
-                               LOGGER.info("ElkConnector: OK: PUT operation of " + "->"  + ": " +
-                                               "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
-                                               result.getPathToResult() + "]" + System.lineSeparator() +
-                                               result.getJsonString());
-               } else {
-                       if (LOGGER.isWarnEnabled())
-                               LOGGER.warn("ElkConnector: FAILURE: PUT operation of "+ "->" + ": " +
-                                               "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
-                                               result.getPathToResult() + "]" + System.lineSeparator() +
-                                               result.getJsonString());                        
-
-               }
-
-               return result.isSucceeded();
-       }
-
-       @Override
-       public boolean delete(PolicyRestAdapter policyData) throws IllegalStateException  {
-               PolicyIndexType indexType = null;
-               JestResult result;
-               try {
-                       String policyName = policyData.getNewFileName();
-                       if(policyName.contains("Config_")){
-                               policyName = policyName.replace(".Config_", ":Config_");
-                       }else if(policyName.contains("Action_")){
-                               policyName = policyName.replace(".Action_", ":Action_");
-                       }else if(policyName.contains("Decision_")){
-                               policyName = policyName.replace(".Decision_", ":Decision_");
-                       }
-                       
-                       String[] splitPolicyName = policyName.split(":");
-                       indexType = ElkConnector.toPolicyIndexType(splitPolicyName[1]);
-                       if (!isType(indexType)) {
-                               throw new IllegalStateException("ELK: Index: " + ELK_INDEX_POLICY +
-                                               " Type: " + indexType + 
-                                               " is not configured");
-                       }
-                       PolicyElasticData elasticData = new PolicyElasticData(policyData);
-                       Delete deleteRequest = new Delete.Builder(elasticData.getPolicyName()).index(ELK_INDEX_POLICY).
-                                       type(indexType.name()).build();
-                       result = jestClient.execute(deleteRequest);
-               } catch (IllegalArgumentException | IOException e) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ": delete:" + 
-                                       indexType +  ": null" + ":" + policyData.getNewFileName() + ": " + 
-                                       e.getMessage(), e);
-                       throw new IllegalStateException(e);
-               }
-
-               if (result.isSucceeded()) {
-                       if (LOGGER.isInfoEnabled())
-                               LOGGER.info("OK: DELETE operation of " + indexType + ":" + policyData.getNewFileName() + ": " +
-                                               "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
-                                               result.getPathToResult() + "]" + System.lineSeparator() +
-                                               result.getJsonString());
-               } else {
-                       if (LOGGER.isWarnEnabled())
-                               LOGGER.warn("FAILURE: DELETE operation of " + indexType + ":" + policyData.getNewFileName() + ": " +
-                                               "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
-                                               result.getPathToResult() + "]" + System.lineSeparator() +
-                                               result.getJsonString());        
-               }
-
-               return result.isSucceeded();
-       }
-       
-       @Override
-       public boolean update(PolicyRestAdapter policyData) throws IllegalStateException  {     
-               if (LOGGER.isDebugEnabled()){
-                       LOGGER.debug("ENTER");
-               }
-               try {
-                       boolean success = put(policyData);      
-                       return success;         
-               } catch (Exception e) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_UNKNOWN + ":" + "cannot test and update", e);
-                       throw new IllegalStateException(e);                     
-               }
-       }
+    private static final Logger LOGGER = FlexLogger.getLogger(ElkConnector.class);
+
+    protected final JestClientFactory jestFactory = new JestClientFactory();
+    protected final JestClient jestClient;
+    protected static int QUERY_MAXRECORDS = 1000;
+
+    public ElkConnectorImpl() {
+        if (LOGGER.isDebugEnabled()){
+            LOGGER.debug("ENTER: -");
+        }
+        HttpClientConfig jestClientConfig = new HttpClientConfig.Builder(ELK_URL).multiThreaded(true).build();
+        jestFactory.setHttpClientConfig(jestClientConfig);
+        jestClient = jestFactory.getObject();
+    }
+
+    protected boolean isType(PolicyIndexType type) throws IOException {
+        if (LOGGER.isDebugEnabled()){
+            LOGGER.debug("ENTER: -");
+        }
+
+        try {
+            Action<JestResult> typeQuery = new TypeExist.Builder(ELK_INDEX_POLICY).addType(type.toString()).build();
+            JestResult result = jestClient.execute(typeQuery);
+
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("JSON:" + result.getJsonString());
+                LOGGER.info("ERROR:" + result.getErrorMessage());
+                LOGGER.info("PATH:" + result.getPathToResult());
+                LOGGER.info(result.getJsonObject());
+            }
+            return result.isSucceeded();
+        } catch (IOException e) {
+            LOGGER.warn("Error checking type existance of " + type.toString() + ": " + e.getMessage(), e);
+            throw e;
+        }
+    }
+
+    protected boolean isIndex() throws IOException {
+        try {
+            Action<JestResult> indexQuery = new IndicesExists.Builder(ELK_INDEX_POLICY).build();
+
+            JestResult result = jestClient.execute(indexQuery);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("JSON:" + result.getJsonString());
+                LOGGER.info("ERROR:" + result.getErrorMessage());
+                LOGGER.info("PATH:" + result.getPathToResult());
+                LOGGER.info(result.getJsonObject());
+            }
+            return result.isSucceeded();
+        } catch (IOException e) {
+            LOGGER.warn("Error checking index existance of " + ELK_INDEX_POLICY + ": " + e.getMessage(), e);
+            throw e;
+        }
+    }
+    private boolean isAlphaNumeric(String query){
+        return query.matches("[a-zA-Z_0-9]+");
+    }
+
+    @Override
+    public JestResult search(PolicyIndexType type, String text) throws IllegalStateException, IllegalArgumentException {
+        if (LOGGER.isTraceEnabled()){
+            LOGGER.trace("ENTER: " + text);
+        }
+
+        if (text == null || text.isEmpty()) {
+            throw new IllegalArgumentException("No search string provided");
+        }
+
+        if(!isAlphaNumeric(text)){
+            throw new IllegalArgumentException("Search must be alpha numeric");
+        }
+
+        QueryStringQueryBuilder mQ = QueryBuilders.queryStringQuery("*"+text+"*");
+        SearchSourceBuilder searchSourceBuilder =
+                new SearchSourceBuilder().query(mQ);
+
+        Builder searchBuilder = new Search.Builder(searchSourceBuilder.toString()).
+                addIndex(ELK_INDEX_POLICY).
+                setParameter(Parameters.SIZE, ElkConnectorImpl.QUERY_MAXRECORDS);
+
+        if (type == null || type == PolicyIndexType.all) {
+            for (PolicyIndexType pT: PolicyIndexType.values()) {
+                if (pT != PolicyIndexType.all) {
+                    searchBuilder.addType(pT.toString());
+                }
+            }
+        } else {
+            searchBuilder.addType(type.toString());
+        }
+
+        Search search = searchBuilder.build();
+        JestResult result;
+        try {
+            result = jestClient.execute(search);
+        } catch (IOException ioe) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ":" +
+                    search + ": " + ioe.getMessage(), ioe);
+            throw new IllegalStateException(ioe);
+        }
+
+        if (result.isSucceeded()) {
+            if (LOGGER.isInfoEnabled()){
+                LOGGER.info("OK:" + result.getResponseCode() + ":" + search + ": " +
+                        result.getPathToResult() + ":" + System.lineSeparator() +
+                        result.getJsonString());
+            }
+        } else {
+            /* Unsuccessful search */
+            if (LOGGER.isWarnEnabled()){
+                LOGGER.warn(XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" +
+                        result.getResponseCode() + ": " +
+                        search.getURI() + ":" +
+                        result.getPathToResult() + ":" +
+                        result.getJsonString() + ":" +
+                        result.getErrorMessage());
+            }
+
+            String errorMessage = result.getErrorMessage();
+            if (errorMessage != null && !errorMessage.isEmpty()) {
+                String xMessage;
+                if (errorMessage.contains("TokenMgrError")) {
+                    int indexError = errorMessage.lastIndexOf("TokenMgrError");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("QueryParsingException")) {
+                    int indexError = errorMessage.lastIndexOf("QueryParsingException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("JsonParseException")) {
+                    int indexError = errorMessage.lastIndexOf("JsonParseException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("Parse Failure")) {
+                    int indexError = errorMessage.lastIndexOf("Parse Failure");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("SearchParseException")) {
+                    int indexError = errorMessage.lastIndexOf("SearchParseException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else {
+                    xMessage = result.getErrorMessage();
+                }
+                throw new IllegalStateException(xMessage);
+            }
+        }
+
+        return result;
+    }
+
+
+    @Override
+    public JestResult search(PolicyIndexType type, String text,
+            Map<String, String> filter_s)
+                    throws IllegalStateException, IllegalArgumentException {
+        if (LOGGER.isTraceEnabled()){
+            LOGGER.trace("ENTER: " + text);
+        }
+
+        if (filter_s == null || filter_s.size() == 0) {
+            return search(type, text);
+        }
+
+        if(!isAlphaNumeric(text)){
+            throw new IllegalArgumentException("Search must be alpha numeric");
+        }
+
+        String matches_s = "";
+        matches_s = "{\n" +
+                "    \"size\" : "+ ElkConnectorImpl.QUERY_MAXRECORDS + ",\n" +
+                "    \"query\": {\n" +
+                "        \"bool\" : {\n" +
+                "            \"must\" : [";
+
+        String match_params = "";
+        boolean first = true;
+        for(Entry<String, String> entry : filter_s.entrySet()){
+            String key = entry.getKey();
+            String value = entry.getValue();
+            if(first){
+                match_params = "\"match\" : {\""+key+"\" : \""+value+"\" }},";
+                first = false;
+            }else{
+                match_params = match_params + "{\"match\" : { \""+key+"\" : \""+value+"\" } },";
+            }
+        }
+        if(match_params.endsWith(",")){
+            match_params = match_params.substring(0, match_params.length()-2);
+        }
+
+        matches_s = matches_s + "{\n" + match_params + "\n}" ;
+
+        boolean query = false;
+        String query_String = "";
+        if(text != null){
+            query = true;
+            query_String = "{\n \"query_string\" : {\n \"query\" : \"*"+text+"*\"\n} \n}";
+        }
+
+        if(query){
+            matches_s = matches_s + "," +  query_String + "]\n}\n}\n}";
+        }else{
+            matches_s = matches_s + "]\n}\n}\n}";
+        }
+
+        Builder searchBuilder = new Search.Builder(matches_s).addIndex(ELK_INDEX_POLICY);
+
+        if (type == null || type == PolicyIndexType.all) {
+            for (PolicyIndexType pT: PolicyIndexType.values()) {
+                if (pT != PolicyIndexType.all) {
+                    searchBuilder.addType(pT.toString());
+                }
+            }
+        } else {
+            searchBuilder.addType(type.toString());
+        }
+
+        Search search = searchBuilder.build();
+
+        JestResult result;
+        try {
+            result = jestClient.execute(search);
+        } catch (IOException ioe) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ":" +
+                    search + ": " + ioe.getMessage(), ioe);
+            throw new IllegalStateException(ioe);
+        }
+
+        if (result.isSucceeded()) {
+            if (LOGGER.isInfoEnabled()){
+                LOGGER.info("OK:" + result.getResponseCode() + ":" + search + ": " +
+                        result.getPathToResult() + ":" + System.lineSeparator() +
+                        result.getJsonString());
+            }
+        } else {
+            /* Unsuccessful search */
+            if (LOGGER.isWarnEnabled()){
+                LOGGER.warn(XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" +
+                        result.getResponseCode() + ": " +
+                        search.getURI() + ":" +
+                        result.getPathToResult() + ":" +
+                        result.getJsonString() + ":" +
+                        result.getErrorMessage());
+            }
+
+            String errorMessage = result.getErrorMessage();
+            if (errorMessage != null && !errorMessage.isEmpty()) {
+                String xMessage = errorMessage;
+                if (errorMessage.contains("TokenMgrError")) {
+                    int indexError = errorMessage.lastIndexOf("TokenMgrError");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("QueryParsingException")) {
+                    int indexError = errorMessage.lastIndexOf("QueryParsingException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("JsonParseException")) {
+                    int indexError = errorMessage.lastIndexOf("JsonParseException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("Parse Failure")) {
+                    int indexError = errorMessage.lastIndexOf("Parse Failure");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else if (errorMessage.contains("SearchParseException")) {
+                    int indexError = errorMessage.lastIndexOf("SearchParseException");
+                    xMessage = "Invalid Search Expression.  Details: " + errorMessage.substring(indexError);
+                } else {
+                    xMessage = result.getErrorMessage();
+                }
+                throw new IllegalStateException(xMessage);
+            }
+        }
+
+        return result;
+    }
+
+    public boolean put(PolicyRestAdapter policyData)
+            throws IOException, IllegalStateException {
+        if (LOGGER.isTraceEnabled()) LOGGER.trace("ENTER");
+
+        PolicyIndexType indexType;
+        try {
+            String policyName = policyData.getNewFileName();
+            if(policyName.contains("Config_")){
+                policyName = policyName.replace(".Config_", ":Config_");
+            }else if(policyName.contains("Action_")){
+                policyName = policyName.replace(".Action_", ":Action_");
+            }else if(policyName.contains("Decision_")){
+                policyName = policyName.replace(".Decision_", ":Decision_");
+            }
+
+            String[] splitPolicyName = policyName.split(":");
+            indexType = ElkConnector.toPolicyIndexType(splitPolicyName[1]);
+        } catch (IllegalArgumentException e) {
+            LOGGER.error(e);
+            throw new IllegalStateException("ELK: Index: " + ELK_INDEX_POLICY + e.getMessage());
+        }
+        PolicyElasticData elasticData = new PolicyElasticData(policyData);
+        JSONObject jsonObj = new JSONObject(elasticData);
+        Index elkPut = new Index.Builder(jsonObj.toString()).
+                index(ELK_INDEX_POLICY).
+                type(indexType.name()).
+                id(elasticData.getPolicyName()).
+                refresh(true).
+                build();
+
+        JestResult result = jestClient.execute(elkPut);
+
+        if (result.isSucceeded()) {
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("ElkConnector: OK: PUT operation of " + "->"  + ": " +
+                        "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
+                        result.getPathToResult() + "]" + System.lineSeparator() +
+                        result.getJsonString());
+        } else {
+            if (LOGGER.isWarnEnabled())
+                LOGGER.warn("ElkConnector: FAILURE: PUT operation of "+ "->" + ": " +
+                        "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
+                        result.getPathToResult() + "]" + System.lineSeparator() +
+                        result.getJsonString());
+
+        }
+
+        return result.isSucceeded();
+    }
+
+    @Override
+    public boolean delete(PolicyRestAdapter policyData) throws IllegalStateException  {
+        PolicyIndexType indexType = null;
+        JestResult result;
+        try {
+            String policyName = policyData.getNewFileName();
+            if(policyName.contains("Config_")){
+                policyName = policyName.replace(".Config_", ":Config_");
+            }else if(policyName.contains("Action_")){
+                policyName = policyName.replace(".Action_", ":Action_");
+            }else if(policyName.contains("Decision_")){
+                policyName = policyName.replace(".Decision_", ":Decision_");
+            }
+
+            String[] splitPolicyName = policyName.split(":");
+            indexType = ElkConnector.toPolicyIndexType(splitPolicyName[1]);
+            if (!isType(indexType)) {
+                throw new IllegalStateException("ELK: Index: " + ELK_INDEX_POLICY +
+                        " Type: " + indexType +
+                        " is not configured");
+            }
+            PolicyElasticData elasticData = new PolicyElasticData(policyData);
+            Delete deleteRequest = new Delete.Builder(elasticData.getPolicyName()).index(ELK_INDEX_POLICY).
+                    type(indexType.name()).build();
+            result = jestClient.execute(deleteRequest);
+        } catch (IllegalArgumentException | IOException e) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + ": delete:" +
+                    indexType +  ": null" + ":" + policyData.getNewFileName() + ": " +
+                    e.getMessage(), e);
+            throw new IllegalStateException(e);
+        }
+
+        if (result.isSucceeded()) {
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("OK: DELETE operation of " + indexType + ":" + policyData.getNewFileName() + ": " +
+                        "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
+                        result.getPathToResult() + "]" + System.lineSeparator() +
+                        result.getJsonString());
+        } else {
+            if (LOGGER.isWarnEnabled())
+                LOGGER.warn("FAILURE: DELETE operation of " + indexType + ":" + policyData.getNewFileName() + ": " +
+                        "success=" + result.isSucceeded() + "[" + result.getResponseCode() + ":" +
+                        result.getPathToResult() + "]" + System.lineSeparator() +
+                        result.getJsonString());
+        }
+
+        return result.isSucceeded();
+    }
+
+    @Override
+    public boolean update(PolicyRestAdapter policyData) throws IllegalStateException  {
+        if (LOGGER.isDebugEnabled()){
+            LOGGER.debug("ENTER");
+        }
+        try {
+            boolean success = put(policyData);
+            return success;
+        } catch (Exception e) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_UNKNOWN + ":" + "cannot test and update", e);
+            throw new IllegalStateException(e);
+        }
+    }
 }
index e56e82c..988640c 100644 (file)
@@ -28,596 +28,596 @@ import org.onap.policy.rest.adapter.PolicyRestAdapter;
 import org.onap.policy.rest.adapter.YAMLParams;
 
 public class PolicyElasticData {
-       
-       private String scope;
-       private String policyType;
-       private String configPolicyType;
-       private String configBodyData;
-       private String policyName;
-       private String policyDescription;
-       private String onapName;
-       private String configName;
-       private String configType;
-       private String jsonBody;
-       private Object jsonBodyData;
-       
-       private Map<?, ?> serviceTypePolicyName;
-       private Map<?, ?> verticaMetrics;
+
+    private String scope;
+    private String policyType;
+    private String configPolicyType;
+    private String configBodyData;
+    private String policyName;
+    private String policyDescription;
+    private String onapName;
+    private String configName;
+    private String configType;
+    private String jsonBody;
+    private Object jsonBodyData;
+
+    private Map<?, ?> serviceTypePolicyName;
+    private Map<?, ?> verticaMetrics;
     private Map<?, ?> description;
     private Map<?, ?> attributeFields;
 
-       //Safe Policy
-       private String policyScope;
-       private String providerComboBox;
-       private String riskType;
-       private String riskLevel;
-       private String guard;
-       private String ttlDate;
-       private  Map<String,String> matching; 
-
-       private List<Object> triggerSignatures;
-       private List<Object> symptomSignatures;
-       private String logicalConnector;
-       private String policyStatus;
-       public String gocServerScope;
-       private String supressionType;
-
-       //MicroSerice
-       private String serviceType;
-       private String uuid;
-       private String location;
-       private String priority;
-       private String msLocation;
-
-       //BRMS Policies
-       private String ruleName;
-       private Map<String,String> brmsParamBody;
-       private String brmsController;
-       private List<String> brmsDependency;
-       private LinkedHashMap<?, ?>  ruleData;
-       private LinkedHashMap<?,?>   ruleListData;
-       private Map<String,String> drlRuleAndUIParams;
-
-       //ClosedLoop
-       private String clearTimeOut;
-       private String trapMaxAge;
-       private String verificationclearTimeOut;
-       public Map<String , String> dynamicLayoutMap;
-
-       //FireWall
-       private String fwPolicyType;
-       private List<Object> fwattributes;
-       private String parentForChild;
-       private String securityZone;
-
-       //Action & Decision
-       private String ruleCombiningAlgId;
-       private Map<String,String> dynamicFieldConfigAttributes;
-       private Map<String,String> dynamicSettingsMap;
-       private Map<String,String> dropDownMap;
-       private String actionPerformer;
-       private String actionAttribute;
-       private List<String> dynamicRuleAlgorithmLabels;
-       private List<String> dynamicRuleAlgorithmCombo;
-       private List<String> dynamicRuleAlgorithmField1;
-       private List<String> dynamicRuleAlgorithmField2;
-       private List<Object> dynamicVariableList;
-       private List<String> dataTypeList;
-       private String actionAttributeValue;
-       private String ruleProvider;
-       private String actionBody;
-       private String actionDictHeader;
-       private String actionDictType;
-       private String actionDictUrl;
-       private String actionDictMethod;
-       private YAMLParams yamlparams; 
-
-       public PolicyElasticData(PolicyRestAdapter policyData) {
-               this.scope = policyData.getDomainDir();
-               this.policyType = policyData.getPolicyType();
-               this.configPolicyType = policyData.getConfigPolicyType();
-               this.configBodyData = policyData.getConfigBodyData();
-               this.policyName  = policyData.getNewFileName();
-               this.policyDescription  = policyData.getPolicyDescription();
-               this.onapName = policyData.getOnapName();
-               this.configName = policyData.getConfigName();
-               this.configType = policyData.getConfigType();
-               this.jsonBody = policyData.getJsonBody();
-               if(configPolicyType.startsWith("ClosedLoop")){
-                       this.jsonBodyData = jsonBody; 
-               }else{
-                       this.jsonBodyData = policyData.getJsonBodyData(); 
-               }
-               
-               this.serviceTypePolicyName = policyData.getServiceTypePolicyName();
-               this.verticaMetrics = policyData.getVerticaMetrics();
-               this.description = policyData.getDescription();
-               this.attributeFields = policyData.getAttributeFields();
-
-               //Safe Policy
-               this.policyScope = policyData.getPolicyScope();
-               this.providerComboBox = policyData.getProviderComboBox();
-               this.riskType = policyData.getRiskType();
-               this.riskLevel = policyData.getRiskLevel();
-               this.guard  = policyData.getGuard();
-               this.ttlDate = policyData.getTtlDate();
-               this.matching = policyData.getMatching(); 
-
-               this.triggerSignatures = policyData.getTriggerSignatures();
-               this.symptomSignatures = policyData.getSymptomSignatures();
-               this.logicalConnector = policyData.getLogicalConnector();
-               this.policyStatus = policyData.getPolicyStatus();
-               this.gocServerScope = policyData.getGocServerScope();
-               this.supressionType = policyData.getSupressionType();
-
-               //MicroSerice
-               this.serviceType = policyData.getServiceType();
-               this.uuid = policyData.getUuid();
-               this.location = policyData.getLocation();
-               this.priority = policyData.getPriority();
-               this.msLocation = policyData.getMsLocation();
-
-               //BRMS Policies
-               this.ruleName = policyData.getRuleName();
-               this.brmsParamBody = policyData.getBrmsParamBody();
-               this.brmsController = policyData.getBrmsController();
-               this.brmsDependency = policyData.getBrmsDependency();
-               this.ruleData = policyData.getRuleData();
-               this.ruleListData = policyData.getRuleListData();
-               this.drlRuleAndUIParams = policyData.getDrlRuleAndUIParams();
-
-               //ClosedLoop
-               this.clearTimeOut = policyData.getClearTimeOut();
-               this.trapMaxAge = policyData.getTrapMaxAge();
-               this.verificationclearTimeOut = policyData.getVerificationclearTimeOut();
-               this.dynamicLayoutMap = policyData.getDynamicLayoutMap();
-
-               //FireWall
-               this.fwPolicyType = policyData.getFwPolicyType();
-               this.fwattributes = policyData.getFwattributes();
-               this.parentForChild = policyData.getParentForChild();
-               this.securityZone = policyData.getSecurityZone();
-
-               //Action & Decision
-               this.ruleCombiningAlgId = policyData.getRuleCombiningAlgId();
-               this.dynamicFieldConfigAttributes = policyData.getDynamicFieldConfigAttributes();
-               this.dynamicSettingsMap = policyData.getDynamicSettingsMap();
-               this.dropDownMap = policyData.getDropDownMap();
-               this.actionPerformer = policyData.getActionPerformer();
-               this.actionAttribute = policyData.getActionAttribute();
-               this.dynamicRuleAlgorithmLabels = policyData.getDynamicRuleAlgorithmLabels();
-               this.dynamicRuleAlgorithmCombo = policyData.getDynamicRuleAlgorithmCombo();
-               this.dynamicRuleAlgorithmField1 = policyData.getDynamicRuleAlgorithmField1();
-               this.dynamicRuleAlgorithmField2 = policyData.getDynamicRuleAlgorithmField2();
-               this.dynamicVariableList = policyData.getDynamicVariableList();
-               this.dataTypeList = policyData.getDataTypeList();
-               this.actionAttributeValue = policyData.getActionAttributeValue();
-               this.ruleProvider = policyData.getRuleProvider();
-               this.actionBody = policyData.getActionBody();
-               this.actionDictHeader = policyData.getActionDictHeader();
-               this.actionDictType = policyData.getActionDictType();
-               this.actionDictUrl = policyData.getActionDictUrl();
-               this.actionDictMethod = policyData.getActionDictMethod();
-               this.yamlparams = policyData.getYamlparams();
-       }
-       
-       public String getScope() {
-               return scope;
-       }
-       public void setScope(String scope) {
-               this.scope = scope;
-       }
-       public String getPolicyType() {
-               return policyType;
-       }
-       public void setPolicyType(String policyType) {
-               this.policyType = policyType;
-       }
-       public String getConfigPolicyType() {
-               return configPolicyType;
-       }
-       public void setConfigPolicyType(String configPolicyType) {
-               this.configPolicyType = configPolicyType;
-       }
-       public String getConfigBodyData() {
-               return configBodyData;
-       }
-
-       public void setConfigBodyData(String configBodyData) {
-               this.configBodyData = configBodyData;
-       }
-       public String getPolicyName() {
-               return policyName;
-       }
-       public void setPolicyName(String policyName) {
-               this.policyName = policyName;
-       }
-       public String getPolicyDescription() {
-               return policyDescription;
-       }
-       public void setPolicyDescription(String policyDescription) {
-               this.policyDescription = policyDescription;
-       }
-       public String getOnapName() {
-               return onapName;
-       }
-       public void setOnapName(String onapName) {
-               this.onapName = onapName;
-       }
-       public String getConfigName() {
-               return configName;
-       }
-       public void setConfigName(String configName) {
-               this.configName = configName;
-       }
-       public String getConfigType() {
-               return configType;
-       }
-       public void setConfigType(String configType) {
-               this.configType = configType;
-       }
-       public String getJsonBody() {
-               return jsonBody;
-       }
-       public void setJsonBody(String jsonBody) {
-               this.jsonBody = jsonBody;
-       }
-       public Map<?, ?> getServiceTypePolicyName() {
-               return serviceTypePolicyName;
-       }
-
-       public void setServiceTypePolicyName(LinkedHashMap<?, ?> serviceTypePolicyName) {
-               this.serviceTypePolicyName = serviceTypePolicyName;
-       }
-
-       public Map<?, ?> getVerticaMetrics() {
-               return verticaMetrics;
-       }
-
-       public void setVerticaMetrics(LinkedHashMap<?, ?> verticaMetrics) {
-               this.verticaMetrics = verticaMetrics;
-       }
-
-       public Map<?, ?> getDescription() {
-               return description;
-       }
-
-       public void setDescription(Map<?, ?> description) {
-               this.description = description;
-       }
-
-       public Map<?, ?> getAttributeFields() {
-               return attributeFields;
-       }
-
-       public void setAttributeFields(LinkedHashMap<?, ?> attributeFields) {
-               this.attributeFields = attributeFields;
-       }
-       public String getPolicyScope() {
-               return policyScope;
-       }
-       public void setPolicyScope(String policyScope) {
-               this.policyScope = policyScope;
-       }
-       public String getProviderComboBox() {
-               return providerComboBox;
-       }
-       public void setProviderComboBox(String providerComboBox) {
-               this.providerComboBox = providerComboBox;
-       }
-       public String getRiskType() {
-               return riskType;
-       }
-       public void setRiskType(String riskType) {
-               this.riskType = riskType;
-       }
-       public String getRiskLevel() {
-               return riskLevel;
-       }
-       public void setRiskLevel(String riskLevel) {
-               this.riskLevel = riskLevel;
-       }
-       public String getGuard() {
-               return guard;
-       }
-       public void setGuard(String guard) {
-               this.guard = guard;
-       }
-       public String getTtlDate() {
-               return ttlDate;
-       }
-       public void setTtlDate(String ttlDate) {
-               this.ttlDate = ttlDate;
-       }
-       public Map<String, String> getMatching() {
-               return matching;
-       }
-       public void setMatching(Map<String, String> matching) {
-               this.matching = matching;
-       }
-       public List<Object> getTriggerSignatures() {
-               return triggerSignatures;
-       }
-       public void setTriggerSignatures(ArrayList<Object> triggerSignatures) {
-               this.triggerSignatures = triggerSignatures;
-       }
-       public List<Object> getSymptomSignatures() {
-               return symptomSignatures;
-       }
-       public void setSymptomSignatures(ArrayList<Object> symptomSignatures) {
-               this.symptomSignatures = symptomSignatures;
-       }
-       public String getLogicalConnector() {
-               return logicalConnector;
-       }
-       public void setLogicalConnector(String logicalConnector) {
-               this.logicalConnector = logicalConnector;
-       }
-       public String getPolicyStatus() {
-               return policyStatus;
-       }
-       public void setPolicyStatus(String policyStatus) {
-               this.policyStatus = policyStatus;
-       }
-       public String getGocServerScope() {
-               return gocServerScope;
-       }
-       public void setGocServerScope(String gocServerScope) {
-               this.gocServerScope = gocServerScope;
-       }
-       public String getSupressionType() {
-               return supressionType;
-       }
-       public void setSupressionType(String supressionType) {
-               this.supressionType = supressionType;
-       }
-       public String getServiceType() {
-               return serviceType;
-       }
-       public void setServiceType(String serviceType) {
-               this.serviceType = serviceType;
-       }
-       public String getUuid() {
-               return uuid;
-       }
-       public void setUuid(String uuid) {
-               this.uuid = uuid;
-       }
-       public String getLocation() {
-               return location;
-       }
-       public void setLocation(String location) {
-               this.location = location;
-       }
-       public String getPriority() {
-               return priority;
-       }
-       public void setPriority(String priority) {
-               this.priority = priority;
-       }
-       public String getMsLocation() {
-               return msLocation;
-       }
-       public void setMsLocation(String msLocation) {
-               this.msLocation = msLocation;
-       }
-       public String getRuleName() {
-               return ruleName;
-       }
-       public void setRuleName(String ruleName) {
-               this.ruleName = ruleName;
-       }
-       public Map<String, String> getBrmsParamBody() {
-               return brmsParamBody;
-       }
-       public void setBrmsParamBody(Map<String, String> brmsParamBody) {
-               this.brmsParamBody = brmsParamBody;
-       }
-       public String getBrmsController() {
-               return brmsController;
-       }
-       public void setBrmsController(String brmsController) {
-               this.brmsController = brmsController;
-       }
-       public List<String> getBrmsDependency() {
-               return brmsDependency;
-       }
-       public void setBrmsDependency(List<String> brmsDependency) {
-               this.brmsDependency = brmsDependency;
-       }
-       public Map<?, ?> getRuleData() {
-               return ruleData;
-       }
-       public void setRuleData(LinkedHashMap<?, ?> ruleData) {
-               this.ruleData = ruleData;
-       }
-       public Map<?, ?> getRuleListData() {
-               return ruleListData;
-       }
-       public void setRuleListData(LinkedHashMap<?, ?> ruleListData) {
-               this.ruleListData = ruleListData;
-       }
-       public Map<String, String> getDrlRuleAndUIParams() {
-               return drlRuleAndUIParams;
-       }
-       public void setDrlRuleAndUIParams(Map<String, String> drlRuleAndUIParams) {
-               this.drlRuleAndUIParams = drlRuleAndUIParams;
-       }
-       public String getClearTimeOut() {
-               return clearTimeOut;
-       }
-       public void setClearTimeOut(String clearTimeOut) {
-               this.clearTimeOut = clearTimeOut;
-       }
-       public String getTrapMaxAge() {
-               return trapMaxAge;
-       }
-       public void setTrapMaxAge(String trapMaxAge) {
-               this.trapMaxAge = trapMaxAge;
-       }
-       public String getVerificationclearTimeOut() {
-               return verificationclearTimeOut;
-       }
-       public void setVerificationclearTimeOut(String verificationclearTimeOut) {
-               this.verificationclearTimeOut = verificationclearTimeOut;
-       }
-       public Map<String, String> getDynamicLayoutMap() {
-               return dynamicLayoutMap;
-       }
-       public void setDynamicLayoutMap(Map<String, String> dynamicLayoutMap) {
-               this.dynamicLayoutMap = dynamicLayoutMap;
-       }
-       public String getFwPolicyType() {
-               return fwPolicyType;
-       }
-       public void setFwPolicyType(String fwPolicyType) {
-               this.fwPolicyType = fwPolicyType;
-       }
-       public List<Object> getFwattributes() {
-               return fwattributes;
-       }
-       public void setFwattributes(ArrayList<Object> fwattributes) {
-               this.fwattributes = fwattributes;
-       }
-       public String getParentForChild() {
-               return parentForChild;
-       }
-       public void setParentForChild(String parentForChild) {
-               this.parentForChild = parentForChild;
-       }
-       public String getSecurityZone() {
-               return securityZone;
-       }
-       public void setSecurityZone(String securityZone) {
-               this.securityZone = securityZone;
-       }
-       public String getRuleCombiningAlgId() {
-               return ruleCombiningAlgId;
-       }
-       public void setRuleCombiningAlgId(String ruleCombiningAlgId) {
-               this.ruleCombiningAlgId = ruleCombiningAlgId;
-       }
-       public Map<String, String> getDynamicFieldConfigAttributes() {
-               return dynamicFieldConfigAttributes;
-       }
-       public void setDynamicFieldConfigAttributes(Map<String, String> dynamicFieldConfigAttributes) {
-               this.dynamicFieldConfigAttributes = dynamicFieldConfigAttributes;
-       }
-       public Map<String, String> getDynamicSettingsMap() {
-               return dynamicSettingsMap;
-       }
-       public void setDynamicSettingsMap(Map<String, String> dynamicSettingsMap) {
-               this.dynamicSettingsMap = dynamicSettingsMap;
-       }
-       public Map<String, String> getDropDownMap() {
-               return dropDownMap;
-       }
-       public void setDropDownMap(Map<String, String> dropDownMap) {
-               this.dropDownMap = dropDownMap;
-       }
-       public String getActionPerformer() {
-               return actionPerformer;
-       }
-       public void setActionPerformer(String actionPerformer) {
-               this.actionPerformer = actionPerformer;
-       }
-       public String getActionAttribute() {
-               return actionAttribute;
-       }
-       public void setActionAttribute(String actionAttribute) {
-               this.actionAttribute = actionAttribute;
-       }
-       public List<String> getDynamicRuleAlgorithmLabels() {
-               return dynamicRuleAlgorithmLabels;
-       }
-       public void setDynamicRuleAlgorithmLabels(List<String> dynamicRuleAlgorithmLabels) {
-               this.dynamicRuleAlgorithmLabels = dynamicRuleAlgorithmLabels;
-       }
-       public List<String> getDynamicRuleAlgorithmCombo() {
-               return dynamicRuleAlgorithmCombo;
-       }
-       public void setDynamicRuleAlgorithmCombo(List<String> dynamicRuleAlgorithmCombo) {
-               this.dynamicRuleAlgorithmCombo = dynamicRuleAlgorithmCombo;
-       }
-       public List<String> getDynamicRuleAlgorithmField1() {
-               return dynamicRuleAlgorithmField1;
-       }
-       public void setDynamicRuleAlgorithmField1(List<String> dynamicRuleAlgorithmField1) {
-               this.dynamicRuleAlgorithmField1 = dynamicRuleAlgorithmField1;
-       }
-       public List<String> getDynamicRuleAlgorithmField2() {
-               return dynamicRuleAlgorithmField2;
-       }
-       public void setDynamicRuleAlgorithmField2(List<String> dynamicRuleAlgorithmField2) {
-               this.dynamicRuleAlgorithmField2 = dynamicRuleAlgorithmField2;
-       }
-       public List<Object> getDynamicVariableList() {
-               return dynamicVariableList;
-       }
-       public void setDynamicVariableList(List<Object> dynamicVariableList) {
-               this.dynamicVariableList = dynamicVariableList;
-       }
-       public List<String> getDataTypeList() {
-               return dataTypeList;
-       }
-       public void setDataTypeList(List<String> dataTypeList) {
-               this.dataTypeList = dataTypeList;
-       }
-       public String getActionAttributeValue() {
-               return actionAttributeValue;
-       }
-       public void setActionAttributeValue(String actionAttributeValue) {
-               this.actionAttributeValue = actionAttributeValue;
-       }
-       public String getRuleProvider() {
-               return ruleProvider;
-       }
-       public void setRuleProvider(String ruleProvider) {
-               this.ruleProvider = ruleProvider;
-       }
-       public String getActionBody() {
-               return actionBody;
-       }
-       public void setActionBody(String actionBody) {
-               this.actionBody = actionBody;
-       }
-       public String getActionDictHeader() {
-               return actionDictHeader;
-       }
-       public void setActionDictHeader(String actionDictHeader) {
-               this.actionDictHeader = actionDictHeader;
-       }
-       public String getActionDictType() {
-               return actionDictType;
-       }
-       public void setActionDictType(String actionDictType) {
-               this.actionDictType = actionDictType;
-       }
-       public String getActionDictUrl() {
-               return actionDictUrl;
-       }
-       public void setActionDictUrl(String actionDictUrl) {
-               this.actionDictUrl = actionDictUrl;
-       }
-       public String getActionDictMethod() {
-               return actionDictMethod;
-       }
-       public void setActionDictMethod(String actionDictMethod) {
-               this.actionDictMethod = actionDictMethod;
-       }
-       public YAMLParams getYamlparams() {
-               return yamlparams;
-       }
-
-       public void setYamlparams(YAMLParams yamlparams) {
-               this.yamlparams = yamlparams;
-       }
-
-       public Object getJsonBodyData() {
-               return jsonBodyData;
-       }
-
-       public void setJsonBodyData(Object jsonBodyData) {
-               this.jsonBodyData = jsonBodyData;
-       }
+    //Safe Policy
+    private String policyScope;
+    private String providerComboBox;
+    private String riskType;
+    private String riskLevel;
+    private String guard;
+    private String ttlDate;
+    private  Map<String,String> matching;
+
+    private List<Object> triggerSignatures;
+    private List<Object> symptomSignatures;
+    private String logicalConnector;
+    private String policyStatus;
+    public String gocServerScope;
+    private String supressionType;
+
+    //MicroSerice
+    private String serviceType;
+    private String uuid;
+    private String location;
+    private String priority;
+    private String msLocation;
+
+    //BRMS Policies
+    private String ruleName;
+    private Map<String,String> brmsParamBody;
+    private String brmsController;
+    private List<String> brmsDependency;
+    private LinkedHashMap<?, ?>  ruleData;
+    private LinkedHashMap<?,?>   ruleListData;
+    private Map<String,String> drlRuleAndUIParams;
+
+    //ClosedLoop
+    private String clearTimeOut;
+    private String trapMaxAge;
+    private String verificationclearTimeOut;
+    public Map<String , String> dynamicLayoutMap;
+
+    //FireWall
+    private String fwPolicyType;
+    private List<Object> fwattributes;
+    private String parentForChild;
+    private String securityZone;
+
+    //Action & Decision
+    private String ruleCombiningAlgId;
+    private Map<String,String> dynamicFieldConfigAttributes;
+    private Map<String,String> dynamicSettingsMap;
+    private Map<String,String> dropDownMap;
+    private String actionPerformer;
+    private String actionAttribute;
+    private List<String> dynamicRuleAlgorithmLabels;
+    private List<String> dynamicRuleAlgorithmCombo;
+    private List<String> dynamicRuleAlgorithmField1;
+    private List<String> dynamicRuleAlgorithmField2;
+    private List<Object> dynamicVariableList;
+    private List<String> dataTypeList;
+    private String actionAttributeValue;
+    private String ruleProvider;
+    private String actionBody;
+    private String actionDictHeader;
+    private String actionDictType;
+    private String actionDictUrl;
+    private String actionDictMethod;
+    private YAMLParams yamlparams;
+
+    public PolicyElasticData(PolicyRestAdapter policyData) {
+        this.scope = policyData.getDomainDir();
+        this.policyType = policyData.getPolicyType();
+        this.configPolicyType = policyData.getConfigPolicyType();
+        this.configBodyData = policyData.getConfigBodyData();
+        this.policyName  = policyData.getNewFileName();
+        this.policyDescription  = policyData.getPolicyDescription();
+        this.onapName = policyData.getOnapName();
+        this.configName = policyData.getConfigName();
+        this.configType = policyData.getConfigType();
+        this.jsonBody = policyData.getJsonBody();
+        if(configPolicyType.startsWith("ClosedLoop")){
+            this.jsonBodyData = jsonBody;
+        }else{
+            this.jsonBodyData = policyData.getJsonBodyData();
+        }
+
+        this.serviceTypePolicyName = policyData.getServiceTypePolicyName();
+        this.verticaMetrics = policyData.getVerticaMetrics();
+        this.description = policyData.getDescription();
+        this.attributeFields = policyData.getAttributeFields();
+
+        //Safe Policy
+        this.policyScope = policyData.getPolicyScope();
+        this.providerComboBox = policyData.getProviderComboBox();
+        this.riskType = policyData.getRiskType();
+        this.riskLevel = policyData.getRiskLevel();
+        this.guard  = policyData.getGuard();
+        this.ttlDate = policyData.getTtlDate();
+        this.matching = policyData.getMatching();
+
+        this.triggerSignatures = policyData.getTriggerSignatures();
+        this.symptomSignatures = policyData.getSymptomSignatures();
+        this.logicalConnector = policyData.getLogicalConnector();
+        this.policyStatus = policyData.getPolicyStatus();
+        this.gocServerScope = policyData.getGocServerScope();
+        this.supressionType = policyData.getSupressionType();
+
+        //MicroSerice
+        this.serviceType = policyData.getServiceType();
+        this.uuid = policyData.getUuid();
+        this.location = policyData.getLocation();
+        this.priority = policyData.getPriority();
+        this.msLocation = policyData.getMsLocation();
+
+        //BRMS Policies
+        this.ruleName = policyData.getRuleName();
+        this.brmsParamBody = policyData.getBrmsParamBody();
+        this.brmsController = policyData.getBrmsController();
+        this.brmsDependency = policyData.getBrmsDependency();
+        this.ruleData = policyData.getRuleData();
+        this.ruleListData = policyData.getRuleListData();
+        this.drlRuleAndUIParams = policyData.getDrlRuleAndUIParams();
+
+        //ClosedLoop
+        this.clearTimeOut = policyData.getClearTimeOut();
+        this.trapMaxAge = policyData.getTrapMaxAge();
+        this.verificationclearTimeOut = policyData.getVerificationclearTimeOut();
+        this.dynamicLayoutMap = policyData.getDynamicLayoutMap();
+
+        //FireWall
+        this.fwPolicyType = policyData.getFwPolicyType();
+        this.fwattributes = policyData.getFwattributes();
+        this.parentForChild = policyData.getParentForChild();
+        this.securityZone = policyData.getSecurityZone();
+
+        //Action & Decision
+        this.ruleCombiningAlgId = policyData.getRuleCombiningAlgId();
+        this.dynamicFieldConfigAttributes = policyData.getDynamicFieldConfigAttributes();
+        this.dynamicSettingsMap = policyData.getDynamicSettingsMap();
+        this.dropDownMap = policyData.getDropDownMap();
+        this.actionPerformer = policyData.getActionPerformer();
+        this.actionAttribute = policyData.getActionAttribute();
+        this.dynamicRuleAlgorithmLabels = policyData.getDynamicRuleAlgorithmLabels();
+        this.dynamicRuleAlgorithmCombo = policyData.getDynamicRuleAlgorithmCombo();
+        this.dynamicRuleAlgorithmField1 = policyData.getDynamicRuleAlgorithmField1();
+        this.dynamicRuleAlgorithmField2 = policyData.getDynamicRuleAlgorithmField2();
+        this.dynamicVariableList = policyData.getDynamicVariableList();
+        this.dataTypeList = policyData.getDataTypeList();
+        this.actionAttributeValue = policyData.getActionAttributeValue();
+        this.ruleProvider = policyData.getRuleProvider();
+        this.actionBody = policyData.getActionBody();
+        this.actionDictHeader = policyData.getActionDictHeader();
+        this.actionDictType = policyData.getActionDictType();
+        this.actionDictUrl = policyData.getActionDictUrl();
+        this.actionDictMethod = policyData.getActionDictMethod();
+        this.yamlparams = policyData.getYamlparams();
+    }
+
+    public String getScope() {
+        return scope;
+    }
+    public void setScope(String scope) {
+        this.scope = scope;
+    }
+    public String getPolicyType() {
+        return policyType;
+    }
+    public void setPolicyType(String policyType) {
+        this.policyType = policyType;
+    }
+    public String getConfigPolicyType() {
+        return configPolicyType;
+    }
+    public void setConfigPolicyType(String configPolicyType) {
+        this.configPolicyType = configPolicyType;
+    }
+    public String getConfigBodyData() {
+        return configBodyData;
+    }
+
+    public void setConfigBodyData(String configBodyData) {
+        this.configBodyData = configBodyData;
+    }
+    public String getPolicyName() {
+        return policyName;
+    }
+    public void setPolicyName(String policyName) {
+        this.policyName = policyName;
+    }
+    public String getPolicyDescription() {
+        return policyDescription;
+    }
+    public void setPolicyDescription(String policyDescription) {
+        this.policyDescription = policyDescription;
+    }
+    public String getOnapName() {
+        return onapName;
+    }
+    public void setOnapName(String onapName) {
+        this.onapName = onapName;
+    }
+    public String getConfigName() {
+        return configName;
+    }
+    public void setConfigName(String configName) {
+        this.configName = configName;
+    }
+    public String getConfigType() {
+        return configType;
+    }
+    public void setConfigType(String configType) {
+        this.configType = configType;
+    }
+    public String getJsonBody() {
+        return jsonBody;
+    }
+    public void setJsonBody(String jsonBody) {
+        this.jsonBody = jsonBody;
+    }
+    public Map<?, ?> getServiceTypePolicyName() {
+        return serviceTypePolicyName;
+    }
+
+    public void setServiceTypePolicyName(LinkedHashMap<?, ?> serviceTypePolicyName) {
+        this.serviceTypePolicyName = serviceTypePolicyName;
+    }
+
+    public Map<?, ?> getVerticaMetrics() {
+        return verticaMetrics;
+    }
+
+    public void setVerticaMetrics(LinkedHashMap<?, ?> verticaMetrics) {
+        this.verticaMetrics = verticaMetrics;
+    }
+
+    public Map<?, ?> getDescription() {
+        return description;
+    }
+
+    public void setDescription(Map<?, ?> description) {
+        this.description = description;
+    }
+
+    public Map<?, ?> getAttributeFields() {
+        return attributeFields;
+    }
+
+    public void setAttributeFields(LinkedHashMap<?, ?> attributeFields) {
+        this.attributeFields = attributeFields;
+    }
+    public String getPolicyScope() {
+        return policyScope;
+    }
+    public void setPolicyScope(String policyScope) {
+        this.policyScope = policyScope;
+    }
+    public String getProviderComboBox() {
+        return providerComboBox;
+    }
+    public void setProviderComboBox(String providerComboBox) {
+        this.providerComboBox = providerComboBox;
+    }
+    public String getRiskType() {
+        return riskType;
+    }
+    public void setRiskType(String riskType) {
+        this.riskType = riskType;
+    }
+    public String getRiskLevel() {
+        return riskLevel;
+    }
+    public void setRiskLevel(String riskLevel) {
+        this.riskLevel = riskLevel;
+    }
+    public String getGuard() {
+        return guard;
+    }
+    public void setGuard(String guard) {
+        this.guard = guard;
+    }
+    public String getTtlDate() {
+        return ttlDate;
+    }
+    public void setTtlDate(String ttlDate) {
+        this.ttlDate = ttlDate;
+    }
+    public Map<String, String> getMatching() {
+        return matching;
+    }
+    public void setMatching(Map<String, String> matching) {
+        this.matching = matching;
+    }
+    public List<Object> getTriggerSignatures() {
+        return triggerSignatures;
+    }
+    public void setTriggerSignatures(ArrayList<Object> triggerSignatures) {
+        this.triggerSignatures = triggerSignatures;
+    }
+    public List<Object> getSymptomSignatures() {
+        return symptomSignatures;
+    }
+    public void setSymptomSignatures(ArrayList<Object> symptomSignatures) {
+        this.symptomSignatures = symptomSignatures;
+    }
+    public String getLogicalConnector() {
+        return logicalConnector;
+    }
+    public void setLogicalConnector(String logicalConnector) {
+        this.logicalConnector = logicalConnector;
+    }
+    public String getPolicyStatus() {
+        return policyStatus;
+    }
+    public void setPolicyStatus(String policyStatus) {
+        this.policyStatus = policyStatus;
+    }
+    public String getGocServerScope() {
+        return gocServerScope;
+    }
+    public void setGocServerScope(String gocServerScope) {
+        this.gocServerScope = gocServerScope;
+    }
+    public String getSupressionType() {
+        return supressionType;
+    }
+    public void setSupressionType(String supressionType) {
+        this.supressionType = supressionType;
+    }
+    public String getServiceType() {
+        return serviceType;
+    }
+    public void setServiceType(String serviceType) {
+        this.serviceType = serviceType;
+    }
+    public String getUuid() {
+        return uuid;
+    }
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+    public String getLocation() {
+        return location;
+    }
+    public void setLocation(String location) {
+        this.location = location;
+    }
+    public String getPriority() {
+        return priority;
+    }
+    public void setPriority(String priority) {
+        this.priority = priority;
+    }
+    public String getMsLocation() {
+        return msLocation;
+    }
+    public void setMsLocation(String msLocation) {
+        this.msLocation = msLocation;
+    }
+    public String getRuleName() {
+        return ruleName;
+    }
+    public void setRuleName(String ruleName) {
+        this.ruleName = ruleName;
+    }
+    public Map<String, String> getBrmsParamBody() {
+        return brmsParamBody;
+    }
+    public void setBrmsParamBody(Map<String, String> brmsParamBody) {
+        this.brmsParamBody = brmsParamBody;
+    }
+    public String getBrmsController() {
+        return brmsController;
+    }
+    public void setBrmsController(String brmsController) {
+        this.brmsController = brmsController;
+    }
+    public List<String> getBrmsDependency() {
+        return brmsDependency;
+    }
+    public void setBrmsDependency(List<String> brmsDependency) {
+        this.brmsDependency = brmsDependency;
+    }
+    public Map<?, ?> getRuleData() {
+        return ruleData;
+    }
+    public void setRuleData(LinkedHashMap<?, ?> ruleData) {
+        this.ruleData = ruleData;
+    }
+    public Map<?, ?> getRuleListData() {
+        return ruleListData;
+    }
+    public void setRuleListData(LinkedHashMap<?, ?> ruleListData) {
+        this.ruleListData = ruleListData;
+    }
+    public Map<String, String> getDrlRuleAndUIParams() {
+        return drlRuleAndUIParams;
+    }
+    public void setDrlRuleAndUIParams(Map<String, String> drlRuleAndUIParams) {
+        this.drlRuleAndUIParams = drlRuleAndUIParams;
+    }
+    public String getClearTimeOut() {
+        return clearTimeOut;
+    }
+    public void setClearTimeOut(String clearTimeOut) {
+        this.clearTimeOut = clearTimeOut;
+    }
+    public String getTrapMaxAge() {
+        return trapMaxAge;
+    }
+    public void setTrapMaxAge(String trapMaxAge) {
+        this.trapMaxAge = trapMaxAge;
+    }
+    public String getVerificationclearTimeOut() {
+        return verificationclearTimeOut;
+    }
+    public void setVerificationclearTimeOut(String verificationclearTimeOut) {
+        this.verificationclearTimeOut = verificationclearTimeOut;
+    }
+    public Map<String, String> getDynamicLayoutMap() {
+        return dynamicLayoutMap;
+    }
+    public void setDynamicLayoutMap(Map<String, String> dynamicLayoutMap) {
+        this.dynamicLayoutMap = dynamicLayoutMap;
+    }
+    public String getFwPolicyType() {
+        return fwPolicyType;
+    }
+    public void setFwPolicyType(String fwPolicyType) {
+        this.fwPolicyType = fwPolicyType;
+    }
+    public List<Object> getFwattributes() {
+        return fwattributes;
+    }
+    public void setFwattributes(ArrayList<Object> fwattributes) {
+        this.fwattributes = fwattributes;
+    }
+    public String getParentForChild() {
+        return parentForChild;
+    }
+    public void setParentForChild(String parentForChild) {
+        this.parentForChild = parentForChild;
+    }
+    public String getSecurityZone() {
+        return securityZone;
+    }
+    public void setSecurityZone(String securityZone) {
+        this.securityZone = securityZone;
+    }
+    public String getRuleCombiningAlgId() {
+        return ruleCombiningAlgId;
+    }
+    public void setRuleCombiningAlgId(String ruleCombiningAlgId) {
+        this.ruleCombiningAlgId = ruleCombiningAlgId;
+    }
+    public Map<String, String> getDynamicFieldConfigAttributes() {
+        return dynamicFieldConfigAttributes;
+    }
+    public void setDynamicFieldConfigAttributes(Map<String, String> dynamicFieldConfigAttributes) {
+        this.dynamicFieldConfigAttributes = dynamicFieldConfigAttributes;
+    }
+    public Map<String, String> getDynamicSettingsMap() {
+        return dynamicSettingsMap;
+    }
+    public void setDynamicSettingsMap(Map<String, String> dynamicSettingsMap) {
+        this.dynamicSettingsMap = dynamicSettingsMap;
+    }
+    public Map<String, String> getDropDownMap() {
+        return dropDownMap;
+    }
+    public void setDropDownMap(Map<String, String> dropDownMap) {
+        this.dropDownMap = dropDownMap;
+    }
+    public String getActionPerformer() {
+        return actionPerformer;
+    }
+    public void setActionPerformer(String actionPerformer) {
+        this.actionPerformer = actionPerformer;
+    }
+    public String getActionAttribute() {
+        return actionAttribute;
+    }
+    public void setActionAttribute(String actionAttribute) {
+        this.actionAttribute = actionAttribute;
+    }
+    public List<String> getDynamicRuleAlgorithmLabels() {
+        return dynamicRuleAlgorithmLabels;
+    }
+    public void setDynamicRuleAlgorithmLabels(List<String> dynamicRuleAlgorithmLabels) {
+        this.dynamicRuleAlgorithmLabels = dynamicRuleAlgorithmLabels;
+    }
+    public List<String> getDynamicRuleAlgorithmCombo() {
+        return dynamicRuleAlgorithmCombo;
+    }
+    public void setDynamicRuleAlgorithmCombo(List<String> dynamicRuleAlgorithmCombo) {
+        this.dynamicRuleAlgorithmCombo = dynamicRuleAlgorithmCombo;
+    }
+    public List<String> getDynamicRuleAlgorithmField1() {
+        return dynamicRuleAlgorithmField1;
+    }
+    public void setDynamicRuleAlgorithmField1(List<String> dynamicRuleAlgorithmField1) {
+        this.dynamicRuleAlgorithmField1 = dynamicRuleAlgorithmField1;
+    }
+    public List<String> getDynamicRuleAlgorithmField2() {
+        return dynamicRuleAlgorithmField2;
+    }
+    public void setDynamicRuleAlgorithmField2(List<String> dynamicRuleAlgorithmField2) {
+        this.dynamicRuleAlgorithmField2 = dynamicRuleAlgorithmField2;
+    }
+    public List<Object> getDynamicVariableList() {
+        return dynamicVariableList;
+    }
+    public void setDynamicVariableList(List<Object> dynamicVariableList) {
+        this.dynamicVariableList = dynamicVariableList;
+    }
+    public List<String> getDataTypeList() {
+        return dataTypeList;
+    }
+    public void setDataTypeList(List<String> dataTypeList) {
+        this.dataTypeList = dataTypeList;
+    }
+    public String getActionAttributeValue() {
+        return actionAttributeValue;
+    }
+    public void setActionAttributeValue(String actionAttributeValue) {
+        this.actionAttributeValue = actionAttributeValue;
+    }
+    public String getRuleProvider() {
+        return ruleProvider;
+    }
+    public void setRuleProvider(String ruleProvider) {
+        this.ruleProvider = ruleProvider;
+    }
+    public String getActionBody() {
+        return actionBody;
+    }
+    public void setActionBody(String actionBody) {
+        this.actionBody = actionBody;
+    }
+    public String getActionDictHeader() {
+        return actionDictHeader;
+    }
+    public void setActionDictHeader(String actionDictHeader) {
+        this.actionDictHeader = actionDictHeader;
+    }
+    public String getActionDictType() {
+        return actionDictType;
+    }
+    public void setActionDictType(String actionDictType) {
+        this.actionDictType = actionDictType;
+    }
+    public String getActionDictUrl() {
+        return actionDictUrl;
+    }
+    public void setActionDictUrl(String actionDictUrl) {
+        this.actionDictUrl = actionDictUrl;
+    }
+    public String getActionDictMethod() {
+        return actionDictMethod;
+    }
+    public void setActionDictMethod(String actionDictMethod) {
+        this.actionDictMethod = actionDictMethod;
+    }
+    public YAMLParams getYamlparams() {
+        return yamlparams;
+    }
+
+    public void setYamlparams(YAMLParams yamlparams) {
+        this.yamlparams = yamlparams;
+    }
+
+    public Object getJsonBodyData() {
+        return jsonBodyData;
+    }
+
+    public void setJsonBodyData(Object jsonBodyData) {
+        this.jsonBodyData = jsonBodyData;
+    }
 }
index a832009..50965bd 100644 (file)
@@ -77,388 +77,388 @@ import io.searchbox.client.JestResult;
 @RequestMapping({"/"})
 public class PolicyElasticSearchController{
 
-       private static final Logger LOGGER = FlexLogger.getLogger(PolicyElasticSearchController.class);
+    private static final Logger LOGGER = FlexLogger.getLogger(PolicyElasticSearchController.class);
 
-       enum Mode{
-               attribute, onapName, actionPolicy, brmsParam, pepOptions,
-               clSite, clService, clVarbind, clVnf, clVSCL, decision, 
-               fwTerm, msDCAEUUID, msConfigName, msLocation, msModels,
-               psGroupPolicy, safeRisk, safePolicyWarning
-       }
+    enum Mode{
+        attribute, onapName, actionPolicy, brmsParam, pepOptions,
+        clSite, clService, clVarbind, clVnf, clVSCL, decision,
+        fwTerm, msDCAEUUID, msConfigName, msLocation, msModels,
+        psGroupPolicy, safeRisk, safePolicyWarning
+    }
 
-       protected static final HashMap<String, String> name2jsonPath = new HashMap<String, String>() {
-               private static final long serialVersionUID = 1L;
-       };
-       
-       private static CommonClassDao commonClassDao;
-       private static final String action = "action";
-       private static final String config = "config";
-       private static final String decision = "decision";
-       private static final String pholder = "pholder";
-       private static final String jsonBodyData = "jsonBodyData";
-       private static final String success = "success";
+    protected static final HashMap<String, String> name2jsonPath = new HashMap<String, String>() {
+        private static final long serialVersionUID = 1L;
+    };
 
-       @Autowired
-       public PolicyElasticSearchController(CommonClassDao commonClassDao) {
-               PolicyElasticSearchController.commonClassDao = commonClassDao;
-       }
+    private static CommonClassDao commonClassDao;
+    private static final String action = "action";
+    private static final String config = "config";
+    private static final String decision = "decision";
+    private static final String pholder = "pholder";
+    private static final String jsonBodyData = "jsonBodyData";
+    private static final String success = "success";
 
-       public PolicyElasticSearchController() {
-               super();
-       }
+    @Autowired
+    public PolicyElasticSearchController(CommonClassDao commonClassDao) {
+        PolicyElasticSearchController.commonClassDao = commonClassDao;
+    }
 
-       public ElkConnector.PolicyIndexType toPolicyIndexType(String type) throws IllegalArgumentException {
-               if (type == null || type.isEmpty()){
-                       return PolicyIndexType.all;
-               }
-               return PolicyIndexType.valueOf(type);
-       }
+    public PolicyElasticSearchController() {
+        super();
+    }
 
-       public boolean updateElk(PolicyRestAdapter policyData) {
-               boolean success = true;
-               try {
-                       success = ElkConnector.singleton.update(policyData);
-                       if (!success) {
-                               if (LOGGER.isWarnEnabled()) {
-                                       LOGGER.warn("FAILURE to create ELK record created for " + policyData.getNewFileName());
-                               }
-                       } else {
-                               if (LOGGER.isInfoEnabled()) {
-                                       LOGGER.warn("SUCCESS creating ELK record created for " + policyData.getNewFileName());
-                               }                                                                       
-                       }                                                                       
-               } catch (Exception e) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + ": " + e.getMessage(), e);
-                       success = false;
-               }
-               return success;
-       }
+    public ElkConnector.PolicyIndexType toPolicyIndexType(String type) throws IllegalArgumentException {
+        if (type == null || type.isEmpty()){
+            return PolicyIndexType.all;
+        }
+        return PolicyIndexType.valueOf(type);
+    }
 
-       public boolean deleteElk(PolicyRestAdapter policyData) {
-               boolean success = true;
-               try {
-                       success = ElkConnector.singleton.delete(policyData);
-                       if (!success) {
-                               if (LOGGER.isWarnEnabled()) {
-                                       LOGGER.warn("FAILURE to delete ELK record created for " + policyData.getNewFileName());
-                               }
-                       } else {
-                               if (LOGGER.isInfoEnabled()) {
-                                       LOGGER.warn("SUCCESS deleting ELK record created for " + policyData.getNewFileName());
-                               }                                                                       
-                       }                                                                       
-               } catch (Exception e) {
-                       LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + ": " + e.getMessage(), e);
-                       success = false;
-               }
-               return success;
-       }
+    public boolean updateElk(PolicyRestAdapter policyData) {
+        boolean success = true;
+        try {
+            success = ElkConnector.singleton.update(policyData);
+            if (!success) {
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.warn("FAILURE to create ELK record created for " + policyData.getNewFileName());
+                }
+            } else {
+                if (LOGGER.isInfoEnabled()) {
+                    LOGGER.warn("SUCCESS creating ELK record created for " + policyData.getNewFileName());
+                }
+            }
+        } catch (Exception e) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + ": " + e.getMessage(), e);
+            success = false;
+        }
+        return success;
+    }
 
-       
-       @RequestMapping(value="/searchPolicy", method= RequestMethod.POST)
-       public void searchPolicy(HttpServletRequest request, HttpServletResponse response) {
-               try{
-                       String message="";
-                       boolean result = false;
-                       boolean policyResult = false;
-                       boolean validationCheck = true;
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       PolicyRestAdapter policyData = new PolicyRestAdapter();
-                       PolicyElasticSearchController controller = new PolicyElasticSearchController();
-                       Map<String, String> searchKeyValue = new HashMap<>();
-                       List<String> policyList = new ArrayList<>();
-                       if(request.getParameter("policyName") != null){
-                               String policyName = request.getParameter("policyName");
-                               policyData.setNewFileName(policyName);
-                               if("delete".equalsIgnoreCase(request.getParameter(action))){
-                                       result = controller.deleteElk(policyData);
-                               }else{
-                                       result = controller.updateElk(policyData);
-                               }
-                       }
-                       if("search".equalsIgnoreCase(request.getParameter(action))){
-                               try {
-                                       JsonNode root = mapper.readTree(request.getReader());
-                                       SearchData searchData = mapper.readValue(root.get("searchdata").toString(), SearchData.class);
+    public boolean deleteElk(PolicyRestAdapter policyData) {
+        boolean success = true;
+        try {
+            success = ElkConnector.singleton.delete(policyData);
+            if (!success) {
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.warn("FAILURE to delete ELK record created for " + policyData.getNewFileName());
+                }
+            } else {
+                if (LOGGER.isInfoEnabled()) {
+                    LOGGER.warn("SUCCESS deleting ELK record created for " + policyData.getNewFileName());
+                }
+            }
+        } catch (Exception e) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + ": " + e.getMessage(), e);
+            success = false;
+        }
+        return success;
+    }
 
-                                       String policyType = searchData.getPolicyType();
-                                       
-                                       String searchText = searchData.getQuery();
-                                       String descriptivevalue = searchData.getDescriptiveScope();
-                                       if(descriptivevalue != null){
-                                               DescriptiveScope dsSearch = (DescriptiveScope) commonClassDao.getEntityItem(DescriptiveScope.class, "descriptiveScopeName", descriptivevalue);
-                                               if(dsSearch != null){
-                                                       String[] descriptiveList =  dsSearch.getSearch().split("AND");
-                                                       for(String keyValue : descriptiveList){
-                                                               String[] entry = keyValue.split(":");
-                                                               if(searchData.getPolicyType() != null && "closedLoop".equals(searchData.getPolicyType())){
-                                                                       if(!PolicyUtils.policySpecialCharValidator(entry[1]).contains(success)){
-                                                                               message = "The Descriptive Scope Dictionary value contains space and it is invalid for Search :   "+entry[1];
-                                                                               validationCheck = false;
-                                                                       }
-                                                                       searchKeyValue.put(jsonBodyData, "*" +entry[1] +"*");
-                                                               }else{
-                                                                       searchText = entry[1];
-                                                               }
-                                                       }
-                                               }
-                                       }
-                                       
-                                       if(!PolicyUtils.policySpecialCharValidator(searchText).contains(success)){
-                                               message = "The Search value contains space and it is invalid for Search :   "+searchText;
-                                               validationCheck = false;
-                                       }
-                                       
-                                       if(searchData.getClosedLooppolicyType() != null){
-                                               String closedLoopType;
-                                               if("Config_Fault".equalsIgnoreCase(searchData.getClosedLooppolicyType())){
-                                                       closedLoopType  = "ClosedLoop_Fault";
-                                               }else{
-                                                       closedLoopType  = "ClosedLoop_PM";
-                                               }
-                                               searchKeyValue.put("configPolicyType", closedLoopType);
-                                       }
-                                       if(searchData.getOnapName() != null){
-                                               searchKeyValue.put("onapName", searchData.getOnapName());
-                                       }
-                                       if(searchData.getD2Service() != null){
-                                               String d2Service = searchData.getD2Service().trim();
-                                               if("Hosted Voice (Trinity)".equalsIgnoreCase(d2Service)){
-                                                       d2Service = "trinity";
-                                               }else if("vUSP".equalsIgnoreCase(d2Service)){
-                                                       d2Service = "vUSP";
-                                               }else if("MCR".equalsIgnoreCase(d2Service)){
-                                                       d2Service = "mcr";
-                                               }else if("Gamma".equalsIgnoreCase(d2Service)){
-                                                       d2Service = "gamma";
-                                               }else if("vDNS".equalsIgnoreCase(d2Service)){
-                                                       d2Service = "vDNS";
-                                               }
-                                               searchKeyValue.put("jsonBodyData."+d2Service+"", "true");
-                                       }       
-                                       if(searchData.getVnfType() != null){
-                                               searchKeyValue.put(jsonBodyData, "*"+searchData.getVnfType()+"*");                                      
-                                       }
-                                       if(searchData.getPolicyStatus() != null){
-                                               searchKeyValue.put(jsonBodyData, "*"+searchData.getPolicyStatus()+"*");
-                                       }
-                                       if(searchData.getVproAction() != null){
-                                               searchKeyValue.put(jsonBodyData, "*"+searchData.getVproAction()+"*");
-                                       }
-                                       if(searchData.getServiceType() != null){
-                                               searchKeyValue.put("serviceType", searchData.getServiceType());
-                                       }
-                                       if(searchData.getBindTextSearch() != null){
-                                               searchKeyValue.put(searchData.getBindTextSearch(), searchText);
-                                               searchText = null;
-                                       }
-                                       PolicyIndexType type = null;
-                                       if(policyType != null){
-                                               if(action.equalsIgnoreCase(policyType)){
-                                                       type = ElkConnector.PolicyIndexType.action;
-                                               }else if(decision.equalsIgnoreCase(policyType)){
-                                                       type = ElkConnector.PolicyIndexType.decision;
-                                               }else if(config.equalsIgnoreCase(policyType)){
-                                                       type = ElkConnector.PolicyIndexType.config;
-                                               }else if("closedloop".equalsIgnoreCase(policyType)){
-                                                       type = ElkConnector.PolicyIndexType.closedloop;
-                                               }else{
-                                                       type = ElkConnector.PolicyIndexType.all;
-                                               }
-                                       }else{
-                                               type = ElkConnector.PolicyIndexType.all;
-                                       }
-                                       if(validationCheck){
-                                               JestResult policyResultList = controller.search(type, searchText, searchKeyValue);
-                                               if(policyResultList.isSucceeded()){
-                                                       result = true;
-                                                       policyResult = true;
-                                                       JsonArray resultObject = policyResultList.getJsonObject().get("hits").getAsJsonObject().get("hits").getAsJsonArray();
-                                                       for(int i =0; i < resultObject.size(); i++){
-                                                               String policyName = resultObject.get(i).getAsJsonObject().get("_id").toString();
-                                                               policyList.add(policyName);
-                                                       }
-                                               }else{
-                                                       LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server, Check the Logs");
-                                               }
-                                       }
-                               }catch(Exception e){
-                                       LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server" + e);
-                               }
-                       }
-                       if(validationCheck){
-                               if(result){
-                                       message = "Elastic Server Transaction is success";
-                               }else{
-                                       message = "Elastic Server Transaction is failed, please check the logs";
-                               }
-                       }
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(message));
-                       JSONObject j = new JSONObject(msg);
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       response.addHeader(success, success); 
-                       if(policyResult){
-                               JSONObject k = new JSONObject("{policyresult: " + policyList + "}");
-                               response.getWriter().write(k.toString());
-                       }else{
-                               response.getWriter().write(j.toString());
-                       }
-               }catch(Exception e){
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                       response.addHeader("error", "Exception Occured While Performing Elastic Transaction");
-                       LOGGER.error("Exception Occured While Performing Elastic Transaction"+e.getMessage(),e);
-               }
-       }
-       
-       @RequestMapping(value={"/searchDictionary"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView searchDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
-               try{
-                       PolicyIndexType config = PolicyIndexType.config;
-                       PolicyIndexType closedloop = PolicyIndexType.closedloop;
-                       PolicyIndexType action = PolicyIndexType.action;
-                       PolicyIndexType decision = PolicyIndexType.decision;
-                       PolicyIndexType all = PolicyIndexType.all;
-                       
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       String dictionaryType = root.get("type").textValue();
-                       Mode mode = Mode.valueOf(dictionaryType);
-                       String value; 
-                       List<String> policyList = new ArrayList<>();
-                       switch (mode){
-                       case attribute :
-                               Attribute attributedata = mapper.readValue(root.get("data").toString(), Attribute.class);
-                               value = attributedata.getXacmlId();
-                               policyList = searchElkDatabase(all, pholder,value);
-                               break;
-                       case onapName :
-                               OnapName onapName = mapper.readValue(root.get("data").toString(), OnapName.class);
-                               value = onapName.getOnapName();
-                               policyList = searchElkDatabase(all, "onapName",value);
-                               break;
-                       case actionPolicy :
-                               ActionPolicyDict actionPolicyDict = mapper.readValue(root.get("data").toString(), ActionPolicyDict.class);
-                               value = actionPolicyDict.getAttributeName();
-                               policyList = searchElkDatabase(action, "actionAttributeValue",value);
-                               break;
-                       case brmsParam :
-                               BRMSParamTemplate bRMSParamTemplate = mapper.readValue(root.get("data").toString(), BRMSParamTemplate.class);
-                               value = bRMSParamTemplate.getRuleName();
-                               policyList = searchElkDatabase(config, "ruleName",value);
-                               break;
-                       case pepOptions :
-                               PEPOptions pEPOptions = mapper.readValue(root.get("data").toString(), PEPOptions.class);
-                               value = pEPOptions.getPepName();
-                               policyList = searchElkDatabase(closedloop,"jsonBodyData.pepName",value);
-                               break;
-                       case clSite :
-                               ClosedLoopSite closedLoopSite = mapper.readValue(root.get("data").toString(), ClosedLoopSite.class);
-                               value = closedLoopSite.getSiteName();
-                               policyList = searchElkDatabase(closedloop,"siteNames",value);
-                               break;
-                       case clService :
-                               ClosedLoopD2Services closedLoopD2Services = mapper.readValue(root.get("data").toString(), ClosedLoopD2Services.class);
-                               value = closedLoopD2Services.getServiceName();
-                               policyList = searchElkDatabase(closedloop, pholder,value);
-                               break;
-                       case clVarbind :
-                               VarbindDictionary varbindDictionary = mapper.readValue(root.get("data").toString(), VarbindDictionary.class);
-                               value = varbindDictionary.getVarbindName();
-                               policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
-                               break;
-                       case clVnf :
-                               VNFType vNFType = mapper.readValue(root.get("data").toString(), VNFType.class);
-                               value = vNFType.getVnftype();
-                               policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
-                               break;
-                       case clVSCL :
-                               VSCLAction vsclAction = mapper.readValue(root.get("data").toString(), VSCLAction.class);
-                               value = vsclAction.getVsclaction();
-                               policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
-                               break;
-                       case decision :
-                               DecisionSettings decisionSettings = mapper.readValue(root.get("data").toString(), DecisionSettings.class);
-                               value = decisionSettings.getXacmlId();
-                               policyList = searchElkDatabase(decision,pholder,value);
-                               break;  
-                       case fwTerm :
-                               TermList term = mapper.readValue(root.get("data").toString(), TermList.class);
-                               value = term.getTermName();
-                               policyList = searchElkDatabase(config, pholder,value);
-                               break;
-                       case msDCAEUUID :
-                               DCAEuuid dcaeUUID = mapper.readValue(root.get("data").toString(), DCAEuuid.class);
-                               value = dcaeUUID.getName();
-                               policyList = searchElkDatabase(config, "uuid",value);
-                               break;
-                       case msLocation :
-                               MicroServiceLocation mslocation = mapper.readValue(root.get("data").toString(), MicroServiceLocation.class);
-                               value = mslocation.getName();
-                               policyList = searchElkDatabase(config, "location",value);
-                               break;
-                       case msModels :
-                               MicroServiceModels msModels = mapper.readValue(root.get("data").toString(), MicroServiceModels.class);
-                               value = msModels.getModelName();
-                               policyList = searchElkDatabase(config, "serviceType",value);
-                               break;
-                       case psGroupPolicy :
-                               GroupPolicyScopeList groupPoilicy = mapper.readValue(root.get("data").toString(), GroupPolicyScopeList.class);
-                               value = groupPoilicy.getGroupName();
-                               policyList = searchElkDatabase(config, pholder,value);
-                               break;
-                       case safeRisk :
-                               RiskType riskType= mapper.readValue(root.get("data").toString(), RiskType.class);
-                               value = riskType.getRiskName();
-                               policyList = searchElkDatabase(config, "riskType",value);
-                               break;
-                       case safePolicyWarning :
-                               SafePolicyWarning safePolicy = mapper.readValue(root.get("data").toString(), SafePolicyWarning.class);
-                               value = safePolicy.getName();
-                               policyList = searchElkDatabase(config, pholder,value);
-                               break;
-                       default:                
-                       }
-                       
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       response.addHeader(success, success); 
-                       JSONObject k = new JSONObject("{policyresult: " + policyList + "}");
-                       response.getWriter().write(k.toString());
-               }catch(Exception e){
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(PolicyUtils.CATCH_EXCEPTION);
-                       LOGGER.error(e);
-               }
-               return null;
-       }
 
-       //Search the Elk database
-       public List<String> searchElkDatabase(PolicyIndexType type, String key, String value){
-               PolicyElasticSearchController controller = new PolicyElasticSearchController();
-               Map<String, String> searchKeyValue = new HashMap<>();
-               if(!pholder.equals(key)){
-                       searchKeyValue.put(key, value);
-               }
-               
-               List<String> policyList = new ArrayList<>();
-               JestResult policyResultList = controller.search(type, value, searchKeyValue);
-               if(policyResultList.isSucceeded()){
-                       JsonArray resultObject = policyResultList.getJsonObject().get("hits").getAsJsonObject().get("hits").getAsJsonArray();
-                       for(int i =0; i < resultObject.size(); i++){
-                               String policyName = resultObject.get(i).getAsJsonObject().get("_id").toString();
-                               policyList.add(policyName);
-                       }
-               }else{
-                       LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server, Check the Logs");
-               }
-               return policyList;
-       }
-       
-       public JestResult search(PolicyIndexType type, String text, Map<String, String> searchKeyValue) {
-                return ElkConnector.singleton.search(type, text, searchKeyValue);
-       }
-       
+    @RequestMapping(value="/searchPolicy", method= RequestMethod.POST)
+    public void searchPolicy(HttpServletRequest request, HttpServletResponse response) {
+        try{
+            String message="";
+            boolean result = false;
+            boolean policyResult = false;
+            boolean validationCheck = true;
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+            PolicyRestAdapter policyData = new PolicyRestAdapter();
+            PolicyElasticSearchController controller = new PolicyElasticSearchController();
+            Map<String, String> searchKeyValue = new HashMap<>();
+            List<String> policyList = new ArrayList<>();
+            if(request.getParameter("policyName") != null){
+                String policyName = request.getParameter("policyName");
+                policyData.setNewFileName(policyName);
+                if("delete".equalsIgnoreCase(request.getParameter(action))){
+                    result = controller.deleteElk(policyData);
+                }else{
+                    result = controller.updateElk(policyData);
+                }
+            }
+            if("search".equalsIgnoreCase(request.getParameter(action))){
+                try {
+                    JsonNode root = mapper.readTree(request.getReader());
+                    SearchData searchData = mapper.readValue(root.get("searchdata").toString(), SearchData.class);
+
+                    String policyType = searchData.getPolicyType();
+
+                    String searchText = searchData.getQuery();
+                    String descriptivevalue = searchData.getDescriptiveScope();
+                    if(descriptivevalue != null){
+                        DescriptiveScope dsSearch = (DescriptiveScope) commonClassDao.getEntityItem(DescriptiveScope.class, "descriptiveScopeName", descriptivevalue);
+                        if(dsSearch != null){
+                            String[] descriptiveList =  dsSearch.getSearch().split("AND");
+                            for(String keyValue : descriptiveList){
+                                String[] entry = keyValue.split(":");
+                                if(searchData.getPolicyType() != null && "closedLoop".equals(searchData.getPolicyType())){
+                                    if(!PolicyUtils.policySpecialCharValidator(entry[1]).contains(success)){
+                                        message = "The Descriptive Scope Dictionary value contains space and it is invalid for Search :   "+entry[1];
+                                        validationCheck = false;
+                                    }
+                                    searchKeyValue.put(jsonBodyData, "*" +entry[1] +"*");
+                                }else{
+                                    searchText = entry[1];
+                                }
+                            }
+                        }
+                    }
+
+                    if(!PolicyUtils.policySpecialCharValidator(searchText).contains(success)){
+                        message = "The Search value contains space and it is invalid for Search :   "+searchText;
+                        validationCheck = false;
+                    }
+
+                    if(searchData.getClosedLooppolicyType() != null){
+                        String closedLoopType;
+                        if("Config_Fault".equalsIgnoreCase(searchData.getClosedLooppolicyType())){
+                            closedLoopType  = "ClosedLoop_Fault";
+                        }else{
+                            closedLoopType  = "ClosedLoop_PM";
+                        }
+                        searchKeyValue.put("configPolicyType", closedLoopType);
+                    }
+                    if(searchData.getOnapName() != null){
+                        searchKeyValue.put("onapName", searchData.getOnapName());
+                    }
+                    if(searchData.getD2Service() != null){
+                        String d2Service = searchData.getD2Service().trim();
+                        if("Hosted Voice (Trinity)".equalsIgnoreCase(d2Service)){
+                            d2Service = "trinity";
+                        }else if("vUSP".equalsIgnoreCase(d2Service)){
+                            d2Service = "vUSP";
+                        }else if("MCR".equalsIgnoreCase(d2Service)){
+                            d2Service = "mcr";
+                        }else if("Gamma".equalsIgnoreCase(d2Service)){
+                            d2Service = "gamma";
+                        }else if("vDNS".equalsIgnoreCase(d2Service)){
+                            d2Service = "vDNS";
+                        }
+                        searchKeyValue.put("jsonBodyData."+d2Service+"", "true");
+                    }
+                    if(searchData.getVnfType() != null){
+                        searchKeyValue.put(jsonBodyData, "*"+searchData.getVnfType()+"*");
+                    }
+                    if(searchData.getPolicyStatus() != null){
+                        searchKeyValue.put(jsonBodyData, "*"+searchData.getPolicyStatus()+"*");
+                    }
+                    if(searchData.getVproAction() != null){
+                        searchKeyValue.put(jsonBodyData, "*"+searchData.getVproAction()+"*");
+                    }
+                    if(searchData.getServiceType() != null){
+                        searchKeyValue.put("serviceType", searchData.getServiceType());
+                    }
+                    if(searchData.getBindTextSearch() != null){
+                        searchKeyValue.put(searchData.getBindTextSearch(), searchText);
+                        searchText = null;
+                    }
+                    PolicyIndexType type = null;
+                    if(policyType != null){
+                        if(action.equalsIgnoreCase(policyType)){
+                            type = ElkConnector.PolicyIndexType.action;
+                        }else if(decision.equalsIgnoreCase(policyType)){
+                            type = ElkConnector.PolicyIndexType.decision;
+                        }else if(config.equalsIgnoreCase(policyType)){
+                            type = ElkConnector.PolicyIndexType.config;
+                        }else if("closedloop".equalsIgnoreCase(policyType)){
+                            type = ElkConnector.PolicyIndexType.closedloop;
+                        }else{
+                            type = ElkConnector.PolicyIndexType.all;
+                        }
+                    }else{
+                        type = ElkConnector.PolicyIndexType.all;
+                    }
+                    if(validationCheck){
+                        JestResult policyResultList = controller.search(type, searchText, searchKeyValue);
+                        if(policyResultList.isSucceeded()){
+                            result = true;
+                            policyResult = true;
+                            JsonArray resultObject = policyResultList.getJsonObject().get("hits").getAsJsonObject().get("hits").getAsJsonArray();
+                            for(int i =0; i < resultObject.size(); i++){
+                                String policyName = resultObject.get(i).getAsJsonObject().get("_id").toString();
+                                policyList.add(policyName);
+                            }
+                        }else{
+                            LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server, Check the Logs");
+                        }
+                    }
+                }catch(Exception e){
+                    LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server" + e);
+                }
+            }
+            if(validationCheck){
+                if(result){
+                    message = "Elastic Server Transaction is success";
+                }else{
+                    message = "Elastic Server Transaction is failed, please check the logs";
+                }
+            }
+            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(message));
+            JSONObject j = new JSONObject(msg);
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader(success, success);
+            if(policyResult){
+                JSONObject k = new JSONObject("{policyresult: " + policyList + "}");
+                response.getWriter().write(k.toString());
+            }else{
+                response.getWriter().write(j.toString());
+            }
+        }catch(Exception e){
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader("error", "Exception Occured While Performing Elastic Transaction");
+            LOGGER.error("Exception Occured While Performing Elastic Transaction"+e.getMessage(),e);
+        }
+    }
+
+    @RequestMapping(value={"/searchDictionary"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
+    public ModelAndView searchDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
+        try{
+            PolicyIndexType config = PolicyIndexType.config;
+            PolicyIndexType closedloop = PolicyIndexType.closedloop;
+            PolicyIndexType action = PolicyIndexType.action;
+            PolicyIndexType decision = PolicyIndexType.decision;
+            PolicyIndexType all = PolicyIndexType.all;
+
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+            JsonNode root = mapper.readTree(request.getReader());
+            String dictionaryType = root.get("type").textValue();
+            Mode mode = Mode.valueOf(dictionaryType);
+            String value;
+            List<String> policyList = new ArrayList<>();
+            switch (mode){
+            case attribute :
+                Attribute attributedata = mapper.readValue(root.get("data").toString(), Attribute.class);
+                value = attributedata.getXacmlId();
+                policyList = searchElkDatabase(all, pholder,value);
+                break;
+            case onapName :
+                OnapName onapName = mapper.readValue(root.get("data").toString(), OnapName.class);
+                value = onapName.getOnapName();
+                policyList = searchElkDatabase(all, "onapName",value);
+                break;
+            case actionPolicy :
+                ActionPolicyDict actionPolicyDict = mapper.readValue(root.get("data").toString(), ActionPolicyDict.class);
+                value = actionPolicyDict.getAttributeName();
+                policyList = searchElkDatabase(action, "actionAttributeValue",value);
+                break;
+            case brmsParam :
+                BRMSParamTemplate bRMSParamTemplate = mapper.readValue(root.get("data").toString(), BRMSParamTemplate.class);
+                value = bRMSParamTemplate.getRuleName();
+                policyList = searchElkDatabase(config, "ruleName",value);
+                break;
+            case pepOptions :
+                PEPOptions pEPOptions = mapper.readValue(root.get("data").toString(), PEPOptions.class);
+                value = pEPOptions.getPepName();
+                policyList = searchElkDatabase(closedloop,"jsonBodyData.pepName",value);
+                break;
+            case clSite :
+                ClosedLoopSite closedLoopSite = mapper.readValue(root.get("data").toString(), ClosedLoopSite.class);
+                value = closedLoopSite.getSiteName();
+                policyList = searchElkDatabase(closedloop,"siteNames",value);
+                break;
+            case clService :
+                ClosedLoopD2Services closedLoopD2Services = mapper.readValue(root.get("data").toString(), ClosedLoopD2Services.class);
+                value = closedLoopD2Services.getServiceName();
+                policyList = searchElkDatabase(closedloop, pholder,value);
+                break;
+            case clVarbind :
+                VarbindDictionary varbindDictionary = mapper.readValue(root.get("data").toString(), VarbindDictionary.class);
+                value = varbindDictionary.getVarbindName();
+                policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
+                break;
+            case clVnf :
+                VNFType vNFType = mapper.readValue(root.get("data").toString(), VNFType.class);
+                value = vNFType.getVnftype();
+                policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
+                break;
+            case clVSCL :
+                VSCLAction vsclAction = mapper.readValue(root.get("data").toString(), VSCLAction.class);
+                value = vsclAction.getVsclaction();
+                policyList = searchElkDatabase(closedloop, jsonBodyData,"*"+value+"*");
+                break;
+            case decision :
+                DecisionSettings decisionSettings = mapper.readValue(root.get("data").toString(), DecisionSettings.class);
+                value = decisionSettings.getXacmlId();
+                policyList = searchElkDatabase(decision,pholder,value);
+                break;
+            case fwTerm :
+                TermList term = mapper.readValue(root.get("data").toString(), TermList.class);
+                value = term.getTermName();
+                policyList = searchElkDatabase(config, pholder,value);
+                break;
+            case msDCAEUUID :
+                DCAEuuid dcaeUUID = mapper.readValue(root.get("data").toString(), DCAEuuid.class);
+                value = dcaeUUID.getName();
+                policyList = searchElkDatabase(config, "uuid",value);
+                break;
+            case msLocation :
+                MicroServiceLocation mslocation = mapper.readValue(root.get("data").toString(), MicroServiceLocation.class);
+                value = mslocation.getName();
+                policyList = searchElkDatabase(config, "location",value);
+                break;
+            case msModels :
+                MicroServiceModels msModels = mapper.readValue(root.get("data").toString(), MicroServiceModels.class);
+                value = msModels.getModelName();
+                policyList = searchElkDatabase(config, "serviceType",value);
+                break;
+            case psGroupPolicy :
+                GroupPolicyScopeList groupPoilicy = mapper.readValue(root.get("data").toString(), GroupPolicyScopeList.class);
+                value = groupPoilicy.getGroupName();
+                policyList = searchElkDatabase(config, pholder,value);
+                break;
+            case safeRisk :
+                RiskType riskType= mapper.readValue(root.get("data").toString(), RiskType.class);
+                value = riskType.getRiskName();
+                policyList = searchElkDatabase(config, "riskType",value);
+                break;
+            case safePolicyWarning :
+                SafePolicyWarning safePolicy = mapper.readValue(root.get("data").toString(), SafePolicyWarning.class);
+                value = safePolicy.getName();
+                policyList = searchElkDatabase(config, pholder,value);
+                break;
+            default:
+            }
+
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader(success, success);
+            JSONObject k = new JSONObject("{policyresult: " + policyList + "}");
+            response.getWriter().write(k.toString());
+        }catch(Exception e){
+            response.setCharacterEncoding("UTF-8");
+            request.setCharacterEncoding("UTF-8");
+            PrintWriter out = response.getWriter();
+            out.write(PolicyUtils.CATCH_EXCEPTION);
+            LOGGER.error(e);
+        }
+        return null;
+    }
+
+    //Search the Elk database
+    public List<String> searchElkDatabase(PolicyIndexType type, String key, String value){
+        PolicyElasticSearchController controller = new PolicyElasticSearchController();
+        Map<String, String> searchKeyValue = new HashMap<>();
+        if(!pholder.equals(key)){
+            searchKeyValue.put(key, value);
+        }
+
+        List<String> policyList = new ArrayList<>();
+        JestResult policyResultList = controller.search(type, value, searchKeyValue);
+        if(policyResultList.isSucceeded()){
+            JsonArray resultObject = policyResultList.getJsonObject().get("hits").getAsJsonObject().get("hits").getAsJsonArray();
+            for(int i =0; i < resultObject.size(); i++){
+                String policyName = resultObject.get(i).getAsJsonObject().get("_id").toString();
+                policyList.add(policyName);
+            }
+        }else{
+            LOGGER.error("Exception Occured While Searching for Data in Elastic Search Server, Check the Logs");
+        }
+        return policyList;
+    }
+
+    public JestResult search(PolicyIndexType type, String text, Map<String, String> searchKeyValue) {
+         return ElkConnector.singleton.search(type, text, searchKeyValue);
+    }
+
 }
\ No newline at end of file
index 58c89f7..9338cdb 100644 (file)
 package org.onap.policy.pap.xacml.rest.elk.client;
 
 public class PolicyLocator {
-       public final String policyType;
-       public final String policyName;
-       public final String owner;
-       public final String scope;
-       public final String policyId;
-       public final String version;
-       
-       public PolicyLocator(String policyType, String policyName,
-                                    String owner, String scope, String policyId,
-                                    String version) {
-               this.policyType = policyType;
-               this.policyName= policyName;
-               this.owner = owner;
-               this.scope = scope;
-               this.policyId = policyId; 
-               this.version = version;
-       }
-       
-       public String toString() {
-               return "[" + 
-                      this.owner + "|" +
-                          this.scope + "|" +
-                  this.policyType + "|" + 
-                          this.policyName + "|" + 
-                          this.policyId + "|" +
-                          "v" + this.version + "|" + "]";
-                  
-       }
+    public final String policyType;
+    public final String policyName;
+    public final String owner;
+    public final String scope;
+    public final String policyId;
+    public final String version;
+
+    public PolicyLocator(String policyType, String policyName,
+                         String owner, String scope, String policyId,
+                         String version) {
+        this.policyType = policyType;
+        this.policyName= policyName;
+        this.owner = owner;
+        this.scope = scope;
+        this.policyId = policyId;
+        this.version = version;
+    }
+
+    public String toString() {
+        return "[" +
+               this.owner + "|" +
+               this.scope + "|" +
+               this.policyType + "|" +
+               this.policyName + "|" +
+               this.policyId + "|" +
+               "v" + this.version + "|" + "]";
+
+    }
 }
index db77110..cc9cc16 100644 (file)
@@ -32,66 +32,66 @@ import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 
 public class APIRequestHandler {
 
-       private OnapPDPGroup newGroup;
+    private OnapPDPGroup newGroup;
 
-       public void doGet(HttpServletRequest request, HttpServletResponse response, String apiflag) throws IOException{
-               // Request from the API to get Dictionary Items
-               if ("api".equalsIgnoreCase(apiflag)) {
-                       DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
-                       dictionaryHandler.doDictionaryAPIGet(request, response);
-                       return;
-               }
-               // Request from the API to get the ActiveVersion from the PolicyVersion table
-               if ("version".equalsIgnoreCase(apiflag)){
-                       PushPolicyHandler pushHandler = new PushPolicyHandler();
-                       pushHandler.getActiveVersion(request, response);
-                       return;
-               }
-               // Request from the API to get the URI from the gitpath
-               if ("uri".equalsIgnoreCase(apiflag)){
-                       PushPolicyHandler pushHandler = new PushPolicyHandler();
-                       pushHandler.getSelectedURI(request, response);
-                       return;
-               }
-               if ("getMetrics".equalsIgnoreCase(apiflag)){
-                       MetricService.doGetPolicyMetrics(response);
-                       return;
-               }
-       }
+    public void doGet(HttpServletRequest request, HttpServletResponse response, String apiflag) throws IOException{
+        // Request from the API to get Dictionary Items
+        if ("api".equalsIgnoreCase(apiflag)) {
+            DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
+            dictionaryHandler.doDictionaryAPIGet(request, response);
+            return;
+        }
+        // Request from the API to get the ActiveVersion from the PolicyVersion table
+        if ("version".equalsIgnoreCase(apiflag)){
+            PushPolicyHandler pushHandler = new PushPolicyHandler();
+            pushHandler.getActiveVersion(request, response);
+            return;
+        }
+        // Request from the API to get the URI from the gitpath
+        if ("uri".equalsIgnoreCase(apiflag)){
+            PushPolicyHandler pushHandler = new PushPolicyHandler();
+            pushHandler.getSelectedURI(request, response);
+            return;
+        }
+        if ("getMetrics".equalsIgnoreCase(apiflag)){
+            MetricService.doGetPolicyMetrics(response);
+            return;
+        }
+    }
 
-       public void doPut(HttpServletRequest request, HttpServletResponse response, String service) throws IOException {
-               if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service) || "OPTIMIZATION".equalsIgnoreCase(service)){
-                       ImportService importService = new ImportService();
-                       importService.doImportMicroServicePut(request, response);
-                       return;
-               }
-               if ("dictionaryItem".equalsIgnoreCase(service)) {
-                       DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
-                       dictionaryHandler.doDictionaryAPIPut(request, response);
-                       return;
-               } else {
-                       SavePolicyHandler savePolicy = SavePolicyHandler.getInstance();
-                       savePolicy.doPolicyAPIPut(request, response);
-               }
-       }
+    public void doPut(HttpServletRequest request, HttpServletResponse response, String service) throws IOException {
+        if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service) || "OPTIMIZATION".equalsIgnoreCase(service)){
+            ImportService importService = new ImportService();
+            importService.doImportMicroServicePut(request, response);
+            return;
+        }
+        if ("dictionaryItem".equalsIgnoreCase(service)) {
+            DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
+            dictionaryHandler.doDictionaryAPIPut(request, response);
+            return;
+        } else {
+            SavePolicyHandler savePolicy = SavePolicyHandler.getInstance();
+            savePolicy.doPolicyAPIPut(request, response);
+        }
+    }
 
-       public void doDelete(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext, String apiflag) throws IOException, SQLException{
-               DeleteHandler deleteHandler = DeleteHandler.getInstance();
-               if ("deletePapApi".equalsIgnoreCase(apiflag)) {
-                       deleteHandler.doAPIDeleteFromPAP(request, response);
-                       return;
-               } else if ("deletePdpApi".equalsIgnoreCase(apiflag)) {
-                       deleteHandler.doAPIDeleteFromPDP(request, response, loggingContext);
-                       setNewGroup(deleteHandler.getDeletedGroup());
-                       return;
-               }
-       }
-       
-       private void setNewGroup(OnapPDPGroup newGroup) {
-               this.newGroup = newGroup;
-       }
+    public void doDelete(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext, String apiflag) throws IOException, SQLException{
+        DeleteHandler deleteHandler = DeleteHandler.getInstance();
+        if ("deletePapApi".equalsIgnoreCase(apiflag)) {
+            deleteHandler.doAPIDeleteFromPAP(request, response);
+            return;
+        } else if ("deletePdpApi".equalsIgnoreCase(apiflag)) {
+            deleteHandler.doAPIDeleteFromPDP(request, response, loggingContext);
+            setNewGroup(deleteHandler.getDeletedGroup());
+            return;
+        }
+    }
 
-       public OnapPDPGroup getNewGroup() {
-               return newGroup;
-       }
+    private void setNewGroup(OnapPDPGroup newGroup) {
+        this.newGroup = newGroup;
+    }
+
+    public OnapPDPGroup getNewGroup() {
+        return newGroup;
+    }
 }
index f3dda33..e2c3482 100644 (file)
@@ -59,429 +59,429 @@ import com.att.research.xacml.util.XACMLProperties;
 
 public class DeleteHandler {
 
-       private OnapPDPGroup newgroup;
-       private static Logger logger = FlexLogger.getLogger(DeleteHandler.class);
-       public static final String POLICY_IN_PDP = "PolicyInPDP";
-       public static final String ERROR = "error";
-       public static final String UNKNOWN = "unknown";
-       private static final String REGEX = "[0-9a-zA-Z._]*";
+    private OnapPDPGroup newgroup;
+    private static Logger logger = FlexLogger.getLogger(DeleteHandler.class);
+    public static final String POLICY_IN_PDP = "PolicyInPDP";
+    public static final String ERROR = "error";
+    public static final String UNKNOWN = "unknown";
+    private static final String REGEX = "[0-9a-zA-Z._]*";
 
-       public void doAPIDeleteFromPAP(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException  {
-               // get the request content into a String
-               String json = null;
-               java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
-               scanner.useDelimiter("\\A");
-               json =  scanner.hasNext() ? scanner.next() : "";
-               scanner.close();
-               PolicyLogger.info("JSON request from API to Delete Policy from the PAP: " + json);
-               // convert Object sent as JSON into local object
-               StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
-               String policyName = policy.getPolicyName();
-               Boolean policyVersionDeleted = false;
-               String removeXMLExtension;
-               int currentVersion;
-               String removeVersionExtension;
-               String splitPolicyName = null;
-               String[] split = null;
-               String status = ERROR;
-               PolicyEntity policyEntity = null;
-               JPAUtils jpaUtils = null;
+    public void doAPIDeleteFromPAP(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException  {
+        // get the request content into a String
+        String json = null;
+        java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
+        scanner.useDelimiter("\\A");
+        json =  scanner.hasNext() ? scanner.next() : "";
+        scanner.close();
+        PolicyLogger.info("JSON request from API to Delete Policy from the PAP: " + json);
+        // convert Object sent as JSON into local object
+        StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
+        String policyName = policy.getPolicyName();
+        Boolean policyVersionDeleted = false;
+        String removeXMLExtension;
+        int currentVersion;
+        String removeVersionExtension;
+        String splitPolicyName = null;
+        String[] split = null;
+        String status = ERROR;
+        PolicyEntity policyEntity = null;
+        JPAUtils jpaUtils = null;
 
-               String papDbDriver = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_DRIVER);
-               String papDbUrl = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_URL);
-               String papDbUser = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_USER);
-               String papDbPassword = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_PASSWORD);
-               Connection con = null;
-               
-               try {
-                       jpaUtils = JPAUtils.getJPAUtilsInstance(XACMLPapServlet.getEmf());
-               } catch (Exception e) {
-                       PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " Could not create JPAUtils instance on the PAP");
-                       response.addHeader(ERROR, "jpautils");
-                       response.addHeader("operation", "delete");
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       return;
-               }
-               if (jpaUtils.dbLockdownIgnoreErrors()) {
-                       PolicyLogger.warn("Policies are locked down");
-                       response.addHeader("operation", "delete");
-                       response.addHeader("lockdown", "true");
-                       response.setStatus(HttpServletResponse.SC_ACCEPTED);
-                       return;
-               }
-               EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
-               Query policyEntityQuery = null;
-               try{
-                       if(policyName.endsWith(".xml")){
-                               removeXMLExtension = policyName.replace(".xml", "");
-                               currentVersion = Integer.parseInt(removeXMLExtension.substring(removeXMLExtension.lastIndexOf('.')+1));
-                               removeVersionExtension = removeXMLExtension.substring(0, removeXMLExtension.lastIndexOf('.'));
-                               boolean queryCheck = true;
-                               if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
-                                       if(policyName.contains("Config_")){
-                                               splitPolicyName = removeVersionExtension.replace(".Config_", ":Config_");
-                                       }else if(policyName.contains("Action_")){
-                                               splitPolicyName = removeVersionExtension.replace(".Action_", ":Action_");
-                                       }else if(policyName.contains("Decision_")){
-                                               splitPolicyName = removeVersionExtension.replace(".Decision_", ":Decision_");
-                                       }
-                                       if(splitPolicyName != null){
-                                               split = splitPolicyName.split(":");
-                                       }else{
-                                               PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy. Please, provide the valid policyname.");
-                                               response.addHeader(ERROR, UNKNOWN);
-                                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                                               return;
-                                       }
-                                       policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName LIKE :pName and p.scope=:pScope");
-                               }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
-                                       if(policyName.contains("Config_")){
-                                               splitPolicyName = policyName.replace(".Config_", ":Config_");
-                                       }else if(policyName.contains("Action_")){
-                                               splitPolicyName = policyName.replace(".Action_", ":Action_");
-                                       }else if(policyName.contains("Decision_")){
-                                               splitPolicyName = policyName.replace(".Decision_", ":Decision_");
-                                       }
-                                       split = splitPolicyName.split(":");
-                                       queryCheck = false;
-                                       policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:pName and p.scope=:pScope");
-                               }
-                               
-                               if(queryCheck){
-                                       policyEntityQuery.setParameter("pName", "%"+split[1]+"%");
-                               }else{
-                                       policyEntityQuery.setParameter("pName", split[1]);
-                               }
-                               
-                               policyEntityQuery.setParameter("pScope", split[0]);
-                               List<?> peResult = policyEntityQuery.getResultList();
-                               if(!peResult.isEmpty()){
-                                       Query getPolicyVersion = em.createQuery("Select p from PolicyVersion p where p.policyName=:pname");
-                                       getPolicyVersion.setParameter("pname", removeVersionExtension.replace(".", File.separator));
-                                       List<?> pvResult = getPolicyVersion.getResultList();
-                                       PolicyVersion pVersion = (PolicyVersion) pvResult.get(0);
-                                       int newVersion = 0; 
-                                       em.getTransaction().begin();
-                                       Class.forName(papDbDriver);
-                                       con = DriverManager.getConnection(papDbUrl,papDbUser,papDbPassword);
-                                       
-                                       if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
-                                               boolean groupCheck = checkPolicyGroupEntity(con, peResult);
-                                               if(!groupCheck){
-                                                       for(Object peData : peResult){
-                                                               policyEntity = (PolicyEntity) peData;
-                                                               status = deletePolicyEntityData(em, policyEntity);
-                                                       }
-                                               }else{
-                                                       status = POLICY_IN_PDP;
-                                               }
-                                               if(status.equals(ERROR)){
-                                                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
-                                                       response.addHeader(ERROR, UNKNOWN);
-                                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                                                       return;
-                                               }else if(status.equals(POLICY_IN_PDP)){
-                                                       PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
-                                                       response.addHeader(ERROR, POLICY_IN_PDP);
-                                                       response.setStatus(HttpServletResponse.SC_CONFLICT);
-                                                       return;
-                                               }else{
-                                                       try{
-                                                               policyVersionDeleted = true;
-                                                               em.remove(pVersion);
-                                                       }catch(Exception e){
-                                                               logger.error(e.getMessage(),e);
-                                                               policyVersionDeleted = false;
-                                                       }
-                                               }
-                                       }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")){
-                                               boolean groupCheck = checkPolicyGroupEntity(con, peResult);
-                                               if(!groupCheck){
-                                                       policyEntity = (PolicyEntity) peResult.get(0);
-                                                       status = deletePolicyEntityData(em, policyEntity);
-                                               }else{
-                                                       status = POLICY_IN_PDP;
-                                               }
-                                               
-                                               if(ERROR.equals(status)){
-                                                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
-                                                       response.addHeader(ERROR, UNKNOWN);
-                                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                                                       return;
-                                               }else if(POLICY_IN_PDP.equals(status)){
-                                                       PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
-                                                       response.addHeader(ERROR, POLICY_IN_PDP);
-                                                       response.setStatus(HttpServletResponse.SC_CONFLICT);
-                                                       return;
-                                               }else{
-                                                       if(currentVersion > 1){
-                                                               if(!peResult.isEmpty()){
-                                                                       for(Object object : peResult){
-                                                                               policyEntity = (PolicyEntity) object;
-                                                                               String policyEntityName = policyEntity.getPolicyName().replace(".xml", "");
-                                                                               int policyEntityVersion = Integer.parseInt(policyEntityName.substring(policyEntityName.lastIndexOf('.')+1));
-                                                                               if(policyEntityVersion > newVersion){
-                                                                                       newVersion = policyEntityVersion-1;
-                                                                               }
-                                                                       }
-                                                               }
-                                                               pVersion.setActiveVersion(newVersion);
-                                                               pVersion.setHigherVersion(newVersion);
-                                                               try{
-                                                                       policyVersionDeleted = true;
-                                                                       em.persist(pVersion);
-                                                               }catch(Exception e){
-                                                                       logger.error(e.getMessage(),e);
-                                                                       policyVersionDeleted = false;
-                                                               }
-                                                       }else{
-                                                               try{
-                                                                       policyVersionDeleted = true;
-                                                                       em.remove(pVersion);
-                                                               }catch(Exception e){
-                                                                       logger.error(e.getMessage(),e);
-                                                                       policyVersionDeleted = false;
-                                                               }
-                                                       }
-                                               }
-                                       }
-                               }else{
-                                       PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
-                                       response.addHeader(ERROR, UNKNOWN);
-                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                                       return;
-                               }
-                       }
-                       em.getTransaction().commit();
-               }catch(Exception e){
-                       em.getTransaction().rollback();
-                       PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " ERROR");
-                       response.addHeader(ERROR, "deleteDB");
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       return;
-               } finally {
-                       em.close();
-                       if(con != null){
-                               con.close();
-                       }
-               }
+        String papDbDriver = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_DRIVER);
+        String papDbUrl = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_URL);
+        String papDbUser = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_USER);
+        String papDbPassword = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_PASSWORD);
+        Connection con = null;
 
-               if (policyVersionDeleted) {
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       response.addHeader("successMapKey", "success");
-                       response.addHeader("operation", "delete");
-                       return;                         
-               } else {
-                       PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
-                       response.addHeader(ERROR, UNKNOWN);
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                       return;
-               }
-       }
-       
-       public static String deletePolicyEntityData(EntityManager em, PolicyEntity policyEntity){
-               PolicyElasticSearchController controller = new PolicyElasticSearchController();
-               PolicyRestAdapter policyData = new PolicyRestAdapter();
-               String policyName = policyEntity.getPolicyName();
-               try{
-                       if(policyName.contains("Config_")){
-                               em.remove(policyEntity.getConfigurationData());
-                       }else if(policyName.contains("Action_")){
-                               em.remove(policyEntity.getActionBodyEntity());
-                       }
-                       String searchPolicyName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
-                       policyData.setNewFileName(searchPolicyName);
-                       controller.deleteElk(policyData);
-                       em.remove(policyEntity);
-               }catch(Exception e){
-                       logger.error(e.getMessage(),e);
-                       return ERROR;
-               }
-               return "success";
-       }
-       
-       public static boolean checkPolicyGroupEntity(Connection con, List<?> peResult) throws SQLException{
-               for(Object peData : peResult){
-                       PolicyEntity policyEntity = (PolicyEntity) peData;
-                       try(Statement st = con.createStatement();
-                                       ResultSet rs = st.executeQuery("Select * from PolicyGroupEntity where policyid = '"+policyEntity.getPolicyId()+"'")){
-                               boolean gEntityList = rs.next();
-                               if(gEntityList){
-                                       return true;
-                               }
-                       }
-               }
-               return false;
-       }
+        try {
+            jpaUtils = JPAUtils.getJPAUtilsInstance(XACMLPapServlet.getEmf());
+        } catch (Exception e) {
+            PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " Could not create JPAUtils instance on the PAP");
+            response.addHeader(ERROR, "jpautils");
+            response.addHeader("operation", "delete");
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            return;
+        }
+        if (jpaUtils.dbLockdownIgnoreErrors()) {
+            PolicyLogger.warn("Policies are locked down");
+            response.addHeader("operation", "delete");
+            response.addHeader("lockdown", "true");
+            response.setStatus(HttpServletResponse.SC_ACCEPTED);
+            return;
+        }
+        EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
+        Query policyEntityQuery = null;
+        try{
+            if(policyName.endsWith(".xml")){
+                removeXMLExtension = policyName.replace(".xml", "");
+                currentVersion = Integer.parseInt(removeXMLExtension.substring(removeXMLExtension.lastIndexOf('.')+1));
+                removeVersionExtension = removeXMLExtension.substring(0, removeXMLExtension.lastIndexOf('.'));
+                boolean queryCheck = true;
+                if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
+                    if(policyName.contains("Config_")){
+                        splitPolicyName = removeVersionExtension.replace(".Config_", ":Config_");
+                    }else if(policyName.contains("Action_")){
+                        splitPolicyName = removeVersionExtension.replace(".Action_", ":Action_");
+                    }else if(policyName.contains("Decision_")){
+                        splitPolicyName = removeVersionExtension.replace(".Decision_", ":Decision_");
+                    }
+                    if(splitPolicyName != null){
+                        split = splitPolicyName.split(":");
+                    }else{
+                        PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy. Please, provide the valid policyname.");
+                        response.addHeader(ERROR, UNKNOWN);
+                        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                        return;
+                    }
+                    policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName LIKE :pName and p.scope=:pScope");
+                }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
+                    if(policyName.contains("Config_")){
+                        splitPolicyName = policyName.replace(".Config_", ":Config_");
+                    }else if(policyName.contains("Action_")){
+                        splitPolicyName = policyName.replace(".Action_", ":Action_");
+                    }else if(policyName.contains("Decision_")){
+                        splitPolicyName = policyName.replace(".Decision_", ":Decision_");
+                    }
+                    split = splitPolicyName.split(":");
+                    queryCheck = false;
+                    policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:pName and p.scope=:pScope");
+                }
 
-       public void doAPIDeleteFromPDP(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext) throws IOException {
-               
-               String policyName = request.getParameter("policyName");
-               String groupId = request.getParameter("groupId");
-               String responseString = null;
-               
-               if(groupId != null && !groupId.matches(REGEX) ){
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                       response.addHeader("error",ERROR);
-                       response.addHeader("message", "Group Id is not valid");
-                       return;
-               }
-                               
-               PolicyLogger.info("JSON request from API to Delete Policy from the PDP: " + policyName);
+                if(queryCheck){
+                    policyEntityQuery.setParameter("pName", "%"+split[1]+"%");
+                }else{
+                    policyEntityQuery.setParameter("pName", split[1]);
+                }
 
-               // for PUT operations the group may or may not need to exist before the operation can be done
-               OnapPDPGroup group = null;
-               try {
-                       group = XACMLPapServlet.getPAPEngine().getGroup(groupId);
-               } catch (PAPException e) {
-                       PolicyLogger.error("Exception occured While PUT operation is performing for PDP Group"+e);
-               }
-               if (group == null) {
-                       String message = "Unknown groupId '" + groupId + "'.";
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       response.addHeader(ERROR, "UnknownGroup");
-                       response.addHeader("message", message);
-                       response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-                       return;
-               } else {
-                       loggingContext.setServiceName("API:PAP.deletPolicyFromPDPGroup");
-                       if (policyName.contains("xml")) {
-                               PolicyLogger.debug("The full file name including the extension was provided for policyName.. continue.");
-                       } else {
-                               String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
-                                               + "policyName must be the full name of the file to be deleted including version and extension";
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Invalid policyName... "
-                                               + "policyName must be the full name of the file to be deleted including version and extension");
-                               response.addHeader(ERROR, message);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                               return;
-                       }
-                       RemoveGroupPolicy removePolicy = new RemoveGroupPolicy((StdPDPGroup) group);
-                       PDPPolicy policy =  group.getPolicy(policyName);
-                       if (policy != null) {
-                               
-                               if ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param"))) {
-                                       if (preSafetyCheck(policy)) {
-                                               PolicyLogger.debug("Precheck Successful.");
-                                       }
-                               }
-                               PolicyLogger.info("Preparing to remove policy from group: " + group.getId());
-                               removePolicy.prepareToRemove(policy);
-                               OnapPDPGroup updatedGroup = removePolicy.getUpdatedObject();
-                               responseString = deletePolicyFromPDPGroup(updatedGroup, loggingContext);
-                       } else {
-                               String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP.";
-                               PolicyLogger.error(message);
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Policy does not exist on the PDP.");
-                               response.addHeader(ERROR, message);
-                               response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                               return;
-                       }                       
-               }
-               if (responseString.equals("success")) {
-                       loggingContext.transactionEnded();
-                       PolicyLogger.info("Policy successfully deleted!");
-                       PolicyLogger.audit("Policy successfully deleted!");
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       response.addHeader("successMapKey", "success");
-                       response.addHeader("operation", "delete");
-                       return;         
-               } else if (responseString.equals("No Group")) {
-                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Group update had bad input.";
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input.");
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       response.addHeader(ERROR, "groupUpdate");
-                       response.addHeader("message", message);
-                       return; 
-               } else if (responseString.equals("DB Error")) {
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database");
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       response.addHeader(ERROR, "deleteDB");
-                       return;
-               } else {
-                       PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + " Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
-                       response.addHeader(ERROR, UNKNOWN);
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-                       return;
-               }
-       }
+                policyEntityQuery.setParameter("pScope", split[0]);
+                List<?> peResult = policyEntityQuery.getResultList();
+                if(!peResult.isEmpty()){
+                    Query getPolicyVersion = em.createQuery("Select p from PolicyVersion p where p.policyName=:pname");
+                    getPolicyVersion.setParameter("pname", removeVersionExtension.replace(".", File.separator));
+                    List<?> pvResult = getPolicyVersion.getResultList();
+                    PolicyVersion pVersion = (PolicyVersion) pvResult.get(0);
+                    int newVersion = 0;
+                    em.getTransaction().begin();
+                    Class.forName(papDbDriver);
+                    con = DriverManager.getConnection(papDbUrl,papDbUser,papDbPassword);
 
-       private String deletePolicyFromPDPGroup (OnapPDPGroup group, ONAPLoggingContext loggingContext){
-               PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getDbDaoTransaction();
-               String response = null;
-               loggingContext.setServiceName("API:PAP.DeleteHandler");
-               OnapPDPGroup existingGroup = null;
-               try {
-                       existingGroup = XACMLPapServlet.getPAPEngine().getGroup(group.getId());
-               } catch (PAPException e1) {
-                       PolicyLogger.error("Exception occured While Deleting Policy From PDP Group"+e1);
-               }
-               if (!(group instanceof StdPDPGroup) || existingGroup == null || !(group.getId().equals(existingGroup.getId()))) {
-                       String existingID = null;
-                       if(existingGroup != null){
-                               existingID = existingGroup.getId();
-                       }
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingID + " objectFromJSON="+group);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Failed - See Error.log");
-                       response = "No Group";
-                       return response;
-               }
-               // The Path on the PAP side is not carried on the RESTful interface with the AC
-               // (because it is local to the PAP)
-               // so we need to fill that in before submitting the group for update
-               ((StdPDPGroup)group).setDirectory(((StdPDPGroup)existingGroup).getDirectory());
-               try{
-                       acPutTransaction.updateGroup(group, "XACMLPapServlet.doDelete");
-               } catch(Exception e){
-                       PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
-                                       +"group="+existingGroup.getId());
-                       response = "DB Error";
-                       return response;
-               }
-               try {
-                       XACMLPapServlet.getPAPEngine().updateGroup(group);
-               } catch (PAPException e) {
-                       PolicyLogger.error("Exception occured While Updating PDP Groups"+e);
-                       response = "error in updateGroup method";
-               }
-               PolicyLogger.debug("Group '" + group.getId() + "' updated");
-               acPutTransaction.commitTransaction();
-               // Group changed, which might include changing the policies
-               try {
-                       newgroup = existingGroup;
-               }  catch (Exception e) {
-                       PolicyLogger.error("Exception occured in Group Change Method"+e);
-                       response = "error in groupChanged method";
-               }
-               if (response==null){
-                       response = "success";
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Policy successfully deleted!");
-               }
-               loggingContext.transactionEnded();
-               PolicyLogger.audit("Transaction Ended");
-               return response;
-       }
-       
-       public OnapPDPGroup getDeletedGroup(){
-               return newgroup;
-       }
-       
-       public boolean preSafetyCheck(PDPPolicy policy) {
-               return true;
-       }
-       
-       public static DeleteHandler getInstance() {
-               try {
-                       Class<?> deleteHandler = Class.forName(XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
-                       return (DeleteHandler) deleteHandler.newInstance(); 
-               } catch (Exception e) {
-                       logger.error(e.getMessage(),e);
-               }
-               return null;
-       }
+                    if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
+                        boolean groupCheck = checkPolicyGroupEntity(con, peResult);
+                        if(!groupCheck){
+                            for(Object peData : peResult){
+                                policyEntity = (PolicyEntity) peData;
+                                status = deletePolicyEntityData(em, policyEntity);
+                            }
+                        }else{
+                            status = POLICY_IN_PDP;
+                        }
+                        if(status.equals(ERROR)){
+                            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
+                            response.addHeader(ERROR, UNKNOWN);
+                            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                            return;
+                        }else if(status.equals(POLICY_IN_PDP)){
+                            PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
+                            response.addHeader(ERROR, POLICY_IN_PDP);
+                            response.setStatus(HttpServletResponse.SC_CONFLICT);
+                            return;
+                        }else{
+                            try{
+                                policyVersionDeleted = true;
+                                em.remove(pVersion);
+                            }catch(Exception e){
+                                logger.error(e.getMessage(),e);
+                                policyVersionDeleted = false;
+                            }
+                        }
+                    }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")){
+                        boolean groupCheck = checkPolicyGroupEntity(con, peResult);
+                        if(!groupCheck){
+                            policyEntity = (PolicyEntity) peResult.get(0);
+                            status = deletePolicyEntityData(em, policyEntity);
+                        }else{
+                            status = POLICY_IN_PDP;
+                        }
+
+                        if(ERROR.equals(status)){
+                            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
+                            response.addHeader(ERROR, UNKNOWN);
+                            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                            return;
+                        }else if(POLICY_IN_PDP.equals(status)){
+                            PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
+                            response.addHeader(ERROR, POLICY_IN_PDP);
+                            response.setStatus(HttpServletResponse.SC_CONFLICT);
+                            return;
+                        }else{
+                            if(currentVersion > 1){
+                                if(!peResult.isEmpty()){
+                                    for(Object object : peResult){
+                                        policyEntity = (PolicyEntity) object;
+                                        String policyEntityName = policyEntity.getPolicyName().replace(".xml", "");
+                                        int policyEntityVersion = Integer.parseInt(policyEntityName.substring(policyEntityName.lastIndexOf('.')+1));
+                                        if(policyEntityVersion > newVersion){
+                                            newVersion = policyEntityVersion-1;
+                                        }
+                                    }
+                                }
+                                pVersion.setActiveVersion(newVersion);
+                                pVersion.setHigherVersion(newVersion);
+                                try{
+                                    policyVersionDeleted = true;
+                                    em.persist(pVersion);
+                                }catch(Exception e){
+                                    logger.error(e.getMessage(),e);
+                                    policyVersionDeleted = false;
+                                }
+                            }else{
+                                try{
+                                    policyVersionDeleted = true;
+                                    em.remove(pVersion);
+                                }catch(Exception e){
+                                    logger.error(e.getMessage(),e);
+                                    policyVersionDeleted = false;
+                                }
+                            }
+                        }
+                    }
+                }else{
+                    PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
+                    response.addHeader(ERROR, UNKNOWN);
+                    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                    return;
+                }
+            }
+            em.getTransaction().commit();
+        }catch(Exception e){
+            em.getTransaction().rollback();
+            PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " ERROR");
+            response.addHeader(ERROR, "deleteDB");
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            return;
+        } finally {
+            em.close();
+            if(con != null){
+                con.close();
+            }
+        }
+
+        if (policyVersionDeleted) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("successMapKey", "success");
+            response.addHeader("operation", "delete");
+            return;
+        } else {
+            PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
+            response.addHeader(ERROR, UNKNOWN);
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+            return;
+        }
+    }
+
+    public static String deletePolicyEntityData(EntityManager em, PolicyEntity policyEntity){
+        PolicyElasticSearchController controller = new PolicyElasticSearchController();
+        PolicyRestAdapter policyData = new PolicyRestAdapter();
+        String policyName = policyEntity.getPolicyName();
+        try{
+            if(policyName.contains("Config_")){
+                em.remove(policyEntity.getConfigurationData());
+            }else if(policyName.contains("Action_")){
+                em.remove(policyEntity.getActionBodyEntity());
+            }
+            String searchPolicyName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
+            policyData.setNewFileName(searchPolicyName);
+            controller.deleteElk(policyData);
+            em.remove(policyEntity);
+        }catch(Exception e){
+            logger.error(e.getMessage(),e);
+            return ERROR;
+        }
+        return "success";
+    }
+
+    public static boolean checkPolicyGroupEntity(Connection con, List<?> peResult) throws SQLException{
+        for(Object peData : peResult){
+            PolicyEntity policyEntity = (PolicyEntity) peData;
+            try(Statement st = con.createStatement();
+                    ResultSet rs = st.executeQuery("Select * from PolicyGroupEntity where policyid = '"+policyEntity.getPolicyId()+"'")){
+                boolean gEntityList = rs.next();
+                if(gEntityList){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    public void doAPIDeleteFromPDP(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext) throws IOException {
+
+        String policyName = request.getParameter("policyName");
+        String groupId = request.getParameter("groupId");
+        String responseString = null;
+
+        if(groupId != null && !groupId.matches(REGEX) ){
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader("error",ERROR);
+            response.addHeader("message", "Group Id is not valid");
+            return;
+        }
+
+        PolicyLogger.info("JSON request from API to Delete Policy from the PDP: " + policyName);
+
+        // for PUT operations the group may or may not need to exist before the operation can be done
+        OnapPDPGroup group = null;
+        try {
+            group = XACMLPapServlet.getPAPEngine().getGroup(groupId);
+        } catch (PAPException e) {
+            PolicyLogger.error("Exception occured While PUT operation is performing for PDP Group"+e);
+        }
+        if (group == null) {
+            String message = "Unknown groupId '" + groupId + "'.";
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            response.addHeader(ERROR, "UnknownGroup");
+            response.addHeader("message", message);
+            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        } else {
+            loggingContext.setServiceName("API:PAP.deletPolicyFromPDPGroup");
+            if (policyName.contains("xml")) {
+                PolicyLogger.debug("The full file name including the extension was provided for policyName.. continue.");
+            } else {
+                String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
+                        + "policyName must be the full name of the file to be deleted including version and extension";
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Invalid policyName... "
+                        + "policyName must be the full name of the file to be deleted including version and extension");
+                response.addHeader(ERROR, message);
+                response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                return;
+            }
+            RemoveGroupPolicy removePolicy = new RemoveGroupPolicy((StdPDPGroup) group);
+            PDPPolicy policy =  group.getPolicy(policyName);
+            if (policy != null) {
+
+                if ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param"))) {
+                    if (preSafetyCheck(policy)) {
+                        PolicyLogger.debug("Precheck Successful.");
+                    }
+                }
+                PolicyLogger.info("Preparing to remove policy from group: " + group.getId());
+                removePolicy.prepareToRemove(policy);
+                OnapPDPGroup updatedGroup = removePolicy.getUpdatedObject();
+                responseString = deletePolicyFromPDPGroup(updatedGroup, loggingContext);
+            } else {
+                String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP.";
+                PolicyLogger.error(message);
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Policy does not exist on the PDP.");
+                response.addHeader(ERROR, message);
+                response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                return;
+            }
+        }
+        if (responseString.equals("success")) {
+            loggingContext.transactionEnded();
+            PolicyLogger.info("Policy successfully deleted!");
+            PolicyLogger.audit("Policy successfully deleted!");
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("successMapKey", "success");
+            response.addHeader("operation", "delete");
+            return;
+        } else if (responseString.equals("No Group")) {
+            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Group update had bad input.";
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input.");
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            response.addHeader(ERROR, "groupUpdate");
+            response.addHeader("message", message);
+            return;
+        } else if (responseString.equals("DB Error")) {
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database");
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            response.addHeader(ERROR, "deleteDB");
+            return;
+        } else {
+            PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + " Failed to delete the policy for an unknown reason.  Check the file system and other logs for further information.");
+            response.addHeader(ERROR, UNKNOWN);
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+            return;
+        }
+    }
+
+    private String deletePolicyFromPDPGroup (OnapPDPGroup group, ONAPLoggingContext loggingContext){
+        PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getDbDaoTransaction();
+        String response = null;
+        loggingContext.setServiceName("API:PAP.DeleteHandler");
+        OnapPDPGroup existingGroup = null;
+        try {
+            existingGroup = XACMLPapServlet.getPAPEngine().getGroup(group.getId());
+        } catch (PAPException e1) {
+            PolicyLogger.error("Exception occured While Deleting Policy From PDP Group"+e1);
+        }
+        if (!(group instanceof StdPDPGroup) || existingGroup == null || !(group.getId().equals(existingGroup.getId()))) {
+            String existingID = null;
+            if(existingGroup != null){
+                existingID = existingGroup.getId();
+            }
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingID + " objectFromJSON="+group);
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Transaction Failed - See Error.log");
+            response = "No Group";
+            return response;
+        }
+        // The Path on the PAP side is not carried on the RESTful interface with the AC
+        // (because it is local to the PAP)
+        // so we need to fill that in before submitting the group for update
+        ((StdPDPGroup)group).setDirectory(((StdPDPGroup)existingGroup).getDirectory());
+        try{
+            acPutTransaction.updateGroup(group, "XACMLPapServlet.doDelete");
+        } catch(Exception e){
+            PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
+                    +"group="+existingGroup.getId());
+            response = "DB Error";
+            return response;
+        }
+        try {
+            XACMLPapServlet.getPAPEngine().updateGroup(group);
+        } catch (PAPException e) {
+            PolicyLogger.error("Exception occured While Updating PDP Groups"+e);
+            response = "error in updateGroup method";
+        }
+        PolicyLogger.debug("Group '" + group.getId() + "' updated");
+        acPutTransaction.commitTransaction();
+        // Group changed, which might include changing the policies
+        try {
+            newgroup = existingGroup;
+        }  catch (Exception e) {
+            PolicyLogger.error("Exception occured in Group Change Method"+e);
+            response = "error in groupChanged method";
+        }
+        if (response==null){
+            response = "success";
+            loggingContext.transactionEnded();
+            PolicyLogger.audit("Policy successfully deleted!");
+        }
+        loggingContext.transactionEnded();
+        PolicyLogger.audit("Transaction Ended");
+        return response;
+    }
+
+    public OnapPDPGroup getDeletedGroup(){
+        return newgroup;
+    }
+
+    public boolean preSafetyCheck(PDPPolicy policy) {
+        return true;
+    }
+
+    public static DeleteHandler getInstance() {
+        try {
+            Class<?> deleteHandler = Class.forName(XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
+            return (DeleteHandler) deleteHandler.newInstance();
+        } catch (Exception e) {
+            logger.error(e.getMessage(),e);
+        }
+        return null;
+    }
 
 }
index 6aec7a9..89ce188 100644 (file)
@@ -28,38 +28,38 @@ import org.onap.policy.common.logging.flexlogger.Logger;
 import com.att.research.xacml.util.XACMLProperties;
 
 public interface DictionaryHandler {
-       public static final Logger logger = FlexLogger.getLogger(DictionaryHandler.class);
-       String DICTIONARY_DEFAULT_CLASS = DictionaryHandlerImpl.class.getName();
+    public static final Logger logger = FlexLogger.getLogger(DictionaryHandler.class);
+    String DICTIONARY_DEFAULT_CLASS = DictionaryHandlerImpl.class.getName();
 
-       /*
-        * Get Instance
-        */
-       public static DictionaryHandler getInstance(){
-               try {
-                       Class<?> dictionaryHandler = Class.forName(XACMLProperties.getProperty("dictionary.impl.className", DICTIONARY_DEFAULT_CLASS));
-                       DictionaryHandler instance = (DictionaryHandler) dictionaryHandler.newInstance(); 
-                       return instance;
-               } catch (Exception e) {
-                       logger.error(e.getMessage(),e);
-               }
-               return null;
-       }
-       
-       /*
-        * Get Equivalent for Dictionary Services.
-        */
-       public void doDictionaryAPIGet(HttpServletRequest request, HttpServletResponse response);
-       /*
-        * Put Equivalent for Dictionary Services. 
-        */
-       public void doDictionaryAPIPut(HttpServletRequest request, HttpServletResponse response);
-       
-       /**
-        * Can be used to extend the services.
-        * 
-        * getflag=true indicates Get Request.
-        * getflag=false indicates Put Request.  
-        * @return 
-        */
-       public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag);
+    /*
+     * Get Instance
+     */
+    public static DictionaryHandler getInstance(){
+        try {
+            Class<?> dictionaryHandler = Class.forName(XACMLProperties.getProperty("dictionary.impl.className", DICTIONARY_DEFAULT_CLASS));
+            DictionaryHandler instance = (DictionaryHandler) dictionaryHandler.newInstance();
+            return instance;
+        } catch (Exception e) {
+            logger.error(e.getMessage(),e);
+        }
+        return null;
+    }
+
+    /*
+     * Get Equivalent for Dictionary Services.
+     */
+    public void doDictionaryAPIGet(HttpServletRequest request, HttpServletResponse response);
+    /*
+     * Put Equivalent for Dictionary Services.
+     */
+    public void doDictionaryAPIPut(HttpServletRequest request, HttpServletResponse response);
+
+    /**
+     * Can be used to extend the services.
+     *
+     * getflag=true indicates Get Request.
+     * getflag=false indicates Put Request.
+     * @return
+     */
+    public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag);
 }
index d0cd985..b90592b 100644 (file)
@@ -28,302 +28,302 @@ import org.onap.policy.pap.xacml.rest.service.DictionaryService;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 
 public class DictionaryHandlerImpl implements DictionaryHandler{
-       /*
-        * Get Equivalent for Dictionary Services.
-        */
-       public void doDictionaryAPIGet(HttpServletRequest request, HttpServletResponse response) {
-               String dictionaryType = request.getParameter("dictionaryType");
-               try {
-                       DictionaryService dictionary = new DictionaryService();
-                       switch (dictionaryType) {
-                       case "OnapName":
-                               dictionary.getOnapDictionary(response);
-                               break;
-                       case "Attribute":
-                               dictionary.getAttributeDictionary(response);
-                               break;
-                       case "Action":
-                               dictionary.getActionPolicyDictionary(response);
-                               break;
-                       case "BRMSParamTemplate":
-                               dictionary.getBRMSParamDictionary(response);
-                               break;
-                       case "VSCLAction":
-                               dictionary.getVSCLAction(response);
-                               break;
-                       case "VNFType":
-                               dictionary.getVnfType(response);
-                               break;
-                       case "PEPOptions":
-                               dictionary.getPEPOptions(response);
-                               break;
-                       case "Varbind":
-                               dictionary.getVarbind(response);
-                               break;
-                       case "Service":
-                               dictionary.getServiceType(response);
-                               break;
-                       case "Site":
-                               dictionary.getSiteType(response);
-                               break;
-                       case "Settings":
-                               dictionary.getSettingsDictionary(response);
-                               break;
-                       case "RainyDayTreatments":
-                               dictionary.getRainyDayDictionary(response);
-                               break;
-                       case "DescriptiveScope":
-                               dictionary.getDescriptiveDictionary(response);
-                               break;
-                       case "ActionList":
-                               dictionary.getActionListDictionary(response);
-                               break;
-                       case "ProtocolList":
-                               dictionary.getProtocolListDictionary(response);
-                               break;
-                       case "Zone":
-                               dictionary.getZoneDictionary(response);
-                               break;
-                       case "SecurityZone":
-                               dictionary.getSecurityZoneDictionary(response);
-                               break;
-                       case "PrefixList":
-                               dictionary.getPrefixListDictionary(response);
-                               break;
-                       case "AddressGroup":
-                               dictionary.getAddressGroupDictionary(response);
-                               break;
-                       case "ServiceGroup":
-                               dictionary.getServiceGroupDictionary(response);
-                               break;
-                       case "ServiceList":
-                               dictionary.getServiceListDictionary(response);
-                               break;
-                       case "TermList":
-                       case "RuleList":
-                       case "FirewallRuleList":
-                       case "Term":
-                               dictionary.getTermListDictionary(response);
-                               break;
-                       case "MicroServiceLocation":
-                               dictionary.getMicroServiceLocationDictionary(response);
-                               break;
-                       case "MicroServiceConfigName":
-                               dictionary.getMicroServiceConfigNameDictionary(response);
-                               break;
-                       case "DCAEUUID":
-                               dictionary.getDCAEUUIDDictionary(response);
-                               break;
-                       case "MicroServiceModels":
-                               dictionary.getMicroServiceModelsDictionary(response);
-                               break;
-                       case "MicroServiceDictionary":
-                               dictionary.getMicroServiceDictionary(response);
-                               break;
-                       case "OptimizationModels":
-                               dictionary.getOptimizationModelsDictionary(response);
-                               break;
-                       case "PolicyScopeService":
-                               dictionary.getPSServiceDictionary(response);
-                               break;
-                       case "PolicyScopeResource":
-                               dictionary.getPSResourceDictionary(response);
-                               break;
-                       case "PolicyScopeType":
-                               dictionary.getPSTypeDictionary(response);
-                               break;
-                       case "PolicyScopeClosedLoop":
-                               dictionary.getPSClosedLoopDictionary(response);
-                               break;
-                       case "GroupPolicyScopeList":
-                               dictionary.getPSGroupScopeDictionary(response);
-                               break;
-                       case "RiskType":
-                               dictionary.getRiskTypeDictionary(response);
-                               break;
-                       case "SafePolicyWarning":
-                               dictionary.getSafePolicyWarningDictionary(response);
-                               break;
-                       default:
-                               extendedOptions(dictionaryType, request, response, true);
-                               return;
-                       }
-               } catch (Exception e) {
-                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DictionaryHandler", " Error Querying the Database.");
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-                       response.addHeader("error", message);
-                       return;
-               }
-       }
-       
-       /**
-        * Can be used to extend the services.
-        * 
-        * getflag=true indicates Get Request.
-        * getflag=false indicates Put Request.  
-        * @return 
-        */
-       public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag) {
-               // Default code
-               String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Invalid Dictionary in Request.";
-               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "DictionaryHandler", " Invalid Dictionary in Request.");
-               response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-               response.setHeader("error", "dictionary");
-               response.addHeader("error", message);
-               return null;
-       }
+    /*
+     * Get Equivalent for Dictionary Services.
+     */
+    public void doDictionaryAPIGet(HttpServletRequest request, HttpServletResponse response) {
+        String dictionaryType = request.getParameter("dictionaryType");
+        try {
+            DictionaryService dictionary = new DictionaryService();
+            switch (dictionaryType) {
+            case "OnapName":
+                dictionary.getOnapDictionary(response);
+                break;
+            case "Attribute":
+                dictionary.getAttributeDictionary(response);
+                break;
+            case "Action":
+                dictionary.getActionPolicyDictionary(response);
+                break;
+            case "BRMSParamTemplate":
+                dictionary.getBRMSParamDictionary(response);
+                break;
+            case "VSCLAction":
+                dictionary.getVSCLAction(response);
+                break;
+            case "VNFType":
+                dictionary.getVnfType(response);
+                break;
+            case "PEPOptions":
+                dictionary.getPEPOptions(response);
+                break;
+            case "Varbind":
+                dictionary.getVarbind(response);
+                break;
+            case "Service":
+                dictionary.getServiceType(response);
+                break;
+            case "Site":
+                dictionary.getSiteType(response);
+                break;
+            case "Settings":
+                dictionary.getSettingsDictionary(response);
+                break;
+            case "RainyDayTreatments":
+                dictionary.getRainyDayDictionary(response);
+                break;
+            case "DescriptiveScope":
+                dictionary.getDescriptiveDictionary(response);
+                break;
+            case "ActionList":
+                dictionary.getActionListDictionary(response);
+                break;
+            case "ProtocolList":
+                dictionary.getProtocolListDictionary(response);
+                break;
+            case "Zone":
+                dictionary.getZoneDictionary(response);
+                break;
+            case "SecurityZone":
+                dictionary.getSecurityZoneDictionary(response);
+                break;
+            case "PrefixList":
+                dictionary.getPrefixListDictionary(response);
+                break;
+            case "AddressGroup":
+                dictionary.getAddressGroupDictionary(response);
+                break;
+            case "ServiceGroup":
+                dictionary.getServiceGroupDictionary(response);
+                break;
+            case "ServiceList":
+                dictionary.getServiceListDictionary(response);
+                break;
+            case "TermList":
+            case "RuleList":
+            case "FirewallRuleList":
+            case "Term":
+                dictionary.getTermListDictionary(response);
+                break;
+            case "MicroServiceLocation":
+                dictionary.getMicroServiceLocationDictionary(response);
+                break;
+            case "MicroServiceConfigName":
+                dictionary.getMicroServiceConfigNameDictionary(response);
+                break;
+            case "DCAEUUID":
+                dictionary.getDCAEUUIDDictionary(response);
+                break;
+            case "MicroServiceModels":
+                dictionary.getMicroServiceModelsDictionary(response);
+                break;
+            case "MicroServiceDictionary":
+                dictionary.getMicroServiceDictionary(response);
+                break;
+            case "OptimizationModels":
+                dictionary.getOptimizationModelsDictionary(response);
+                break;
+            case "PolicyScopeService":
+                dictionary.getPSServiceDictionary(response);
+                break;
+            case "PolicyScopeResource":
+                dictionary.getPSResourceDictionary(response);
+                break;
+            case "PolicyScopeType":
+                dictionary.getPSTypeDictionary(response);
+                break;
+            case "PolicyScopeClosedLoop":
+                dictionary.getPSClosedLoopDictionary(response);
+                break;
+            case "GroupPolicyScopeList":
+                dictionary.getPSGroupScopeDictionary(response);
+                break;
+            case "RiskType":
+                dictionary.getRiskTypeDictionary(response);
+                break;
+            case "SafePolicyWarning":
+                dictionary.getSafePolicyWarningDictionary(response);
+                break;
+            default:
+                extendedOptions(dictionaryType, request, response, true);
+                return;
+            }
+        } catch (Exception e) {
+            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DictionaryHandler", " Error Querying the Database.");
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader("error", "dictionaryDBQuery");
+            response.addHeader("error", message);
+            return;
+        }
+    }
 
-       public void doDictionaryAPIPut(HttpServletRequest request, HttpServletResponse response) {
-               String result = null;
-               String dictionaryType = request.getParameter("dictionaryType");
-               String operation = request.getParameter("operation");         
-               try {
-                       DictionaryService dictionary = new DictionaryService();
-                       switch (dictionaryType) {
-                       case "OnapName":
-                               result = dictionary.saveOnapDictionary(request, response);
-                               break;
-                       case "Attribute":
-                               result = dictionary.saveAttributeDictionary(request, response);
-                               break;
-                       case "Action":
-                               result = dictionary.saveActionPolicyDictionary(request, response);
-                               break;
-                       case "BRMSParamTemplate":
-                               result = dictionary.saveBRMSParamDictionary(request, response);
-                               break;
-                       case "VSCLAction":
-                               result = dictionary.saveVSCLAction(request, response);
-                               break;
-                       case "VNFType":
-                               result = dictionary.saveVnfType(request, response);
-                               break;
-                       case "PEPOptions":
-                               result = dictionary.savePEPOptions(request, response);
-                               break;
-                       case "Varbind":
-                               result = dictionary.saveVarbind(request, response);
-                               break;
-                       case "Service":
-                               result = dictionary.saveServiceType(request, response);
-                               break;
-                       case "Site":
-                               result = dictionary.saveSiteType(request, response);
-                               break;
-                       case "Settings":
-                               result = dictionary.saveSettingsDictionary(request, response);
-                               break;
-                       case "RainyDayTreatments":
-                               result = dictionary.saveRainyDayDictionary(request, response);
-                               break;
-                       case "DescriptiveScope":
-                               result = dictionary.saveDescriptiveDictionary(request, response);
-                               break;
-                       case "ActionList":
-                               result = dictionary.saveActionListDictionary(request, response);
-                               break;
-                       case "ProtocolList":
-                               result = dictionary.saveProtocolListDictionary(request, response);
-                               break;
-                       case "Zone":
-                               result = dictionary.saveZoneDictionary(request, response);
-                               break;
-                       case "SecurityZone":
-                               result = dictionary.saveSecurityZoneDictionary(request, response);
-                               break;
-                       case "PrefixList":
-                               result = dictionary.savePrefixListDictionary(request, response);
-                               break;
-                       case "AddressGroup":
-                               result = dictionary.saveAddressGroupDictionary(request, response);
-                               break;
-                       case "ServiceGroup":
-                               result = dictionary.saveServiceGroupDictionary(request, response);
-                               break;
-                       case "ServiceList":
-                               result = dictionary.saveServiceListDictionary(request, response);
-                               break;
-                       case "TermList":
-                       case "RuleList":
-                       case "FirewallRuleList":
-                       case "Term":
-                               result = dictionary.saveTermListDictionary(request, response);
-                               break;
-                       case "MicroServiceLocation":
-                               result = dictionary.saveMicroServiceLocationDictionary(request, response);
-                               break;
-                       case "MicroServiceConfigName":
-                               result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
-                               break;
-                       case "DCAEUUID":
-                               result = dictionary.saveDCAEUUIDDictionary(request, response);
-                               break;
-                       case "MicroServiceModels":
-                               result = dictionary.saveMicroServiceModelsDictionary(request, response);
-                               break;
-                       case "MicroServiceDictionary":
-                               result = dictionary.saveMicroServiceDictionary(request, response);
-                               break;
-                       case "OptimizationModels":
-                               result = dictionary.saveOptimizationModelsDictionary(request, response);
-                               break;
-                       case "PolicyScopeService":
-                               result = dictionary.savePSServiceDictionary(request, response);
-                               break;
-                       case "PolicyScopeResource":
-                               result = dictionary.savePSResourceDictionary(request, response);
-                               break;
-                       case "PolicyScopeType":
-                               result = dictionary.savePSTypeDictionary(request, response);
-                               break;
-                       case "PolicyScopeClosedLoop":
-                               result = dictionary.savePSClosedLoopDictionary(request, response);
-                               break;
-                       case "GroupPolicyScopeList":
-                               result = dictionary.savePSGroupScopeDictionary(request, response);
-                               break;
-                       case "RiskType":
-                               result = dictionary.saveRiskTypeDictionary(request, response);
-                               break;
-                       case "SafePolicyWarning":
-                               result = dictionary.saveSafePolicyWarningDictionary(request, response);
-                               break;
-                       default:
-                               result = extendedOptions(dictionaryType, request, response, false);
-                               if(result==null){
-                                       return;
-                               }else{
-                                       break;
-                               }
-                       }
-               } catch (Exception e) {
-                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database: " + e.getMessage();
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Updating the Database.");
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                       response.addHeader("error", message);
-                       return;
-               }
-               if (result.equalsIgnoreCase("Success")) {
-                       response.setStatus(HttpServletResponse.SC_OK);                              
-                       response.addHeader("successMapKey", "success");
-                       if (operation.equalsIgnoreCase("update")) {
-                               response.addHeader("operation",  "updateDictionary");
-                       } else {
-                               response.addHeader("operation", "createDictionary");
-                       }
-               } else if (result.equalsIgnoreCase("Duplicate")) {
-                       response.setStatus(HttpServletResponse.SC_CONFLICT);
-                       response.addHeader("error", "dictionaryItemExists");
-               } else if (result.equalsIgnoreCase("DuplicateGroup")) {
-                       response.setStatus(HttpServletResponse.SC_CONFLICT);
-                       response.addHeader("error", "duplicateGroup");
-               } else {
-                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database.";
-               PolicyLogger.error(message);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 
-                       response.addHeader("error", message);
-               }
-       }
+    /**
+     * Can be used to extend the services.
+     *
+     * getflag=true indicates Get Request.
+     * getflag=false indicates Put Request.
+     * @return
+     */
+    public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag) {
+        // Default code
+        String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Invalid Dictionary in Request.";
+        PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "DictionaryHandler", " Invalid Dictionary in Request.");
+        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+        response.setHeader("error", "dictionary");
+        response.addHeader("error", message);
+        return null;
+    }
+
+    public void doDictionaryAPIPut(HttpServletRequest request, HttpServletResponse response) {
+        String result = null;
+        String dictionaryType = request.getParameter("dictionaryType");
+        String operation = request.getParameter("operation");
+        try {
+            DictionaryService dictionary = new DictionaryService();
+            switch (dictionaryType) {
+            case "OnapName":
+                result = dictionary.saveOnapDictionary(request, response);
+                break;
+            case "Attribute":
+                result = dictionary.saveAttributeDictionary(request, response);
+                break;
+            case "Action":
+                result = dictionary.saveActionPolicyDictionary(request, response);
+                break;
+            case "BRMSParamTemplate":
+                result = dictionary.saveBRMSParamDictionary(request, response);
+                break;
+            case "VSCLAction":
+                result = dictionary.saveVSCLAction(request, response);
+                break;
+            case "VNFType":
+                result = dictionary.saveVnfType(request, response);
+                break;
+            case "PEPOptions":
+                result = dictionary.savePEPOptions(request, response);
+                break;
+            case "Varbind":
+                result = dictionary.saveVarbind(request, response);
+                break;
+            case "Service":
+                result = dictionary.saveServiceType(request, response);
+                break;
+            case "Site":
+                result = dictionary.saveSiteType(request, response);
+                break;
+            case "Settings":
+                result = dictionary.saveSettingsDictionary(request, response);
+                break;
+            case "RainyDayTreatments":
+                result = dictionary.saveRainyDayDictionary(request, response);
+                break;
+            case "DescriptiveScope":
+                result = dictionary.saveDescriptiveDictionary(request, response);
+                break;
+            case "ActionList":
+                result = dictionary.saveActionListDictionary(request, response);
+                break;
+            case "ProtocolList":
+                result = dictionary.saveProtocolListDictionary(request, response);
+                break;
+            case "Zone":
+                result = dictionary.saveZoneDictionary(request, response);
+                break;
+            case "SecurityZone":
+                result = dictionary.saveSecurityZoneDictionary(request, response);
+                break;
+            case "PrefixList":
+                result = dictionary.savePrefixListDictionary(request, response);
+                break;
+            case "AddressGroup":
+                result = dictionary.saveAddressGroupDictionary(request, response);
+                break;
+            case "ServiceGroup":
+                result = dictionary.saveServiceGroupDictionary(request, response);
+                break;
+            case "ServiceList":
+                result = dictionary.saveServiceListDictionary(request, response);
+                break;
+            case "TermList":
+            case "RuleList":
+            case "FirewallRuleList":
+            case "Term":
+                result = dictionary.saveTermListDictionary(request, response);
+                break;
+            case "MicroServiceLocation":
+                result = dictionary.saveMicroServiceLocationDictionary(request, response);
+                break;
+            case "MicroServiceConfigName":
+                result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
+                break;
+            case "DCAEUUID":
+                result = dictionary.saveDCAEUUIDDictionary(request, response);
+                break;
+            case "MicroServiceModels":
+                result = dictionary.saveMicroServiceModelsDictionary(request, response);
+                break;
+            case "MicroServiceDictionary":
+                result = dictionary.saveMicroServiceDictionary(request, response);
+                break;
+            case "OptimizationModels":
+                result = dictionary.saveOptimizationModelsDictionary(request, response);
+                break;
+            case "PolicyScopeService":
+                result = dictionary.savePSServiceDictionary(request, response);
+                break;
+            case "PolicyScopeResource":
+                result = dictionary.savePSResourceDictionary(request, response);
+                break;
+            case "PolicyScopeType":
+                result = dictionary.savePSTypeDictionary(request, response);
+                break;
+            case "PolicyScopeClosedLoop":
+                result = dictionary.savePSClosedLoopDictionary(request, response);
+                break;
+            case "GroupPolicyScopeList":
+                result = dictionary.savePSGroupScopeDictionary(request, response);
+                break;
+            case "RiskType":
+                result = dictionary.saveRiskTypeDictionary(request, response);
+                break;
+            case "SafePolicyWarning":
+                result = dictionary.saveSafePolicyWarningDictionary(request, response);
+                break;
+            default:
+                result = extendedOptions(dictionaryType, request, response, false);
+                if(result==null){
+                    return;
+                }else{
+                    break;
+                }
+            }
+        } catch (Exception e) {
+            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database: " + e.getMessage();
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Updating the Database.");
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader("error", message);
+            return;
+        }
+        if (result.equalsIgnoreCase("Success")) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("successMapKey", "success");
+            if (operation.equalsIgnoreCase("update")) {
+                response.addHeader("operation",  "updateDictionary");
+            } else {
+                response.addHeader("operation", "createDictionary");
+            }
+        } else if (result.equalsIgnoreCase("Duplicate")) {
+            response.setStatus(HttpServletResponse.SC_CONFLICT);
+            response.addHeader("error", "dictionaryItemExists");
+        } else if (result.equalsIgnoreCase("DuplicateGroup")) {
+            response.setStatus(HttpServletResponse.SC_CONFLICT);
+            response.addHeader("error", "duplicateGroup");
+        } else {
+            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database.";
+            PolicyLogger.error(message);
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader("error", message);
+        }
+    }
 }
index 6e348fb..4dd87e2 100644 (file)
@@ -39,86 +39,86 @@ import org.onap.policy.common.logging.flexlogger.Logger;
 import com.att.research.xacml.util.XACMLProperties;
 
 public class PushPolicyHandler {
-       private static final Logger logger = FlexLogger.getLogger(PushPolicyHandler.class);
-       /*
-        * Get Active Version. 
-        */
-       public void getActiveVersion(HttpServletRequest request, HttpServletResponse response) {
-               EntityManager em = null;
-               if(XACMLPapServlet.getEmf()!=null){
-                       em = (EntityManager) XACMLPapServlet.getEmf().createEntityManager();
-               }
-               if (em==null){
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager with persistence unit: " + XACMLPapServlet.getPersistenceUnit());
-                       return;
-               }
-               String policyScope = request.getParameter("policyScope");
-               String filePrefix = request.getParameter("filePrefix");
-               String policyName = request.getParameter("policyName");
+    private static final Logger logger = FlexLogger.getLogger(PushPolicyHandler.class);
+    /*
+     * Get Active Version.
+     */
+    public void getActiveVersion(HttpServletRequest request, HttpServletResponse response) {
+        EntityManager em = null;
+        if(XACMLPapServlet.getEmf()!=null){
+            em = (EntityManager) XACMLPapServlet.getEmf().createEntityManager();
+        }
+        if (em==null){
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager with persistence unit: " + XACMLPapServlet.getPersistenceUnit());
+            return;
+        }
+        String policyScope = request.getParameter("policyScope");
+        String filePrefix = request.getParameter("filePrefix");
+        String policyName = request.getParameter("policyName");
 
-               String pvName = policyScope + File.separator + filePrefix + policyName;
-               int activeVersion = 0;
+        String pvName = policyScope + File.separator + filePrefix + policyName;
+        int activeVersion = 0;
 
-               //Get the Active Version to use in the ID
-               em.getTransaction().begin();
-               Query query = em.createQuery("Select p from PolicyVersion p where p.policyName=:pname");
-               query.setParameter("pname", pvName);
+        //Get the Active Version to use in the ID
+        em.getTransaction().begin();
+        Query query = em.createQuery("Select p from PolicyVersion p where p.policyName=:pname");
+        query.setParameter("pname", pvName);
 
-               @SuppressWarnings("rawtypes")
-               List result = query.getResultList();
-               PolicyVersion versionEntity = null;
-               if (!result.isEmpty()) {
-                       versionEntity = (PolicyVersion) result.get(0);
-                       em.persist(versionEntity);
-                       activeVersion = versionEntity.getActiveVersion();
-                       em.getTransaction().commit();
-               } else {
-                       PolicyLogger.debug("No PolicyVersion using policyName found");
-               }
+        @SuppressWarnings("rawtypes")
+        List result = query.getResultList();
+        PolicyVersion versionEntity = null;
+        if (!result.isEmpty()) {
+            versionEntity = (PolicyVersion) result.get(0);
+            em.persist(versionEntity);
+            activeVersion = versionEntity.getActiveVersion();
+            em.getTransaction().commit();
+        } else {
+            PolicyLogger.debug("No PolicyVersion using policyName found");
+        }
 
-               //clean up connection
-               em.close();
-               if (String.valueOf(activeVersion)!=null || !String.valueOf(activeVersion).equalsIgnoreCase("")) {                                                       
-                       response.setStatus(HttpServletResponse.SC_OK);                                                          
-                       response.addHeader("version", String.valueOf(activeVersion));                                                           
-               } else {
-                       response.setStatus(HttpServletResponse.SC_NOT_FOUND);                                                           
-               }
-       }
-       
-       /*
-        * Get Selected URI path. 
-        */
-       public void getSelectedURI(HttpServletRequest request, HttpServletResponse response) {
-               String gitPath = request.getParameter("gitPath");
-               File file = new File(gitPath);
-               PolicyLogger.debug("The fileItem is : " + file.toString());
-               URI selectedURI = file.toURI();
-               String uri = selectedURI.toString();
-               if (!uri.equalsIgnoreCase("")) {                                                        
-                       response.setStatus(HttpServletResponse.SC_OK);                                                          
-                       response.addHeader("selectedURI", uri);                                                         
-               } else {                                                
-                       response.setStatus(HttpServletResponse.SC_NOT_FOUND);                                                           
-               }                                               
-       }
-       
-       public boolean preSafetyCheck(StdPDPPolicy policy, String configHome){
-               return true;
-       }
-       
-       public boolean preSafetyCheck(OnapPDPGroup policy, String configHome){
-               return true;
-       }
-       
-       public static PushPolicyHandler getInstance() {
-               try {
-                       Class<?> pushPolicyHandler = Class.forName(XACMLProperties.getProperty("pushPolicy.impl.className", PushPolicyHandler.class.getName()));
-                       PushPolicyHandler instance = (PushPolicyHandler) pushPolicyHandler.newInstance(); 
-                       return instance;
-               } catch (Exception e) {
-                       logger.error(e.getMessage(),e);
-               }
-               return null;
-       }
+        //clean up connection
+        em.close();
+        if (String.valueOf(activeVersion)!=null || !String.valueOf(activeVersion).equalsIgnoreCase("")) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("version", String.valueOf(activeVersion));
+        } else {
+            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+        }
+    }
+
+    /*
+     * Get Selected URI path.
+     */
+    public void getSelectedURI(HttpServletRequest request, HttpServletResponse response) {
+        String gitPath = request.getParameter("gitPath");
+        File file = new File(gitPath);
+        PolicyLogger.debug("The fileItem is : " + file.toString());
+        URI selectedURI = file.toURI();
+        String uri = selectedURI.toString();
+        if (!uri.equalsIgnoreCase("")) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("selectedURI", uri);
+        } else {
+            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+        }
+    }
+
+    public boolean preSafetyCheck(StdPDPPolicy policy, String configHome){
+        return true;
+    }
+
+    public boolean preSafetyCheck(OnapPDPGroup policy, String configHome){
+        return true;
+    }
+
+    public static PushPolicyHandler getInstance() {
+        try {
+            Class<?> pushPolicyHandler = Class.forName(XACMLProperties.getProperty("pushPolicy.impl.className", PushPolicyHandler.class.getName()));
+            PushPolicyHandler instance = (PushPolicyHandler) pushPolicyHandler.newInstance();
+            return instance;
+        } catch (Exception e) {
+            logger.error(e.getMessage(),e);
+        }
+        return null;
+    }
 }
index 6606d38..335434f 100644 (file)
@@ -40,127 +40,127 @@ import org.xml.sax.SAXException;
 import com.att.research.xacml.util.XACMLProperties;
 
 public class SavePolicyHandler {
-       private static final Logger logger = FlexLogger.getLogger(SavePolicyHandler.class);
-       private HashMap<String, String> ErrorHeaders = null;
-       
-       public void doPolicyAPIPut(HttpServletRequest request, HttpServletResponse response) throws IOException {
-               String operation = request.getParameter("operation");
-               String policyType = request.getParameter("policyType");
-               String apiflag = request.getParameter("apiflag");
-               PolicyCreation creation = new PolicyCreation();
+    private static final Logger logger = FlexLogger.getLogger(SavePolicyHandler.class);
+    private HashMap<String, String> ErrorHeaders = null;
+
+    public void doPolicyAPIPut(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        String operation = request.getParameter("operation");
+        String policyType = request.getParameter("policyType");
+        String apiflag = request.getParameter("apiflag");
+        PolicyCreation creation = new PolicyCreation();
         if ( policyType != null ) {
-                       PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-                       if("update".equalsIgnoreCase(operation)){
-                               policyAdapter.setEditPolicy(true);
-                       }else{
-                               policyAdapter.setEditPolicy(false);
-                       }
-                       
-                       // get the request content into a String
-                       String json = null;
-                       // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
-                       java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
-                       scanner.useDelimiter("\\A");
-                       json =  scanner.hasNext() ? scanner.next() : "";
-                       scanner.close();
-                       
-                       if(policyAdapter.isEditPolicy()){
-                               PolicyLogger.info("SavePolicyHandler: JSON request from API to update a policy: " + json);
-                       } else {
-                               PolicyLogger.info("SavePolicyHandler: JSON request from API to create a policy: " + json);
-                       }
-                       
-                       // convert Object sent as JSON into local object
-                       StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
-                       //Set policyAdapter values including parentPath (Common to all policy types)
-                       try {
-                               PolicyLogger.info("SavePolicyHandler: Setting parameter values to PolicyAdapter");
+            PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+            if("update".equalsIgnoreCase(operation)){
+                policyAdapter.setEditPolicy(true);
+            }else{
+                policyAdapter.setEditPolicy(false);
+            }
+
+            // get the request content into a String
+            String json = null;
+            // read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
+            java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
+            scanner.useDelimiter("\\A");
+            json =  scanner.hasNext() ? scanner.next() : "";
+            scanner.close();
+
+            if(policyAdapter.isEditPolicy()){
+                PolicyLogger.info("SavePolicyHandler: JSON request from API to update a policy: " + json);
+            } else {
+                PolicyLogger.info("SavePolicyHandler: JSON request from API to create a policy: " + json);
+            }
+
+            // convert Object sent as JSON into local object
+            StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
+            //Set policyAdapter values including parentPath (Common to all policy types)
+            try {
+                PolicyLogger.info("SavePolicyHandler: Setting parameter values to PolicyAdapter");
                 policyAdapter = setDataToPolicyAdapter(policy, policyType, apiflag);
                 
                 if(!extendedPolicyOptions(policyAdapter, response)){
-                       creation.savePolicy(policyAdapter, response);
+                    creation.savePolicy(policyAdapter, response);
                 }
                 if ("update".equalsIgnoreCase(operation)) {
-                                       response.addHeader("operation",  "update");
-                               } else {
-                                       response.addHeader("operation", "create");
-                               }
-                       } catch (Exception e1) {
-                               logger.error("Could not set data to policy adapter "+e1.getMessage(),e1);
-                       }
+                    response.addHeader("operation",  "update");
+                } else {
+                    response.addHeader("operation", "create");
+                }
+            } catch (Exception e1) {
+                logger.error("Could not set data to policy adapter "+e1.getMessage(),e1);
+            }
         }
-       }
+    }
 
-       private PolicyRestAdapter setDataToPolicyAdapter(StdPAPPolicy policy, String policyType, String apiflag) throws ParserConfigurationException, ServletException, SAXException, IOException{
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               policyAdapter.setApiflag(apiflag);
-               /*
-                * set policy adapter values for Building JSON object containing policy data
-                */
-               //Common among policy types
-               policyAdapter.setPolicyName(policy.getPolicyName());
-               policyAdapter.setPolicyDescription(policy.getPolicyDescription());
-               policyAdapter.setOnapName(policy.getOnapName()); //Config Base and Decision Policies
-               policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
-       
-               policyAdapter.setPolicyType(policyType);
-               policyAdapter.setDynamicFieldConfigAttributes(policy.getDynamicFieldConfigAttributes());
-               policyAdapter.setEditPolicy(policy.isEditPolicy());
-               policyAdapter.setEntityManagerFactory(XACMLPapServlet.getEmf());
-               //Config Specific
-               policyAdapter.setConfigName(policy.getConfigName());  //Base and Firewall
-               policyAdapter.setConfigBodyData(policy.getConfigBodyData()); //Base
-               policyAdapter.setConfigType((policy.getConfigType()!=null) ? policy.getConfigType().toUpperCase(): null);  //Base
-               policyAdapter.setJsonBody(policy.getJsonBody()); //Firewall, ClosedLoop
-               policyAdapter.setConfigPolicyType(policy.getConfigPolicyType());
-               policyAdapter.setDraft(policy.isDraft()); //ClosedLoop_Fault
-               policyAdapter.setServiceType(policy.getServiceType()); //ClosedLoop_PM
-               policyAdapter.setUuid(policy.getUuid()); //Micro Service
-               policyAdapter.setLocation(policy.getMsLocation()); //Micro Service
-               policyAdapter.setPriority(policy.getPriority()); //Micro Service
-               policyAdapter.setPolicyScope(policy.getDomainDir());
-               policyAdapter.setRiskType(policy.getRiskType()); //Safe Policy Attributes
-               policyAdapter.setRiskLevel(policy.getRiskLevel());//Safe Policy Attributes
-               policyAdapter.setGuard(policy.getGuard());//Safe Policy Attributes
-               policyAdapter.setTtlDate(policy.getTTLDate());//Safe Policy Attributes
-               policyAdapter.setBrmsParamBody(policy.getDrlRuleAndUIParams());
+    private PolicyRestAdapter setDataToPolicyAdapter(StdPAPPolicy policy, String policyType, String apiflag) throws ParserConfigurationException, ServletException, SAXException, IOException{
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        policyAdapter.setApiflag(apiflag);
+        /*
+         * set policy adapter values for Building JSON object containing policy data
+         */
+        //Common among policy types
+        policyAdapter.setPolicyName(policy.getPolicyName());
+        policyAdapter.setPolicyDescription(policy.getPolicyDescription());
+        policyAdapter.setOnapName(policy.getOnapName()); //Config Base and Decision Policies
+        policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
+
+        policyAdapter.setPolicyType(policyType);
+        policyAdapter.setDynamicFieldConfigAttributes(policy.getDynamicFieldConfigAttributes());
+        policyAdapter.setEditPolicy(policy.isEditPolicy());
+        policyAdapter.setEntityManagerFactory(XACMLPapServlet.getEmf());
+        //Config Specific
+        policyAdapter.setConfigName(policy.getConfigName());  //Base and Firewall
+        policyAdapter.setConfigBodyData(policy.getConfigBodyData()); //Base
+        policyAdapter.setConfigType((policy.getConfigType()!=null) ? policy.getConfigType().toUpperCase(): null);  //Base
+        policyAdapter.setJsonBody(policy.getJsonBody()); //Firewall, ClosedLoop
+        policyAdapter.setConfigPolicyType(policy.getConfigPolicyType());
+        policyAdapter.setDraft(policy.isDraft()); //ClosedLoop_Fault
+        policyAdapter.setServiceType(policy.getServiceType()); //ClosedLoop_PM
+        policyAdapter.setUuid(policy.getUuid()); //Micro Service
+        policyAdapter.setLocation(policy.getMsLocation()); //Micro Service
+        policyAdapter.setPriority(policy.getPriority()); //Micro Service
+        policyAdapter.setPolicyScope(policy.getDomainDir());
+        policyAdapter.setRiskType(policy.getRiskType()); //Safe Policy Attributes
+        policyAdapter.setRiskLevel(policy.getRiskLevel());//Safe Policy Attributes
+        policyAdapter.setGuard(policy.getGuard());//Safe Policy Attributes
+        policyAdapter.setTtlDate(policy.getTTLDate());//Safe Policy Attributes
+        policyAdapter.setBrmsParamBody(policy.getDrlRuleAndUIParams());
         policyAdapter.setBrmsDependency(policy.getBrmsDependency()); // BRMS Policies.
         policyAdapter.setBrmsController(policy.getBrmsController()); // BRMS Policies.
-               //Action Policy Specific
-               policyAdapter.setActionAttribute(policy.getActionAttribute());  //comboDictValue
-               policyAdapter.setActionPerformer(policy.getActionPerformer());
-               policyAdapter.setDynamicRuleAlgorithmLabels(policy.getDynamicRuleAlgorithmLabels());
-               policyAdapter.setDynamicRuleAlgorithmCombo(policy.getDynamicRuleAlgorithmCombo());
-               policyAdapter.setDynamicRuleAlgorithmField1(policy.getDynamicRuleAlgorithmField1());
-               policyAdapter.setDynamicRuleAlgorithmField2(policy.getDynamicRuleAlgorithmField2());
-               //Decision Policy Specific
-               policyAdapter.setDynamicSettingsMap(policy.getDynamicSettingsMap());
-               policyAdapter.setRuleProvider(policy.getProviderComboBox());
-               policyAdapter.setDomainDir(policyAdapter.getPolicyScope());
-               policyAdapter.setRainydayMap(policy.getTreatments());
+        //Action Policy Specific
+        policyAdapter.setActionAttribute(policy.getActionAttribute());  //comboDictValue
+        policyAdapter.setActionPerformer(policy.getActionPerformer());
+        policyAdapter.setDynamicRuleAlgorithmLabels(policy.getDynamicRuleAlgorithmLabels());
+        policyAdapter.setDynamicRuleAlgorithmCombo(policy.getDynamicRuleAlgorithmCombo());
+        policyAdapter.setDynamicRuleAlgorithmField1(policy.getDynamicRuleAlgorithmField1());
+        policyAdapter.setDynamicRuleAlgorithmField2(policy.getDynamicRuleAlgorithmField2());
+        //Decision Policy Specific
+        policyAdapter.setDynamicSettingsMap(policy.getDynamicSettingsMap());
+        policyAdapter.setRuleProvider(policy.getProviderComboBox());
+        policyAdapter.setDomainDir(policyAdapter.getPolicyScope());
+        policyAdapter.setRainydayMap(policy.getTreatments());
+
+        return policyAdapter;
+    }
 
-               return policyAdapter;
-       }
-       
-       public boolean extendedPolicyOptions(PolicyRestAdapter policyAdapter, HttpServletResponse response){
-               return false;
-       }
-       
-       public void addErrorHeader(String key, String value){
-               if(ErrorHeaders==null){
-                       ErrorHeaders= new HashMap<>();
-               }
-               ErrorHeaders.put(key, value);
-       }
+    public boolean extendedPolicyOptions(PolicyRestAdapter policyAdapter, HttpServletResponse response){
+        return false;
+    }
 
-       public static SavePolicyHandler getInstance() {
-               try {
-                       Class<?> savePolicyHandler = Class.forName(XACMLProperties.getProperty("savePolicy.impl.className", SavePolicyHandler.class.getName()));
-                       SavePolicyHandler instance = (SavePolicyHandler) savePolicyHandler.newInstance(); 
-                       return instance;
-               } catch (Exception e) {
-                       logger.error(e.getMessage(),e);
-               }
-               return null;
-       }
+    public void addErrorHeader(String key, String value){
+        if(ErrorHeaders==null){
+            ErrorHeaders= new HashMap<>();
+        }
+        ErrorHeaders.put(key, value);
+    }
+
+    public static SavePolicyHandler getInstance() {
+        try {
+            Class<?> savePolicyHandler = Class.forName(XACMLProperties.getProperty("savePolicy.impl.className", SavePolicyHandler.class.getName()));
+            SavePolicyHandler instance = (SavePolicyHandler) savePolicyHandler.newInstance();
+            return instance;
+        } catch (Exception e) {
+            logger.error(e.getMessage(),e);
+        }
+        return null;
+    }
 }
index 8c891bf..2d98b82 100644 (file)
@@ -32,74 +32,74 @@ import com.att.research.xacml.api.pap.PDPPolicy;
 
 public class RemoveGroupPolicy {
 
-       
-       //Container from where we are fetching the policies
-       private static PDPPolicyContainer policyContainer;
-               
-       private RemoveGroupPolicy self = this;
-       private StdPDPGroup updatedObject;
-       private final StdPDPGroup group;
-       private boolean isSaved = false;
-       
-       public RemoveGroupPolicy(StdPDPGroup group) {
-               
-               this.group = group;
-               
-       }
-       
-       public void prepareToRemove(PDPPolicy policy) {
-               
-               if (this.group == null) {
-                       return;
-               }
-               setRemoveGroupPolicy(new PDPPolicyContainer(group));
-
-               RemoveGroupPolicy.policyContainer.removeItem(policy);
-                                                                       
-               self.doSave();
-               
-               self.isSaved = true;
-               
-       }
-       
-       private static void setRemoveGroupPolicy(PDPPolicyContainer pdpPolicyContainer) {
+
+    //Container from where we are fetching the policies
+    private static PDPPolicyContainer policyContainer;
+
+    private RemoveGroupPolicy self = this;
+    private StdPDPGroup updatedObject;
+    private final StdPDPGroup group;
+    private boolean isSaved = false;
+
+    public RemoveGroupPolicy(StdPDPGroup group) {
+
+        this.group = group;
+
+    }
+
+    public void prepareToRemove(PDPPolicy policy) {
+
+        if (this.group == null) {
+            return;
+        }
+        setRemoveGroupPolicy(new PDPPolicyContainer(group));
+
+        RemoveGroupPolicy.policyContainer.removeItem(policy);
+
+        self.doSave();
+
+        self.isSaved = true;
+
+    }
+
+    private static void setRemoveGroupPolicy(PDPPolicyContainer pdpPolicyContainer) {
         RemoveGroupPolicy.policyContainer = pdpPolicyContainer;
     }
 
     @SuppressWarnings("unchecked")
-       protected void doSave() {
-               if (this.group == null) {
-                       return;
-               }
-               
-               StdPDPGroup updatedGroupObject = new StdPDPGroup(
-                               group.getId(), 
-                               group.isDefaultGroup(), 
-                               group.getName(), 
-                               group.getDescription(), 
-                               null);
-               
-               // replace the original set of Policies with the set from the container (possibly modified by the user)
-               Set<PDPPolicy> changedPolicies = new HashSet<>();
-               changedPolicies.addAll((Collection<PDPPolicy>) RemoveGroupPolicy.policyContainer.getItemIds());
-               updatedGroupObject.setPolicies(changedPolicies);
-               updatedGroupObject.setOnapPdps(this.group.getOnapPdps());
-               
-               // replace the original set of PIP Configs with the set from the container
-               updatedGroupObject.setPipConfigs(this.group.getPipConfigs());
-               
-               // copy those things that the user cannot change from the original to the new object
-               updatedGroupObject.setStatus(this.group.getStatus());
-               
-               this.updatedObject = updatedGroupObject;                        
-       }
-       
-       public boolean isRemoved() {
-               return this.isSaved;
-       }
-               
-       public OnapPDPGroup getUpdatedObject() {
-               return this.updatedObject;
-       }
+    protected void doSave() {
+        if (this.group == null) {
+            return;
+        }
+
+        StdPDPGroup updatedGroupObject = new StdPDPGroup(
+                group.getId(),
+                group.isDefaultGroup(),
+                group.getName(),
+                group.getDescription(),
+                null);
+
+        // replace the original set of Policies with the set from the container (possibly modified by the user)
+        Set<PDPPolicy> changedPolicies = new HashSet<>();
+        changedPolicies.addAll((Collection<PDPPolicy>) RemoveGroupPolicy.policyContainer.getItemIds());
+        updatedGroupObject.setPolicies(changedPolicies);
+        updatedGroupObject.setOnapPdps(this.group.getOnapPdps());
+
+        // replace the original set of PIP Configs with the set from the container
+        updatedGroupObject.setPipConfigs(this.group.getPipConfigs());
+
+        // copy those things that the user cannot change from the original to the new object
+        updatedGroupObject.setStatus(this.group.getStatus());
+
+        this.updatedObject = updatedGroupObject;
+    }
+
+    public boolean isRemoved() {
+        return this.isSaved;
+    }
+
+    public OnapPDPGroup getUpdatedObject() {
+        return this.updatedObject;
+    }
 
 }
index a6cda5e..951f25c 100644 (file)
@@ -76,428 +76,428 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @RequestMapping("/")
 public class PolicyCreation extends AbstractPolicyCreation{
 
-       private static final Logger LOGGER      = FlexLogger.getLogger(PolicyCreation.class);
-
-       private String ruleID = "";
-       private PolicyDBDao policyDBDao;
-       String CLName = null;
-       
-       private static CommonClassDao commonClassDao;
-       
-       public static CommonClassDao getCommonClassDao() {
-               return commonClassDao;
-       }
-
-       public static void setCommonClassDao(CommonClassDao commonClassDao) {
-               PolicyCreation.commonClassDao = commonClassDao;
-       }
-
-       @Autowired
-       public PolicyCreation(CommonClassDao commonClassDao){
-               PolicyCreation.commonClassDao = commonClassDao;
-       }
-
-       public PolicyCreation(){}
-       
-       @RequestMapping(value="/policycreation/save_policy", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<String> savePolicy(@RequestBody PolicyRestAdapter policyData, HttpServletResponse response){
-               String body = null;
-               HttpStatus status = HttpStatus.BAD_REQUEST;
-               Map<String, String> successMap = new HashMap<>();
-               Map<String, String> attributeMap = new HashMap<>();
-               PolicyVersion policyVersionDao;
-               try {
-               
-                       Policy newPolicy = null;
-                       String policyConfigType = null;
-                       String userId = policyData.getUserId();
-
-                       if (policyData.getTtlDate()==null){
-                               policyData.setTtlDate("NA");
-                       }else{
-                               String dateTTL = policyData.getTtlDate();
-                               String newDate = convertDate(dateTTL);
-                               policyData.setTtlDate(newDate);
-                       }
-
-                       String policyType = policyData.getPolicyType();
-
-                       String filePrefix = null;
-                       if ("Config".equalsIgnoreCase(policyType)) {
-                               policyConfigType = policyData.getConfigPolicyType();
-                               if ("Firewall Config".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_FW_";
-                               }else if ("ClosedLoop_Fault".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_Fault_";
-                               }else if ("ClosedLoop_PM".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_PM_";
-                               }else if ("Micro Service".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_MS_";
-                               }else if ("Optimization".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_OOF_";
-                               }else if ("BRMS_Raw".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_BRMS_Raw_";
-                               }else if ("BRMS_Param".equalsIgnoreCase(policyConfigType)) {
-                                       filePrefix = "Config_BRMS_Param_";
-                               }else {
-                                       filePrefix = "Config_"; 
-                               }
-                       } else if ("Action".equalsIgnoreCase(policyType)) {
-                               filePrefix = "Action_";
-                       } else if ("Decision".equalsIgnoreCase(policyType)) {
-                               filePrefix = "Decision_";
-                       }
-
-                       int version = 0;
-                       int highestVersion = 0;
-                       String createdBy;
-                       String modifiedBy;
-                       String scopeCheck = policyData.getDomainDir().replace(".", File.separator);
-                       PolicyEditorScopes policyEditorScope = (PolicyEditorScopes) commonClassDao.getEntityItem(PolicyEditorScopes.class, "scopeName", scopeCheck);
-                       if(policyEditorScope == null){
-                               UserInfo userInfo = new UserInfo();
-                               userInfo.setUserName("API");
-                               userInfo.setUserLoginId("API");
-                               PolicyEditorScopes editorScope = new PolicyEditorScopes();
-                               editorScope.setScopeName(scopeCheck);
-                               editorScope.setUserCreatedBy(userInfo);
-                               editorScope.setUserModifiedBy(userInfo);
-                               commonClassDao.save(editorScope);
-                       }
-                       //get the highest version of policy from policy version table.
-                       String dbCheckPolicyName = policyData.getDomainDir() + File.separator + filePrefix + policyData.getPolicyName();
-                       PolicyVersion policyVersion = getPolicyVersionData(dbCheckPolicyName);  
-                       if(policyVersion == null){
-                               highestVersion = 0;
-                       }else{
-                               highestVersion = policyVersion.getHigherVersion();
-                       }
-                       
-                       if(highestVersion != 0 && policyVersion != null){
-                               if(policyData.isEditPolicy()){
-                                       version = highestVersion +1;
-                                       if(userId ==null){
-                                               modifiedBy = "API";
-                                       }else{
-                                               modifiedBy = userId;
-                                       }
-                                       policyData.setUserId("API");
-                                       createdBy = policyVersion.getCreatedBy();
-                                       policyVersionDao = policyVersion;
-                                       policyVersionDao.setActiveVersion(version);
-                                       policyVersionDao.setHigherVersion(version);
-                                       policyVersionDao.setModifiedBy(modifiedBy);
-                                       policyVersionDao.setModifiedDate(new Date());
-                               }else{
-                                       body = "policyExists";
-                                       status = HttpStatus.CONFLICT;
-                                       response.setStatus(HttpServletResponse.SC_CONFLICT);
-                                       response.addHeader("error", "policyExists");
-                                       response.addHeader("policyName", policyData.getPolicyName());
-                                       return new ResponseEntity<>(body, status);
-                               }               
-                       }else{
-                               // if policy does not exist and the request is updatePolicy return error
-                               if(policyData.isEditPolicy()){
-                                       body = "policyNotAvailableForEdit";
-                                       status = HttpStatus.NOT_FOUND;
-                                       response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-                                       response.addHeader("error", body);
-                                       response.addHeader("message", policyData.getPolicyName() + " does not exist on the PAP and cannot be updated.");
-                                       return new ResponseEntity<>(body, status);
-                               }
-                               version = 1;
-                               if(userId == null){
-                                       createdBy = "API";
-                                       modifiedBy = "API";
-                                       policyData.setUserId("API");
-                               }else{
-                                       createdBy = userId;
-                                       modifiedBy = userId;
-                                       policyData.setUserId("API");
-                               }
-                               policyVersionDao = new PolicyVersion();
-                               policyVersionDao.setPolicyName(dbCheckPolicyName);
-                               policyVersionDao.setActiveVersion(version);
-                               policyVersionDao.setHigherVersion(version);
-                               policyVersionDao.setCreatedBy(createdBy);
-                               policyVersionDao.setModifiedBy(modifiedBy);
-                       }
-                       
-                       policyData.setPolicyID(newPolicyID());
-                       policyData.setRuleID(ruleID);
-       
-                       String policyFileName = dbCheckPolicyName.replace(File.separator, ".")+ "." + version + ".xml";
-                       policyData.setNewFileName(policyFileName);
-                       policyData.setPolicyDescription(policyData.getPolicyDescription()+ "@CreatedBy:" +createdBy + "@CreatedBy:" + "@ModifiedBy:" +modifiedBy + "@ModifiedBy:");
-                       policyData.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
-                       if(policyData.getApiflag() == null){
-                               //set the Rule Combining Algorithm Id to be sent to PAP-REST via JSON   
-                               if(policyData.getAttributes() != null && !policyData.getAttributes().isEmpty()){
-                                       for(Object attribute : policyData.getAttributes()){
-                                               if(attribute instanceof LinkedHashMap<?, ?>){
-                                                       String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
-                                                       String value = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
-                                                       attributeMap.put(key, value);   
-                                               }
-                                       }
-                               }
-                               policyData.setDynamicFieldConfigAttributes(attributeMap);
-                       }
-                       
-                       policyData.setVersion(String.valueOf(version));
-                       policyData.setHighestVersion(version);
-
-                       // Calling Component class per policy type
-                       if ("Config".equalsIgnoreCase(policyType)) {
-                               if ("Firewall Config".equalsIgnoreCase(policyConfigType)) {
-                                       newPolicy = new FirewallConfigPolicy(policyData);
-                               }else if ("BRMS_Raw".equalsIgnoreCase(policyConfigType)) { 
-                                       policyData.setOnapName("DROOLS");
-                                       policyData.setConfigName("BRMS_RAW_RULE");
-                                       newPolicy = new CreateBrmsRawPolicy(policyData);
-                               }else if ("BRMS_Param".equalsIgnoreCase(policyConfigType)) {
-                                       policyData.setOnapName("DROOLS");
-                                       policyData.setConfigName("BRMS_PARAM_RULE");
-                                       Map<String, String> drlRuleAndUIParams = new HashMap<>();
-                                       if(policyData.getApiflag() == null){
-                                               // If there is any dynamic field create the matches here
-                                               String key="templateName";
-                                               String value= policyData.getRuleName();
-                                               drlRuleAndUIParams.put(key, value);
-                                               if(policyData.getRuleData().size() > 0){
-                                                       for(Object keyValue: policyData.getRuleData().keySet()){
-                                                               drlRuleAndUIParams.put(keyValue.toString(), policyData.getRuleData().get(keyValue).toString());
-                                                       }
-                                               }
-                                               policyData.setBrmsParamBody(drlRuleAndUIParams);
-                                       }else{
-                               drlRuleAndUIParams=policyData.getBrmsParamBody();
-                               String modelName= drlRuleAndUIParams.get("templateName");
-                               PolicyLogger.info("Template name from API is: "+modelName);
-                               
-                               BRMSParamTemplate template = (BRMSParamTemplate) commonClassDao.getEntityItem(BRMSParamTemplate.class, "ruleName", modelName);
-                               if(template == null){
-                                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Template.  The template name, " 
-                                           + modelName + " was not found in the dictionary.";
-                                       body = message;
-                                       status = HttpStatus.BAD_REQUEST;
-                                   response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                                   response.addHeader("error", message);
-                                   response.addHeader("modelName", modelName);
-                                   return new ResponseEntity<String>(body, status);
-                               }
-                                       }               
-                                       newPolicy = new CreateBrmsParamPolicy(policyData);
-                               }else if ("Base".equalsIgnoreCase(policyConfigType)) {
-                                       newPolicy =  new ConfigPolicy(policyData);
-                               }else if ("ClosedLoop_Fault".equalsIgnoreCase(policyConfigType)) {
-                                       newPolicy = new ClosedLoopPolicy(policyData);
-                               }else if ("ClosedLoop_PM".equalsIgnoreCase(policyConfigType)) {
-                                       if(policyData.getApiflag() == null){
-                                               policyData.setServiceType(policyData.getServiceTypePolicyName().get("serviceTypePolicyName").toString());
-                                               ObjectMapper jsonMapper = new ObjectMapper();
-                                               String jsonBody = jsonMapper.writeValueAsString(policyData.getJsonBodyData());
-                                               jsonBody = jsonBody.replaceFirst("\\{", "\\{\"serviceTypePolicyName\": \"serviceTypeFieldValue\",");
-                                               jsonBody = jsonBody.replace("serviceTypeFieldValue", policyData.getServiceType());
-                                               policyData.setJsonBody(jsonBody);
-                                       }
-                                       newPolicy = new CreateClosedLoopPerformanceMetrics(policyData);
-                               }else if ("Micro Service".equalsIgnoreCase(policyConfigType)) {
-                                       newPolicy = new MicroServiceConfigPolicy(policyData);
-                               }else if ("Optimization".equalsIgnoreCase(policyConfigType)) {
-                                       newPolicy = new OptimizationConfigPolicy(policyData);
-                               }
-                       }else if("Action".equalsIgnoreCase(policyType)) {
-                               if(policyData.getApiflag() == null){
-                                       List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
-
-
-                                       if(!policyData.getRuleAlgorithmschoices().isEmpty()){
-                                               for(Object attribute : policyData.getRuleAlgorithmschoices()){
-                                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                                               String label = ((LinkedHashMap<?, ?>) attribute).get("id").toString();
-                                                               String key = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField1").toString();
-                                                               String rule = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmCombo").toString();
-                                                               String value = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField2").toString();
-                                                               dynamicRuleAlgorithmLabels.add(label);
-                                                               dynamicRuleAlgorithmField1.add(key);
-                                                               dynamicRuleAlgorithmCombo.add(rule);
-                                                               dynamicRuleAlgorithmField2.add(value);
-                                                       }
-                                               }
-                                       }
-
-                                       String actionDictValue = policyData.getActionAttributeValue();
-                                       ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", actionDictValue));
-                                       if(jsonData!=null){
-                                               String actionBodyString = jsonData.getBody();
-                                               String actionDictHeader = jsonData.getHeader();
-                                               String actionDictType = jsonData.getType();
-                                               String actionDictUrl = jsonData.getUrl();
-                                               String actionDictMethod = jsonData.getMethod();
-                                               policyData.setActionDictHeader(actionDictHeader);
-                                               policyData.setActionDictType(actionDictType);
-                                               policyData.setActionDictUrl(actionDictUrl);
-                                               policyData.setActionDictMethod(actionDictMethod);
-                                               if (actionBodyString != null) {
-                                                       policyData.setActionBody(actionBodyString);
-                                               }
-                                       }
-                                       policyData.setActionAttribute(actionDictValue);
-                                       policyData.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
-                                       policyData.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
-                                       policyData.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
-                                       policyData.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
-                               }else{
-                                       // API request. 
-                                       String comboDictValue = policyData.getActionAttribute();
-                                       ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", comboDictValue));
-                                       if(jsonData!=null){
-                                               policyData.setActionBody(jsonData.getBody());
-                                               policyData.setActionDictHeader(jsonData.getHeader());
-                                               policyData.setActionDictType(jsonData.getType());
-                                               policyData.setActionDictUrl(jsonData.getUrl());
-                                               policyData.setActionDictMethod(jsonData.getMethod());
-                                       }
-                               }
-                               newPolicy = new ActionPolicy(policyData, commonClassDao);
-                       } else if ("Decision".equalsIgnoreCase(policyType)) {
-                               if(policyData.getApiflag() == null){
-                                       Map<String, String> settingsMap = new HashMap<>();
-                                       Map<String, String> treatmentMap = new HashMap<>();
-                                       List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
-                                       List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
-                                       List<Object> dynamicVariableList = new LinkedList<>();
-                                       List<String> dataTypeList = new LinkedList<>();
-                                       List<String> errorCodeList = new LinkedList<>();
-                                       List<String> treatmentList = new LinkedList<>();
-
-                                       if(!policyData.getSettings().isEmpty()){
-                                               for(Object settingsData : policyData.getSettings()){
-                                                       if(settingsData instanceof LinkedHashMap<?, ?>){
-                                                               String key = ((LinkedHashMap<?, ?>) settingsData).get("key").toString();
-                                                               String value = ((LinkedHashMap<?, ?>) settingsData).get("value").toString();
-                                                               settingsMap.put(key, value);    
-                                                       }
-                                               }
-                                       }
-                                       if(policyData.getRuleAlgorithmschoices()!=null && policyData.getRuleAlgorithmschoices().size() > 0){
-                                               for(Object attribute : policyData.getRuleAlgorithmschoices()){
-                                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                                               String label = ((LinkedHashMap<?, ?>) attribute).get("id").toString();
-                                                               String key = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField1").toString();
-                                                               String rule = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmCombo").toString();
-                                                               String value = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField2").toString();
-                                                               dynamicRuleAlgorithmLabels.add(label);
-                                                               dynamicRuleAlgorithmField1.add(key);
-                                                               dynamicRuleAlgorithmCombo.add(rule);
-                                                               dynamicRuleAlgorithmField2.add(value);
-                                                       }
-                                               }
-                                       }
-                                       if(policyData.getRuleProvider()!=null && (policyData.getRuleProvider().equals(DecisionPolicy.GUARD_YAML)|| policyData.getRuleProvider().equals(DecisionPolicy.GUARD_BL_YAML)) 
-                                                       && policyData.getYamlparams()!=null){
-                                               attributeMap.put("actor", policyData.getYamlparams().getActor());
-                                               attributeMap.put("recipe", policyData.getYamlparams().getRecipe());
-                                               attributeMap.put("clname", policyData.getYamlparams().getClname());
-                                               attributeMap.put("limit", policyData.getYamlparams().getLimit());
-                                               attributeMap.put("timeWindow", policyData.getYamlparams().getTimeWindow());
-                                               attributeMap.put("timeUnits", policyData.getYamlparams().getTimeUnits());
-                                               attributeMap.put("guardActiveStart", policyData.getYamlparams().getGuardActiveStart());
-                                               attributeMap.put("guardActiveEnd", policyData.getYamlparams().getGuardActiveEnd());
-                                               if(policyData.getYamlparams().getBlackList()!=null){
-                                                       String blackList = StringUtils.join(policyData.getYamlparams().getBlackList(), ",");
-                                                       attributeMap.put("blackList", blackList);
-                                               }
-                                               if(DecisionPolicy.GUARD_BL_YAML.equals(policyData.getRuleProvider()) && "Use File Upload".equals(policyData.getBlackListEntryType())){
-                                                       if(policyData.getBlackListEntries() != null && !policyData.getBlackListEntries().isEmpty()){
-                                                               String blackList = StringUtils.join(policyData.getBlackListEntries(), ",");
-                                                               attributeMap.put("blackList", blackList);
-                                                       }
-                                                       if(policyData.getAppendBlackListEntries() != null && !policyData.getAppendBlackListEntries().isEmpty()){
-                                                               String blackList = StringUtils.join(policyData.getAppendBlackListEntries(), ",");
-                                                               attributeMap.put("appendBlackList", blackList);
-                                                       }
-                                               }
-                                               if(policyData.getYamlparams().getTargets()!=null){
-                                                       String targets = StringUtils.join(policyData.getYamlparams().getTargets(),",");
-                                                       attributeMap.put("targets", targets);
-                                               }
-                                       }
-                                       if(policyData.getRuleProvider()!=null && policyData.getRuleProvider().equals(DecisionPolicy.RAINY_DAY)){
-                                               attributeMap.put("ServiceType", policyData.getRainyday().getServiceType());
-                                               attributeMap.put("VNFType", policyData.getRainyday().getVnfType());
-                                               attributeMap.put("BB_ID", policyData.getRainyday().getBbid());
-                                               attributeMap.put("WorkStep", policyData.getRainyday().getWorkstep());
-                                               
-                                               if(policyData.getRainyday().getTreatmentTableChoices()!=null && policyData.getRainyday().getTreatmentTableChoices().size() > 0){
-                                                       for (Object table : policyData.getRainyday().getTreatmentTableChoices()){
-                                                               if(table instanceof LinkedHashMap<?,?>){
-                                                                       String errorcode = ((LinkedHashMap<?,?>) table).get("errorcode").toString();
-                                                                       String treatment = ((LinkedHashMap<?,?>) table).get("treatment").toString();
-                                                                       treatmentMap.put(errorcode, treatment);
-                                                               }
-                                                       }
-                                               }
-                                       }
-                                       
-                                       policyData.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
-                                       policyData.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
-                                       policyData.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
-                                       policyData.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
-                                       policyData.setDynamicVariableList(dynamicVariableList);
-                                       policyData.setDynamicSettingsMap(settingsMap);
-                                       policyData.setDynamicFieldConfigAttributes(attributeMap);
-                                       policyData.setDataTypeList(dataTypeList);
-                                       policyData.setRainydayMap(treatmentMap);
-                                       policyData.setErrorCodeList(errorCodeList);
-                                       policyData.setTreatmentList(treatmentList);
-                               }
-                               newPolicy = new DecisionPolicy(policyData, commonClassDao);
-                       }
-
-                       if(newPolicy != null){
-                               newPolicy.prepareToSave();
-                       }else{
-                               body = "error";
-                               status = HttpStatus.INTERNAL_SERVER_ERROR;
-                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);                                                               
-                               response.addHeader("error", "error");
-                               return new ResponseEntity<>(body, status);
-                       }
-                       
-                       PolicyDBDaoTransaction policyDBDaoTransaction = null;
-                       try{
-                               policyDBDao = PolicyDBDao.getPolicyDBDaoInstance(XACMLPapServlet.getEmf());
-                               policyDBDaoTransaction = policyDBDao.getNewTransaction();
-                               policyDBDaoTransaction.createPolicy(newPolicy, policyData.getUserId());
-                               successMap = newPolicy.savePolicies();
-                               if(successMap.containsKey("success")){
-                                       policyDBDaoTransaction.commitTransaction();
-                                       if(policyData.isEditPolicy()){
-                                               commonClassDao.update(policyVersionDao);
-                                       }else{
-                                               commonClassDao.save(policyVersionDao);
-                                       }
-                                       try{
-                                               PolicyElasticSearchController search= new PolicyElasticSearchController();
-                                               search.updateElk(policyData);
-                                       }catch(Exception e){
-                                               LOGGER.error("Error Occured while saving policy to Elastic Database"+e);
-                                       }
-                                       body = "success";
-                                       status = HttpStatus.OK;
-                                       response.setStatus(HttpServletResponse.SC_OK);                                                          
-                                       response.addHeader("successMapKey", "success");                                                         
-                                       response.addHeader("policyName", policyData.getNewFileName());
-                                       
+    private static final Logger LOGGER = FlexLogger.getLogger(PolicyCreation.class);
+
+    private String ruleID = "";
+    private PolicyDBDao policyDBDao;
+    String CLName = null;
+
+    private static CommonClassDao commonClassDao;
+
+    public static CommonClassDao getCommonClassDao() {
+        return commonClassDao;
+    }
+
+    public static void setCommonClassDao(CommonClassDao commonClassDao) {
+        PolicyCreation.commonClassDao = commonClassDao;
+    }
+
+    @Autowired
+    public PolicyCreation(CommonClassDao commonClassDao){
+        PolicyCreation.commonClassDao = commonClassDao;
+    }
+
+    public PolicyCreation(){}
+
+    @RequestMapping(value="/policycreation/save_policy", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> savePolicy(@RequestBody PolicyRestAdapter policyData, HttpServletResponse response){
+        String body = null;
+        HttpStatus status = HttpStatus.BAD_REQUEST;
+        Map<String, String> successMap = new HashMap<>();
+        Map<String, String> attributeMap = new HashMap<>();
+        PolicyVersion policyVersionDao;
+        try {
+
+            Policy newPolicy = null;
+            String policyConfigType = null;
+            String userId = policyData.getUserId();
+
+            if (policyData.getTtlDate()==null){
+                policyData.setTtlDate("NA");
+            }else{
+                String dateTTL = policyData.getTtlDate();
+                String newDate = convertDate(dateTTL);
+                policyData.setTtlDate(newDate);
+            }
+
+            String policyType = policyData.getPolicyType();
+
+            String filePrefix = null;
+            if ("Config".equalsIgnoreCase(policyType)) {
+                policyConfigType = policyData.getConfigPolicyType();
+                if ("Firewall Config".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_FW_";
+                }else if ("ClosedLoop_Fault".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_Fault_";
+                }else if ("ClosedLoop_PM".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_PM_";
+                }else if ("Micro Service".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_MS_";
+                }else if ("Optimization".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_OOF_";
+                }else if ("BRMS_Raw".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_BRMS_Raw_";
+                }else if ("BRMS_Param".equalsIgnoreCase(policyConfigType)) {
+                    filePrefix = "Config_BRMS_Param_";
+                }else {
+                    filePrefix = "Config_";
+                }
+            } else if ("Action".equalsIgnoreCase(policyType)) {
+                filePrefix = "Action_";
+            } else if ("Decision".equalsIgnoreCase(policyType)) {
+                filePrefix = "Decision_";
+            }
+
+            int version = 0;
+            int highestVersion = 0;
+            String createdBy;
+            String modifiedBy;
+            String scopeCheck = policyData.getDomainDir().replace(".", File.separator);
+            PolicyEditorScopes policyEditorScope = (PolicyEditorScopes) commonClassDao.getEntityItem(PolicyEditorScopes.class, "scopeName", scopeCheck);
+            if(policyEditorScope == null){
+                UserInfo userInfo = new UserInfo();
+                userInfo.setUserName("API");
+                userInfo.setUserLoginId("API");
+                PolicyEditorScopes editorScope = new PolicyEditorScopes();
+                editorScope.setScopeName(scopeCheck);
+                editorScope.setUserCreatedBy(userInfo);
+                editorScope.setUserModifiedBy(userInfo);
+                commonClassDao.save(editorScope);
+            }
+            //get the highest version of policy from policy version table.
+            String dbCheckPolicyName = policyData.getDomainDir() + File.separator + filePrefix + policyData.getPolicyName();
+            PolicyVersion policyVersion = getPolicyVersionData(dbCheckPolicyName);
+            if(policyVersion == null){
+                highestVersion = 0;
+            }else{
+                highestVersion = policyVersion.getHigherVersion();
+            }
+
+            if(highestVersion != 0 && policyVersion != null){
+                if(policyData.isEditPolicy()){
+                    version = highestVersion +1;
+                    if(userId ==null){
+                        modifiedBy = "API";
+                    }else{
+                        modifiedBy = userId;
+                    }
+                    policyData.setUserId("API");
+                    createdBy = policyVersion.getCreatedBy();
+                    policyVersionDao = policyVersion;
+                    policyVersionDao.setActiveVersion(version);
+                    policyVersionDao.setHigherVersion(version);
+                    policyVersionDao.setModifiedBy(modifiedBy);
+                    policyVersionDao.setModifiedDate(new Date());
+                }else{
+                    body = "policyExists";
+                    status = HttpStatus.CONFLICT;
+                    response.setStatus(HttpServletResponse.SC_CONFLICT);
+                    response.addHeader("error", "policyExists");
+                    response.addHeader("policyName", policyData.getPolicyName());
+                    return new ResponseEntity<>(body, status);
+                }
+            }else{
+                // if policy does not exist and the request is updatePolicy return error
+                if(policyData.isEditPolicy()){
+                    body = "policyNotAvailableForEdit";
+                    status = HttpStatus.NOT_FOUND;
+                    response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+                    response.addHeader("error", body);
+                    response.addHeader("message", policyData.getPolicyName() + " does not exist on the PAP and cannot be updated.");
+                    return new ResponseEntity<>(body, status);
+                }
+                version = 1;
+                if(userId == null){
+                    createdBy = "API";
+                    modifiedBy = "API";
+                    policyData.setUserId("API");
+                }else{
+                    createdBy = userId;
+                    modifiedBy = userId;
+                    policyData.setUserId("API");
+                }
+                policyVersionDao = new PolicyVersion();
+                policyVersionDao.setPolicyName(dbCheckPolicyName);
+                policyVersionDao.setActiveVersion(version);
+                policyVersionDao.setHigherVersion(version);
+                policyVersionDao.setCreatedBy(createdBy);
+                policyVersionDao.setModifiedBy(modifiedBy);
+            }
+
+            policyData.setPolicyID(newPolicyID());
+            policyData.setRuleID(ruleID);
+
+            String policyFileName = dbCheckPolicyName.replace(File.separator, ".")+ "." + version + ".xml";
+            policyData.setNewFileName(policyFileName);
+            policyData.setPolicyDescription(policyData.getPolicyDescription()+ "@CreatedBy:" +createdBy + "@CreatedBy:" + "@ModifiedBy:" +modifiedBy + "@ModifiedBy:");
+            policyData.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
+            if(policyData.getApiflag() == null){
+                //set the Rule Combining Algorithm Id to be sent to PAP-REST via JSON
+                if(policyData.getAttributes() != null && !policyData.getAttributes().isEmpty()){
+                    for(Object attribute : policyData.getAttributes()){
+                        if(attribute instanceof LinkedHashMap<?, ?>){
+                            String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
+                            String value = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
+                            attributeMap.put(key, value);
+                        }
+                    }
+                }
+                policyData.setDynamicFieldConfigAttributes(attributeMap);
+            }
+
+            policyData.setVersion(String.valueOf(version));
+            policyData.setHighestVersion(version);
+
+            // Calling Component class per policy type
+            if ("Config".equalsIgnoreCase(policyType)) {
+                if ("Firewall Config".equalsIgnoreCase(policyConfigType)) {
+                    newPolicy = new FirewallConfigPolicy(policyData);
+                }else if ("BRMS_Raw".equalsIgnoreCase(policyConfigType)) {
+                    policyData.setOnapName("DROOLS");
+                    policyData.setConfigName("BRMS_RAW_RULE");
+                    newPolicy = new CreateBrmsRawPolicy(policyData);
+                }else if ("BRMS_Param".equalsIgnoreCase(policyConfigType)) {
+                    policyData.setOnapName("DROOLS");
+                    policyData.setConfigName("BRMS_PARAM_RULE");
+                    Map<String, String> drlRuleAndUIParams = new HashMap<>();
+                    if(policyData.getApiflag() == null){
+                        // If there is any dynamic field create the matches here
+                        String key="templateName";
+                        String value= policyData.getRuleName();
+                        drlRuleAndUIParams.put(key, value);
+                        if(policyData.getRuleData().size() > 0){
+                            for(Object keyValue: policyData.getRuleData().keySet()){
+                                drlRuleAndUIParams.put(keyValue.toString(), policyData.getRuleData().get(keyValue).toString());
+                            }
+                        }
+                        policyData.setBrmsParamBody(drlRuleAndUIParams);
+                    }else{
+                        drlRuleAndUIParams=policyData.getBrmsParamBody();
+                        String modelName= drlRuleAndUIParams.get("templateName");
+                        PolicyLogger.info("Template name from API is: "+modelName);
+
+                        BRMSParamTemplate template = (BRMSParamTemplate) commonClassDao.getEntityItem(BRMSParamTemplate.class, "ruleName", modelName);
+                        if(template == null){
+                            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Template.  The template name, "
+                                    + modelName + " was not found in the dictionary.";
+                            body = message;
+                            status = HttpStatus.BAD_REQUEST;
+                            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                            response.addHeader("error", message);
+                            response.addHeader("modelName", modelName);
+                            return new ResponseEntity<String>(body, status);
+                        }
+                    }
+                    newPolicy = new CreateBrmsParamPolicy(policyData);
+                }else if ("Base".equalsIgnoreCase(policyConfigType)) {
+                    newPolicy =  new ConfigPolicy(policyData);
+                }else if ("ClosedLoop_Fault".equalsIgnoreCase(policyConfigType)) {
+                    newPolicy = new ClosedLoopPolicy(policyData);
+                }else if ("ClosedLoop_PM".equalsIgnoreCase(policyConfigType)) {
+                    if(policyData.getApiflag() == null){
+                        policyData.setServiceType(policyData.getServiceTypePolicyName().get("serviceTypePolicyName").toString());
+                        ObjectMapper jsonMapper = new ObjectMapper();
+                        String jsonBody = jsonMapper.writeValueAsString(policyData.getJsonBodyData());
+                        jsonBody = jsonBody.replaceFirst("\\{", "\\{\"serviceTypePolicyName\": \"serviceTypeFieldValue\",");
+                        jsonBody = jsonBody.replace("serviceTypeFieldValue", policyData.getServiceType());
+                        policyData.setJsonBody(jsonBody);
+                    }
+                    newPolicy = new CreateClosedLoopPerformanceMetrics(policyData);
+                }else if ("Micro Service".equalsIgnoreCase(policyConfigType)) {
+                    newPolicy = new MicroServiceConfigPolicy(policyData);
+                }else if ("Optimization".equalsIgnoreCase(policyConfigType)) {
+                    newPolicy = new OptimizationConfigPolicy(policyData);
+                }
+            }else if("Action".equalsIgnoreCase(policyType)) {
+                if(policyData.getApiflag() == null){
+                    List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
+
+
+                    if(!policyData.getRuleAlgorithmschoices().isEmpty()){
+                        for(Object attribute : policyData.getRuleAlgorithmschoices()){
+                            if(attribute instanceof LinkedHashMap<?, ?>){
+                                String label = ((LinkedHashMap<?, ?>) attribute).get("id").toString();
+                                String key = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField1").toString();
+                                String rule = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmCombo").toString();
+                                String value = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField2").toString();
+                                dynamicRuleAlgorithmLabels.add(label);
+                                dynamicRuleAlgorithmField1.add(key);
+                                dynamicRuleAlgorithmCombo.add(rule);
+                                dynamicRuleAlgorithmField2.add(value);
+                            }
+                        }
+                    }
+
+                    String actionDictValue = policyData.getActionAttributeValue();
+                    ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", actionDictValue));
+                    if(jsonData!=null){
+                        String actionBodyString = jsonData.getBody();
+                        String actionDictHeader = jsonData.getHeader();
+                        String actionDictType = jsonData.getType();
+                        String actionDictUrl = jsonData.getUrl();
+                        String actionDictMethod = jsonData.getMethod();
+                        policyData.setActionDictHeader(actionDictHeader);
+                        policyData.setActionDictType(actionDictType);
+                        policyData.setActionDictUrl(actionDictUrl);
+                        policyData.setActionDictMethod(actionDictMethod);
+                        if (actionBodyString != null) {
+                            policyData.setActionBody(actionBodyString);
+                        }
+                    }
+                    policyData.setActionAttribute(actionDictValue);
+                    policyData.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
+                    policyData.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
+                    policyData.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
+                    policyData.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
+                }else{
+                    // API request.
+                    String comboDictValue = policyData.getActionAttribute();
+                    ActionPolicyDict jsonData = ((ActionPolicyDict) commonClassDao.getEntityItem(ActionPolicyDict.class, "attributeName", comboDictValue));
+                    if(jsonData!=null){
+                        policyData.setActionBody(jsonData.getBody());
+                        policyData.setActionDictHeader(jsonData.getHeader());
+                        policyData.setActionDictType(jsonData.getType());
+                        policyData.setActionDictUrl(jsonData.getUrl());
+                        policyData.setActionDictMethod(jsonData.getMethod());
+                    }
+                }
+                newPolicy = new ActionPolicy(policyData, commonClassDao);
+            } else if ("Decision".equalsIgnoreCase(policyType)) {
+                if(policyData.getApiflag() == null){
+                    Map<String, String> settingsMap = new HashMap<>();
+                    Map<String, String> treatmentMap = new HashMap<>();
+                    List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
+                    List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
+                    List<Object> dynamicVariableList = new LinkedList<>();
+                    List<String> dataTypeList = new LinkedList<>();
+                    List<String> errorCodeList = new LinkedList<>();
+                    List<String> treatmentList = new LinkedList<>();
+
+                    if(!policyData.getSettings().isEmpty()){
+                        for(Object settingsData : policyData.getSettings()){
+                            if(settingsData instanceof LinkedHashMap<?, ?>){
+                                String key = ((LinkedHashMap<?, ?>) settingsData).get("key").toString();
+                                String value = ((LinkedHashMap<?, ?>) settingsData).get("value").toString();
+                                settingsMap.put(key, value);
+                            }
+                        }
+                    }
+                    if(policyData.getRuleAlgorithmschoices()!=null && policyData.getRuleAlgorithmschoices().size() > 0){
+                        for(Object attribute : policyData.getRuleAlgorithmschoices()){
+                            if(attribute instanceof LinkedHashMap<?, ?>){
+                                String label = ((LinkedHashMap<?, ?>) attribute).get("id").toString();
+                                String key = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField1").toString();
+                                String rule = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmCombo").toString();
+                                String value = ((LinkedHashMap<?, ?>) attribute).get("dynamicRuleAlgorithmField2").toString();
+                                dynamicRuleAlgorithmLabels.add(label);
+                                dynamicRuleAlgorithmField1.add(key);
+                                dynamicRuleAlgorithmCombo.add(rule);
+                                dynamicRuleAlgorithmField2.add(value);
+                            }
+                        }
+                    }
+                    if(policyData.getRuleProvider()!=null && (policyData.getRuleProvider().equals(DecisionPolicy.GUARD_YAML)|| policyData.getRuleProvider().equals(DecisionPolicy.GUARD_BL_YAML))
+                            && policyData.getYamlparams()!=null){
+                        attributeMap.put("actor", policyData.getYamlparams().getActor());
+                        attributeMap.put("recipe", policyData.getYamlparams().getRecipe());
+                        attributeMap.put("clname", policyData.getYamlparams().getClname());
+                        attributeMap.put("limit", policyData.getYamlparams().getLimit());
+                        attributeMap.put("timeWindow", policyData.getYamlparams().getTimeWindow());
+                        attributeMap.put("timeUnits", policyData.getYamlparams().getTimeUnits());
+                        attributeMap.put("guardActiveStart", policyData.getYamlparams().getGuardActiveStart());
+                        attributeMap.put("guardActiveEnd", policyData.getYamlparams().getGuardActiveEnd());
+                        if(policyData.getYamlparams().getBlackList()!=null){
+                            String blackList = StringUtils.join(policyData.getYamlparams().getBlackList(), ",");
+                            attributeMap.put("blackList", blackList);
+                        }
+                        if(DecisionPolicy.GUARD_BL_YAML.equals(policyData.getRuleProvider()) && "Use File Upload".equals(policyData.getBlackListEntryType())){
+                            if(policyData.getBlackListEntries() != null && !policyData.getBlackListEntries().isEmpty()){
+                                String blackList = StringUtils.join(policyData.getBlackListEntries(), ",");
+                                attributeMap.put("blackList", blackList);
+                            }
+                            if(policyData.getAppendBlackListEntries() != null && !policyData.getAppendBlackListEntries().isEmpty()){
+                                String blackList = StringUtils.join(policyData.getAppendBlackListEntries(), ",");
+                                attributeMap.put("appendBlackList", blackList);
+                            }
+                        }
+                        if(policyData.getYamlparams().getTargets()!=null){
+                            String targets = StringUtils.join(policyData.getYamlparams().getTargets(),",");
+                            attributeMap.put("targets", targets);
+                        }
+                    }
+                    if(policyData.getRuleProvider()!=null && policyData.getRuleProvider().equals(DecisionPolicy.RAINY_DAY)){
+                        attributeMap.put("ServiceType", policyData.getRainyday().getServiceType());
+                        attributeMap.put("VNFType", policyData.getRainyday().getVnfType());
+                        attributeMap.put("BB_ID", policyData.getRainyday().getBbid());
+                        attributeMap.put("WorkStep", policyData.getRainyday().getWorkstep());
+
+                        if(policyData.getRainyday().getTreatmentTableChoices()!=null && policyData.getRainyday().getTreatmentTableChoices().size() > 0){
+                            for (Object table : policyData.getRainyday().getTreatmentTableChoices()){
+                                if(table instanceof LinkedHashMap<?,?>){
+                                    String errorcode = ((LinkedHashMap<?,?>) table).get("errorcode").toString();
+                                    String treatment = ((LinkedHashMap<?,?>) table).get("treatment").toString();
+                                    treatmentMap.put(errorcode, treatment);
+                                }
+                            }
+                        }
+                    }
+
+                    policyData.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
+                    policyData.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
+                    policyData.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
+                    policyData.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
+                    policyData.setDynamicVariableList(dynamicVariableList);
+                    policyData.setDynamicSettingsMap(settingsMap);
+                    policyData.setDynamicFieldConfigAttributes(attributeMap);
+                    policyData.setDataTypeList(dataTypeList);
+                    policyData.setRainydayMap(treatmentMap);
+                    policyData.setErrorCodeList(errorCodeList);
+                    policyData.setTreatmentList(treatmentList);
+                }
+                newPolicy = new DecisionPolicy(policyData, commonClassDao);
+            }
+
+            if(newPolicy != null){
+                newPolicy.prepareToSave();
+            }else{
+                body = "error";
+                status = HttpStatus.INTERNAL_SERVER_ERROR;
+                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                response.addHeader("error", "error");
+                return new ResponseEntity<>(body, status);
+            }
+
+            PolicyDBDaoTransaction policyDBDaoTransaction = null;
+            try{
+                policyDBDao = PolicyDBDao.getPolicyDBDaoInstance(XACMLPapServlet.getEmf());
+                policyDBDaoTransaction = policyDBDao.getNewTransaction();
+                policyDBDaoTransaction.createPolicy(newPolicy, policyData.getUserId());
+                successMap = newPolicy.savePolicies();
+                if(successMap.containsKey("success")){
+                    policyDBDaoTransaction.commitTransaction();
+                    if(policyData.isEditPolicy()){
+                        commonClassDao.update(policyVersionDao);
+                    }else{
+                        commonClassDao.save(policyVersionDao);
+                    }
+                    try{
+                        PolicyElasticSearchController search= new PolicyElasticSearchController();
+                        search.updateElk(policyData);
+                    }catch(Exception e){
+                        LOGGER.error("Error Occured while saving policy to Elastic Database"+e);
+                    }
+                    body = "success";
+                    status = HttpStatus.OK;
+                    response.setStatus(HttpServletResponse.SC_OK);
+                    response.addHeader("successMapKey", "success");
+                    response.addHeader("policyName", policyData.getNewFileName());
+
                     //get message from the SafetyCheckerResults if present
                     String safetyCheckerResponse = policyData.getClWarning();
                     String existingCLName = policyData.getExistingCLName();
@@ -512,77 +512,77 @@ public class PolicyCreation extends AbstractPolicyCreation{
                         PolicyLogger.info("SafetyCheckerResponse was empty or null.");
                     }
                     
-                               }else if (successMap.containsKey("invalidAttribute")) {
-                                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Action Attribute";
-                                       LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Could not fine " + policyData.getActionAttribute() + " in the ActionPolicyDict table.");
-                                       body = "invalidAttribute";
-                                       status = HttpStatus.BAD_REQUEST;
-                                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                                                         
-                                       response.addHeader("invalidAttribute", policyData.getActionAttribute());
-                                       response.addHeader("error", message);
-                                       response.addHeader("policyName", policyData.getPolicyName());
-                               }else if (successMap.containsKey("fwdberror")) {
-                                       policyDBDaoTransaction.rollbackTransaction();
-                                       body = "fwdberror";
-                                       status = HttpStatus.BAD_REQUEST;
-                                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE
+                }else if (successMap.containsKey("invalidAttribute")) {
+                    String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Action Attribute";
+                    LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Could not fine " + policyData.getActionAttribute() + " in the ActionPolicyDict table.");
+                    body = "invalidAttribute";
+                    status = HttpStatus.BAD_REQUEST;
+                    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                    response.addHeader("invalidAttribute", policyData.getActionAttribute());
+                    response.addHeader("error", message);
+                    response.addHeader("policyName", policyData.getPolicyName());
+                }else if (successMap.containsKey("fwdberror")) {
+                    policyDBDaoTransaction.rollbackTransaction();
+                    body = "fwdberror";
+                    status = HttpStatus.BAD_REQUEST;
+                    String message = XACMLErrorConstants.ERROR_DATA_ISSUE
                             + "Error when inserting Firewall ConfigBody data into the database.";
-                               PolicyLogger.error(message);
-                                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                                       response.addHeader("error", message);
-                                       response.addHeader("policyName", policyData.getPolicyName());
-                               } else if (successMap.get("error").equals("Validation Failed")) {
+                    PolicyLogger.error(message);
+                    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                    response.addHeader("error", message);
+                    response.addHeader("policyName", policyData.getPolicyName());
+                } else if (successMap.get("error").equals("Validation Failed")) {
                     policyDBDaoTransaction.rollbackTransaction();
                     String message = XACMLErrorConstants.ERROR_DATA_ISSUE
-                                       + "Error Validating the Policy on the PAP.";
+                            + "Error Validating the Policy on the PAP.";
                     PolicyLogger.error(message);
                     body = "Validation";
-                                       status = HttpStatus.BAD_REQUEST;
+                    status = HttpStatus.BAD_REQUEST;
                     response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
                     response.addHeader("error", message);
                     response.addHeader("policyName", policyData.getPolicyName());
                 }else {                                                
-                                       policyDBDaoTransaction.rollbackTransaction();
-                                       body = "error";
-                                       status = HttpStatus.INTERNAL_SERVER_ERROR;
-                                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);                                                               
-                                       response.addHeader("error", "error");                                                   
-                               }
-                       }catch(Exception e){
-                               LOGGER.error("Exception Occured : ",e);
-                               if(policyDBDaoTransaction != null){
-                                       policyDBDaoTransaction.rollbackTransaction();
-                               }
-                       }
-               }
-               catch (Exception e){
-                       LOGGER.error("Exception Occured : "+e.getMessage(),e);
-                       body = "error";
-                       response.addHeader("error", e.getMessage());    
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-               }
-               return new ResponseEntity<>(body, status);
-       }
-
-       @ExceptionHandler({ HttpMessageNotReadableException.class })
-       public ResponseEntity<String> messageNotReadableExceptionHandler(HttpServletRequest req, HttpMessageNotReadableException exception) {
-               LOGGER.error("Request not readable: {}", exception);
-               StringBuilder message = new StringBuilder();
-               message.append(exception.getMessage());
-               if (exception.getCause() != null) {
-                       message.append(" Reason Caused: "
-                                       + exception.getCause().getMessage());
-               }
-               return new ResponseEntity<>(message.toString(), HttpStatus.BAD_REQUEST);
-       }
-
-       public PolicyVersion getPolicyVersionData(String dbCheckPolicyName){
-               PolicyVersion entityItem = (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", dbCheckPolicyName);
-               if (entityItem != null) {               
-                       if(entityItem.getPolicyName().equals(dbCheckPolicyName)){
-                               return entityItem;
-                       }
-               }       
-               return entityItem;
-       }
+                    policyDBDaoTransaction.rollbackTransaction();
+                    body = "error";
+                    status = HttpStatus.INTERNAL_SERVER_ERROR;
+                    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                    response.addHeader("error", "error");
+                }
+            }catch(Exception e){
+                LOGGER.error("Exception Occured : ",e);
+                if(policyDBDaoTransaction != null){
+                    policyDBDaoTransaction.rollbackTransaction();
+                }
+            }
+        }
+        catch (Exception e){
+            LOGGER.error("Exception Occured : "+e.getMessage(),e);
+            body = "error";
+            response.addHeader("error", e.getMessage());
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+        }
+        return new ResponseEntity<>(body, status);
+    }
+
+    @ExceptionHandler({ HttpMessageNotReadableException.class })
+    public ResponseEntity<String> messageNotReadableExceptionHandler(HttpServletRequest req, HttpMessageNotReadableException exception) {
+        LOGGER.error("Request not readable: {}", exception);
+        StringBuilder message = new StringBuilder();
+        message.append(exception.getMessage());
+        if (exception.getCause() != null) {
+            message.append(" Reason Caused: "
+                    + exception.getCause().getMessage());
+        }
+        return new ResponseEntity<>(message.toString(), HttpStatus.BAD_REQUEST);
+    }
+
+    public PolicyVersion getPolicyVersionData(String dbCheckPolicyName){
+        PolicyVersion entityItem = (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", dbCheckPolicyName);
+        if (entityItem != null) {
+            if(entityItem.getPolicyName().equals(dbCheckPolicyName)){
+                return entityItem;
+            }
+        }
+        return entityItem;
+    }
 }
index cb03d44..e965356 100644 (file)
@@ -42,433 +42,433 @@ import org.springframework.web.servlet.ModelAndView;
 @Service("DictionaryService")
 public class DictionaryService {
 
-       /*
-        * Methods that call the controller method directly to Save and Update dictionary data
-        */
-       public String saveOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
-               
-               DictionaryController dictionary = new DictionaryController();
-                       ModelAndView result = dictionary.saveOnapDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               DictionaryController dictionary = new DictionaryController();
-                       ModelAndView result = dictionary.saveAttributeDictionary(request, response);
-               return result.getViewName();
-               }
-       
-       public String saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
-               
-               ActionPolicyDictionaryController action = new ActionPolicyDictionaryController();
-                       ModelAndView result = action.saveActionPolicyDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
-               
-               BRMSDictionaryController dictionary = new BRMSDictionaryController();
-                       ModelAndView result = dictionary.saveBRMSParamDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveVSCLAction(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.saveVSCLAction(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.saveVnfType(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.savePEPOptions(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.saveVarbind(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.saveServiceType(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       ModelAndView result = dictionary.saveSiteType(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
-                       ModelAndView result = dictionary.saveSettingsDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
-                       ModelAndView result = dictionary.saveRainyDayDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               DescriptiveDictionaryController dictionary = new DescriptiveDictionaryController();
-                       ModelAndView result = dictionary.saveDescriptiveDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveActionListDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveProtocolListDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveZoneDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveSecurityZoneDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.savePrefixListDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveAddressGroupDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveServiceGroupDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveServiceListDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       ModelAndView result = dictionary.saveTermListDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       
-       
-       
-       public String saveMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       ModelAndView result = dictionary.saveMicroServiceLocationDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       ModelAndView result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       ModelAndView result = dictionary.saveDCAEUUIDDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       ModelAndView result = dictionary.saveMicroServiceModelsDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveMicroServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       ModelAndView result = dictionary.saveMicroServiceAttributeDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               OptimizationDictionaryController dictionary = new OptimizationDictionaryController();
-                       ModelAndView result = dictionary.saveOptimizationModelsDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       ModelAndView result = dictionary.savePSServiceDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       ModelAndView result = dictionary.savePSResourceDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       ModelAndView result = dictionary.savePSTypeDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       ModelAndView result = dictionary.savePSClosedLoopDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String savePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       ModelAndView result = dictionary.savePSGroupScopeDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               
-               SafePolicyController dictionary = new SafePolicyController();
-                       ModelAndView result = dictionary.saveRiskTypeDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       public String saveSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
-               SafePolicyController dictionary = new SafePolicyController();
-                       ModelAndView result = dictionary.saveSafePolicyWarningDictionary(request, response);
-               return result.getViewName();
-       }
-       
-       
-       /*
-        * Methods that call the controller get methods directly to get dictionary data
-        */
-       public void getOnapDictionary(HttpServletResponse response){
-               DictionaryController dictionary = new DictionaryController();
-                       dictionary.getOnapNameDictionaryEntityData(response);                                   
-       }
-       
-       public void getAttributeDictionary(HttpServletResponse response){
-               DictionaryController dictionary = new DictionaryController();
-                       dictionary.getAttributeDictionaryEntityData(response);
-       }
-       
-       public void getActionPolicyDictionary(HttpServletResponse response){
-               ActionPolicyDictionaryController action = new ActionPolicyDictionaryController();
-                       action.getActionPolicyDictionaryEntityData(response);   
-       }
-       
-       public void getBRMSParamDictionary(HttpServletResponse response){
-               BRMSDictionaryController dictionary = new BRMSDictionaryController();
-                       dictionary.getBRMSParamDictionaryEntityData(response);
-       }
-       
-       public void getVSCLAction(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getVSCLActionDictionaryEntityData(response);
-       }
-       
-       public void getVnfType(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getVNFTypeDictionaryEntityData(response);
-       }
-       
-       public void getPEPOptions(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getPEPOptionsDictionaryEntityData(response);
-       }
-       
-       public void getVarbind(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getVarbindDictionaryEntityData(response);
-       }
-       
-       public void getServiceType(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getClosedLoopServiceDictionaryEntityData(response);
-       }
-       
-       public void getSiteType(HttpServletResponse response){
-               ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
-                       dictionary.getClosedLoopSiteDictionaryEntityData(response);     
-       }
-       
-       public void getSettingsDictionary(HttpServletResponse response){
-               DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
-                       dictionary.getSettingsDictionaryEntityData(response);
-       }
-       
-       public void getRainyDayDictionary(HttpServletResponse response){
-               DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
-                       dictionary.getRainyDayDictionaryEntityData(response);
-       }
-       
-       public void getDescriptiveDictionary(HttpServletResponse response){
-               DescriptiveDictionaryController dictionary = new DescriptiveDictionaryController();
-                       dictionary.getDescriptiveDictionaryEntityData(response);
-       }
-       
-       public void getActionListDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getActionListDictionaryEntityData(response);
-       }
-       
-       public void getProtocolListDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getProtocolListDictionaryEntityData(response);
-       }
-       
-       public void getZoneDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getZoneDictionaryEntityData(response);
-       }
-       
-       public void getSecurityZoneDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getSecurityZoneDictionaryEntityData(response);
-       }
-       
-       public void getPrefixListDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getPrefixListDictionaryEntityData(response);
-       }
-       
-       public void getAddressGroupDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getAddressGroupDictionaryEntityData(response);
-       }
-       
-       public void getServiceGroupDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getServiceGroupDictionaryEntityData(response);
-       }
-       
-       public void getServiceListDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getServiceListDictionaryEntityData(response);
-       }
-       
-       public void getTermListDictionary(HttpServletResponse response){
-               FirewallDictionaryController dictionary = new FirewallDictionaryController();
-                       dictionary.getTermListDictionaryEntityData(response);
-       }
-       
-       
-       public void getMicroServiceLocationDictionary(HttpServletResponse response){
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       dictionary.getMicroServiceLocationDictionaryEntityData(response);
-       }
-       
-       public void getMicroServiceConfigNameDictionary(HttpServletResponse response){
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       dictionary.getMicroServiceConfigNameDictionaryEntityData(response);
-       }
-       
-       public void getDCAEUUIDDictionary(HttpServletResponse response){
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       dictionary.getDCAEUUIDDictionaryEntityData(response);
-       }
-       
-       public void getMicroServiceModelsDictionary(HttpServletResponse response){
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       dictionary.getMicroServiceModelsDictionaryEntityData(response);
-       }
-       
-       public void getMicroServiceDictionary(HttpServletResponse response){
-               MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
-                       dictionary.getMicroServiceModelsDictionaryEntityData(response);
-       }
-       
-       public void getOptimizationModelsDictionary(HttpServletResponse response){
-               OptimizationDictionaryController dictionary = new OptimizationDictionaryController();
-                       dictionary.getOptimizationModelsDictionaryEntityData(response);
-       }
-       
-       public void getPSServiceDictionary(HttpServletResponse response){
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       dictionary.getPSServiceEntityData(response);
-       }
-       
-       public void getPSResourceDictionary(HttpServletResponse response){
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       dictionary.getPSResourceEntityData(response);
-       }
-       
-       public void getPSTypeDictionary(HttpServletResponse response){
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       dictionary.getPSTypeEntityData(response);
-       }
-       
-       public void getPSClosedLoopDictionary(HttpServletResponse response){
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       dictionary.getPSClosedLoopEntityData(response);
-       }
-       
-       public void getPSGroupScopeDictionary(HttpServletResponse response){
-               PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
-                       dictionary.getGroupPolicyScopeEntityData(response);
-       }
-       
-       public void getRiskTypeDictionary(HttpServletResponse response){
-               SafePolicyController dictionary = new SafePolicyController();
-                       dictionary.getRiskTypeDictionaryEntityData(response);
-       }
-       
-       public void getSafePolicyWarningDictionary(HttpServletResponse response) {
-               SafePolicyController dictionary = new SafePolicyController();
-                       dictionary.getSafePolicyWarningeEntityData(response);
-       }
+    /*
+     * Methods that call the controller method directly to Save and Update dictionary data
+     */
+    public String saveOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+        DictionaryController dictionary = new DictionaryController();
+            ModelAndView result = dictionary.saveOnapDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        DictionaryController dictionary = new DictionaryController();
+            ModelAndView result = dictionary.saveAttributeDictionary(request, response);
+        return result.getViewName();
+        }
+
+    public String saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+        ActionPolicyDictionaryController action = new ActionPolicyDictionaryController();
+            ModelAndView result = action.saveActionPolicyDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+        BRMSDictionaryController dictionary = new BRMSDictionaryController();
+            ModelAndView result = dictionary.saveBRMSParamDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveVSCLAction(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.saveVSCLAction(request, response);
+        return result.getViewName();
+    }
+
+    public String saveVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.saveVnfType(request, response);
+        return result.getViewName();
+    }
+
+    public String savePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.savePEPOptions(request, response);
+        return result.getViewName();
+    }
+
+    public String saveVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.saveVarbind(request, response);
+        return result.getViewName();
+    }
+
+    public String saveServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.saveServiceType(request, response);
+        return result.getViewName();
+    }
+
+    public String saveSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            ModelAndView result = dictionary.saveSiteType(request, response);
+        return result.getViewName();
+    }
+
+    public String saveSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
+            ModelAndView result = dictionary.saveSettingsDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
+            ModelAndView result = dictionary.saveRainyDayDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        DescriptiveDictionaryController dictionary = new DescriptiveDictionaryController();
+            ModelAndView result = dictionary.saveDescriptiveDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveActionListDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveProtocolListDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveZoneDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveSecurityZoneDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.savePrefixListDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveAddressGroupDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveServiceGroupDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveServiceListDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            ModelAndView result = dictionary.saveTermListDictionary(request, response);
+        return result.getViewName();
+    }
+
+
+
+
+    public String saveMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            ModelAndView result = dictionary.saveMicroServiceLocationDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            ModelAndView result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            ModelAndView result = dictionary.saveDCAEUUIDDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            ModelAndView result = dictionary.saveMicroServiceModelsDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveMicroServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            ModelAndView result = dictionary.saveMicroServiceAttributeDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        OptimizationDictionaryController dictionary = new OptimizationDictionaryController();
+            ModelAndView result = dictionary.saveOptimizationModelsDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            ModelAndView result = dictionary.savePSServiceDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            ModelAndView result = dictionary.savePSResourceDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            ModelAndView result = dictionary.savePSTypeDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            ModelAndView result = dictionary.savePSClosedLoopDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String savePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            ModelAndView result = dictionary.savePSGroupScopeDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+
+        SafePolicyController dictionary = new SafePolicyController();
+            ModelAndView result = dictionary.saveRiskTypeDictionary(request, response);
+        return result.getViewName();
+    }
+
+    public String saveSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+        SafePolicyController dictionary = new SafePolicyController();
+            ModelAndView result = dictionary.saveSafePolicyWarningDictionary(request, response);
+        return result.getViewName();
+    }
+
+
+    /*
+     * Methods that call the controller get methods directly to get dictionary data
+     */
+    public void getOnapDictionary(HttpServletResponse response){
+        DictionaryController dictionary = new DictionaryController();
+            dictionary.getOnapNameDictionaryEntityData(response);
+    }
+
+    public void getAttributeDictionary(HttpServletResponse response){
+        DictionaryController dictionary = new DictionaryController();
+            dictionary.getAttributeDictionaryEntityData(response);
+    }
+
+    public void getActionPolicyDictionary(HttpServletResponse response){
+        ActionPolicyDictionaryController action = new ActionPolicyDictionaryController();
+            action.getActionPolicyDictionaryEntityData(response);
+    }
+
+    public void getBRMSParamDictionary(HttpServletResponse response){
+        BRMSDictionaryController dictionary = new BRMSDictionaryController();
+            dictionary.getBRMSParamDictionaryEntityData(response);
+    }
+
+    public void getVSCLAction(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getVSCLActionDictionaryEntityData(response);
+    }
+
+    public void getVnfType(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getVNFTypeDictionaryEntityData(response);
+    }
+
+    public void getPEPOptions(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getPEPOptionsDictionaryEntityData(response);
+    }
+
+    public void getVarbind(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getVarbindDictionaryEntityData(response);
+    }
+
+    public void getServiceType(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getClosedLoopServiceDictionaryEntityData(response);
+    }
+
+    public void getSiteType(HttpServletResponse response){
+        ClosedLoopDictionaryController dictionary = new ClosedLoopDictionaryController();
+            dictionary.getClosedLoopSiteDictionaryEntityData(response);
+    }
+
+    public void getSettingsDictionary(HttpServletResponse response){
+        DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
+            dictionary.getSettingsDictionaryEntityData(response);
+    }
+
+    public void getRainyDayDictionary(HttpServletResponse response){
+        DecisionPolicyDictionaryController dictionary = new DecisionPolicyDictionaryController();
+            dictionary.getRainyDayDictionaryEntityData(response);
+    }
+
+    public void getDescriptiveDictionary(HttpServletResponse response){
+        DescriptiveDictionaryController dictionary = new DescriptiveDictionaryController();
+            dictionary.getDescriptiveDictionaryEntityData(response);
+    }
+
+    public void getActionListDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getActionListDictionaryEntityData(response);
+    }
+
+    public void getProtocolListDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getProtocolListDictionaryEntityData(response);
+    }
+
+    public void getZoneDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getZoneDictionaryEntityData(response);
+    }
+
+    public void getSecurityZoneDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getSecurityZoneDictionaryEntityData(response);
+    }
+
+    public void getPrefixListDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getPrefixListDictionaryEntityData(response);
+    }
+
+    public void getAddressGroupDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getAddressGroupDictionaryEntityData(response);
+    }
+
+    public void getServiceGroupDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getServiceGroupDictionaryEntityData(response);
+    }
+
+    public void getServiceListDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getServiceListDictionaryEntityData(response);
+    }
+
+    public void getTermListDictionary(HttpServletResponse response){
+        FirewallDictionaryController dictionary = new FirewallDictionaryController();
+            dictionary.getTermListDictionaryEntityData(response);
+    }
+
+
+    public void getMicroServiceLocationDictionary(HttpServletResponse response){
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            dictionary.getMicroServiceLocationDictionaryEntityData(response);
+    }
+
+    public void getMicroServiceConfigNameDictionary(HttpServletResponse response){
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            dictionary.getMicroServiceConfigNameDictionaryEntityData(response);
+    }
+
+    public void getDCAEUUIDDictionary(HttpServletResponse response){
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            dictionary.getDCAEUUIDDictionaryEntityData(response);
+    }
+
+    public void getMicroServiceModelsDictionary(HttpServletResponse response){
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            dictionary.getMicroServiceModelsDictionaryEntityData(response);
+    }
+
+    public void getMicroServiceDictionary(HttpServletResponse response){
+        MicroServiceDictionaryController dictionary = new MicroServiceDictionaryController();
+            dictionary.getMicroServiceModelsDictionaryEntityData(response);
+    }
+
+    public void getOptimizationModelsDictionary(HttpServletResponse response){
+        OptimizationDictionaryController dictionary = new OptimizationDictionaryController();
+            dictionary.getOptimizationModelsDictionaryEntityData(response);
+    }
+
+    public void getPSServiceDictionary(HttpServletResponse response){
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            dictionary.getPSServiceEntityData(response);
+    }
+
+    public void getPSResourceDictionary(HttpServletResponse response){
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            dictionary.getPSResourceEntityData(response);
+    }
+
+    public void getPSTypeDictionary(HttpServletResponse response){
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            dictionary.getPSTypeEntityData(response);
+    }
+
+    public void getPSClosedLoopDictionary(HttpServletResponse response){
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            dictionary.getPSClosedLoopEntityData(response);
+    }
+
+    public void getPSGroupScopeDictionary(HttpServletResponse response){
+        PolicyScopeDictionaryController dictionary = new PolicyScopeDictionaryController();
+            dictionary.getGroupPolicyScopeEntityData(response);
+    }
+
+    public void getRiskTypeDictionary(HttpServletResponse response){
+        SafePolicyController dictionary = new SafePolicyController();
+            dictionary.getRiskTypeDictionaryEntityData(response);
+    }
+
+    public void getSafePolicyWarningDictionary(HttpServletResponse response) {
+        SafePolicyController dictionary = new SafePolicyController();
+            dictionary.getSafePolicyWarningeEntityData(response);
+    }
 }
\ No newline at end of file
index 7382a77..5e4b4ee 100644 (file)
@@ -41,187 +41,187 @@ import org.onap.policy.pap.xacml.rest.components.CreateNewMicroServiceModel;
 import org.onap.policy.pap.xacml.rest.components.CreateNewOptimizationModel;
 
 public class ImportService {
-       private static final Logger logger = FlexLogger.getLogger(ImportService.class);
-       private static String errorMessage = "Error in reading in file from API call";
-       private static String errorMsg  = "error";
-       private static String operation = "operation";
-       private static String importHeader = "import";
-       private static String service = "service";
-       private static String extractDir = "ExtractDir";
-       private static String successMessage = "success";
-       private static String invalidServiceName = "Invalid ServiceName";
-       private static final String REGEX = "[0-9a-zA-Z._ ]*";
-       private static final String MISSING = "missing";
-       
-       public void doImportMicroServicePut(HttpServletRequest request, HttpServletResponse response) {
-               String importServiceCreation = request.getParameter("importService");
-               String fileName = request.getParameter("fileName");
-               String version = request.getParameter("version");
-               String serviceName = request.getParameter("serviceName");
-               
-               if(serviceName == null || serviceName.isEmpty() || !serviceName.matches(REGEX)){
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-                       response.addHeader(errorMsg, MISSING);  
-                       response.addHeader(operation, importHeader);
-                       response.addHeader(service, invalidServiceName);
-                       return;
-               }
+    private static final Logger logger = FlexLogger.getLogger(ImportService.class);
+    private static String errorMessage = "Error in reading in file from API call";
+    private static String errorMsg     = "error";
+    private static String operation = "operation";
+    private static String importHeader = "import";
+    private static String service = "service";
+    private static String extractDir = "ExtractDir";
+    private static String successMessage = "success";
+    private static String invalidServiceName = "Invalid ServiceName";
+    private static final String REGEX = "[0-9a-zA-Z._ ]*";
+    private static final String MISSING = "missing";
 
-               String description = request.getParameter("description");
-               Map<String, String> successMap = new HashMap<>();
-               if(("BRMSPARAM").equals(importServiceCreation)){
-                       StringBuilder builder = new StringBuilder();
-                       int ch;
-                       try {
-                               while((ch = request.getInputStream().read()) != -1){
-                                   builder.append((char)ch);
-                               }
-                       } catch (IOException e) {
-                               logger.error(e);
-                               PolicyLogger.error(errorMessage);
-                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                               response.addHeader(errorMsg, MISSING);  
-                               response.addHeader(operation, importHeader);
-                               response.addHeader(service, serviceName);
-                       }
-                       CreateBRMSRuleTemplate brmsRuleTemplate = new CreateBRMSRuleTemplate();
-                       successMap = brmsRuleTemplate.addRule(builder.toString(), serviceName, description, "API");
-               }
-               else if(("MICROSERVICE").equals(importServiceCreation)){
-                       CreateNewMicroServiceModel newMS = null;
-                       String randomID = UUID.randomUUID().toString();
-                       String type = ".xmi"; 
-                       if ( fileName != null) {
-                               File extracDir = new File(extractDir);
-                               if (!extracDir.exists()){
-                                       extracDir.mkdirs();
-                               }
-                               if (fileName.contains(".xmi") || fileName.contains(".yml")){
-                                       if(fileName.contains(".yml")){
-                                               type = ".yml";
-                                       }
-                                       // get the request content into a String
-                                       String xmi = null;
-                                       java.util.Scanner scanner;
-                                       try {
-                                               scanner = new java.util.Scanner(request.getInputStream());
-                                               scanner.useDelimiter("\\A");
-                                               xmi =  scanner.hasNext() ? scanner.next() : "";
-                                               scanner.close();
-                                       } catch (IOException e1) {
-                                               logger.error(e1);
-                                               PolicyLogger.error(errorMessage);
-                                               return;
-                                       }
-                                       PolicyLogger.info("Request from API to import new Service"); 
-                                       try (Writer writer = new BufferedWriter(new OutputStreamWriter(
-                                                       new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
-                                               writer.write(xmi);
-                                       } catch (IOException e) {
-                                               logger.error(e);
-                                               PolicyLogger.error(errorMessage);
-                                               return;
-                                       }
-                               }else{ 
-                                       InputStream inputStream = null;
-                                       try(FileOutputStream outputStream = new FileOutputStream(extractDir + File.separator + randomID+".zip")) {      
-                                               inputStream = request.getInputStream();
-                                               byte[] buffer = new byte[4096];
-                                               int bytesRead = -1 ; 
-                                               while ((bytesRead = inputStream.read(buffer)) != -1) { 
-                                                       outputStream.write(buffer, 0, bytesRead) ; 
-                                               }
-                                       } catch (IOException e) {
-                                               PolicyLogger.error("Error in reading in Zip File from API call"+e);
-                                               return;
-                                       }finally{
-                                               try {
-                                                       if(inputStream != null){
-                                                               inputStream.close();
-                                                       }
-                                               } catch (IOException e) {
-                                                       PolicyLogger.error("Exception Occured while closing the input/output stream"+e);
-                                               }
-                                       }
-                               }
-                               
-                               newMS =  new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID);
-                               
-                               successMap = newMS.addValuesToNewModel(type);
-                               
-                               if (successMap.containsKey(successMessage)) {
-                                       successMap.clear();
-                                       successMap = newMS.saveImportService();
-                               }
-                       }
-               } else if(("OPTIMIZATION").equals(importServiceCreation)){
-                       CreateNewOptimizationModel newOOF = null;
-                       String randomID = UUID.randomUUID().toString();
-                       if ( fileName != null) {
-                               File extracDir = new File(extractDir);
-                               if (!extracDir.exists()){
-                                       extracDir.mkdirs();
-                               }
-                               
-                               String type = ".yml";
-                               
-                               // get the request content into a String
-                               String yml = null;
-                               try (java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());){
-                                       scanner.useDelimiter("\\A");
-                                       yml =  scanner.hasNext() ? scanner.next() : "";
-                               } catch (IOException e1) {
-                                       logger.error(e1);
-                                       PolicyLogger.error(errorMessage);
-                                       return;
-                               }
-                               PolicyLogger.info("Request from API to import new Optimization Service Model"); 
-                               try (Writer writer = new BufferedWriter(new OutputStreamWriter(
-                                               new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
-                                       writer.write(yml);
-                               } catch (IOException e) {
-                                       logger.error(e);
-                                       PolicyLogger.error(errorMessage);
-                                       return;
-                               }
-                               
-                               newOOF =  new CreateNewOptimizationModel(fileName, serviceName, "API Import Service", version, randomID);
-                               successMap = newOOF.addValuesToNewModel();
-                               if (successMap.containsKey(successMessage)) {
-                                       successMap.clear();
-                                       successMap = newOOF.saveImportService();
-                               }
-                       }
-               }
-               
-               // return a response to the PAP             
-               if (successMap.containsKey(successMessage)) {                                                   
-                       response.setStatus(HttpServletResponse.SC_OK);                                                          
-                       response.addHeader("successMapKey", successMessage);                                                            
-                       response.addHeader(operation, importHeader);
-                       response.addHeader(service, serviceName);
-               } else if (successMap.containsKey("DBError")) {
-                       if (successMap.get("DBError").contains("EXISTS")){
-                               response.setStatus(HttpServletResponse.SC_CONFLICT);
-                               response.addHeader(service, serviceName);
-                               response.addHeader(errorMsg, "modelExistsDB");
-                       }else{
-                               response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                               response.addHeader(errorMsg, "importDB");
-                       }
-                       response.addHeader(operation, importHeader);
-                       response.addHeader(service, serviceName);
-               }else if (successMap.get(errorMsg).contains("MISSING")){
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       response.addHeader(errorMsg, MISSING);  
-                       response.addHeader(operation, importHeader);
-                       response.addHeader(service, serviceName);
-               }else if (successMap.get(errorMsg).contains("VALIDATION")){
-                       response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                       response.addHeader(errorMsg, "validation");     
-                       response.addHeader(operation, importHeader);
-                       response.addHeader(service, serviceName);
-               }
-       }
+    public void doImportMicroServicePut(HttpServletRequest request, HttpServletResponse response) {
+        String importServiceCreation = request.getParameter("importService");
+        String fileName = request.getParameter("fileName");
+        String version = request.getParameter("version");
+        String serviceName = request.getParameter("serviceName");
+
+        if(serviceName == null || serviceName.isEmpty() || !serviceName.matches(REGEX)){
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader(errorMsg, MISSING);
+            response.addHeader(operation, importHeader);
+            response.addHeader(service, invalidServiceName);
+            return;
+        }
+
+        String description = request.getParameter("description");
+        Map<String, String> successMap = new HashMap<>();
+        if(("BRMSPARAM").equals(importServiceCreation)){
+            StringBuilder builder = new StringBuilder();
+            int ch;
+            try {
+                while((ch = request.getInputStream().read()) != -1){
+                    builder.append((char)ch);
+                }
+            } catch (IOException e) {
+                logger.error(e);
+                PolicyLogger.error(errorMessage);
+                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                response.addHeader(errorMsg, MISSING);
+                response.addHeader(operation, importHeader);
+                response.addHeader(service, serviceName);
+            }
+            CreateBRMSRuleTemplate brmsRuleTemplate = new CreateBRMSRuleTemplate();
+            successMap = brmsRuleTemplate.addRule(builder.toString(), serviceName, description, "API");
+        }
+        else if(("MICROSERVICE").equals(importServiceCreation)){
+            CreateNewMicroServiceModel newMS = null;
+            String randomID = UUID.randomUUID().toString();
+            String type = ".xmi";
+            if ( fileName != null) {
+                File extracDir = new File(extractDir);
+                if (!extracDir.exists()){
+                    extracDir.mkdirs();
+                }
+                if (fileName.contains(".xmi") || fileName.contains(".yml")){
+                    if(fileName.contains(".yml")){
+                        type = ".yml";
+                    }
+                    // get the request content into a String
+                    String xmi = null;
+                    java.util.Scanner scanner;
+                    try {
+                        scanner = new java.util.Scanner(request.getInputStream());
+                        scanner.useDelimiter("\\A");
+                        xmi =  scanner.hasNext() ? scanner.next() : "";
+                        scanner.close();
+                    } catch (IOException e1) {
+                        logger.error(e1);
+                        PolicyLogger.error(errorMessage);
+                        return;
+                    }
+                    PolicyLogger.info("Request from API to import new Service");
+                    try (Writer writer = new BufferedWriter(new OutputStreamWriter(
+                            new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
+                        writer.write(xmi);
+                    } catch (IOException e) {
+                        logger.error(e);
+                        PolicyLogger.error(errorMessage);
+                        return;
+                    }
+                }else{
+                    InputStream inputStream = null;
+                    try(FileOutputStream outputStream = new FileOutputStream(extractDir + File.separator + randomID+".zip")) {
+                        inputStream = request.getInputStream();
+                        byte[] buffer = new byte[4096];
+                        int bytesRead = -1 ;
+                        while ((bytesRead = inputStream.read(buffer)) != -1) {
+                            outputStream.write(buffer, 0, bytesRead) ;
+                        }
+                    } catch (IOException e) {
+                        PolicyLogger.error("Error in reading in Zip File from API call"+e);
+                        return;
+                    }finally{
+                        try {
+                            if(inputStream != null){
+                                inputStream.close();
+                            }
+                        } catch (IOException e) {
+                            PolicyLogger.error("Exception Occured while closing the input/output stream"+e);
+                        }
+                    }
+                }
+
+                newMS =  new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID);
+
+                successMap = newMS.addValuesToNewModel(type);
+
+                if (successMap.containsKey(successMessage)) {
+                    successMap.clear();
+                    successMap = newMS.saveImportService();
+                }
+            }
+        } else if(("OPTIMIZATION").equals(importServiceCreation)){
+            CreateNewOptimizationModel newOOF = null;
+            String randomID = UUID.randomUUID().toString();
+            if ( fileName != null) {
+                File extracDir = new File(extractDir);
+                if (!extracDir.exists()){
+                    extracDir.mkdirs();
+                }
+
+                String type = ".yml";
+
+                // get the request content into a String
+                String yml = null;
+                try (java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());){
+                    scanner.useDelimiter("\\A");
+                    yml =  scanner.hasNext() ? scanner.next() : "";
+                } catch (IOException e1) {
+                    logger.error(e1);
+                    PolicyLogger.error(errorMessage);
+                    return;
+                }
+                PolicyLogger.info("Request from API to import new Optimization Service Model");
+                try (Writer writer = new BufferedWriter(new OutputStreamWriter(
+                        new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
+                    writer.write(yml);
+                } catch (IOException e) {
+                    logger.error(e);
+                    PolicyLogger.error(errorMessage);
+                    return;
+                }
+
+                newOOF =  new CreateNewOptimizationModel(fileName, serviceName, "API Import Service", version, randomID);
+                successMap = newOOF.addValuesToNewModel();
+                if (successMap.containsKey(successMessage)) {
+                    successMap.clear();
+                    successMap = newOOF.saveImportService();
+                }
+            }
+        }
+
+        // return a response to the PAP
+        if (successMap.containsKey(successMessage)) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.addHeader("successMapKey", successMessage);
+            response.addHeader(operation, importHeader);
+            response.addHeader(service, serviceName);
+        } else if (successMap.containsKey("DBError")) {
+            if (successMap.get("DBError").contains("EXISTS")){
+                response.setStatus(HttpServletResponse.SC_CONFLICT);
+                response.addHeader(service, serviceName);
+                response.addHeader(errorMsg, "modelExistsDB");
+            }else{
+                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                response.addHeader(errorMsg, "importDB");
+            }
+            response.addHeader(operation, importHeader);
+            response.addHeader(service, serviceName);
+        }else if (successMap.get(errorMsg).contains("MISSING")){
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            response.addHeader(errorMsg, MISSING);
+            response.addHeader(operation, importHeader);
+            response.addHeader(service, serviceName);
+        }else if (successMap.get(errorMsg).contains("VALIDATION")){
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            response.addHeader(errorMsg, "validation");
+            response.addHeader(operation, importHeader);
+            response.addHeader(service, serviceName);
+        }
+    }
 
 }
\ No newline at end of file
index 3fff9f2..864201c 100644 (file)
@@ -35,64 +35,64 @@ import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import com.att.research.xacml.api.pap.PDPPolicy;
 
 public class MetricService {
-       private static String errorMsg  = "error";
-       /*
-        * This is a private constructor
-        * */
-       private MetricService(){
-               
-       }
-       public static void doGetPolicyMetrics(HttpServletResponse response) {
-               Set<OnapPDPGroup> groups = new HashSet<>();
-               try {
-                       //get the count of policies on the PDP
-                       if(XACMLPapServlet.getPAPEngine()!=null){
-                               groups = XACMLPapServlet.getPAPEngine().getOnapPDPGroups();
-                       }
-                       int pdpCount = 0;
-                       for (OnapPDPGroup group : groups) {
-                               Set<PDPPolicy> policies = group.getPolicies();
-                               pdpCount += policies.size();
-                       }
-                       //get the count of policies on the PAP
-                       EntityManager em = null;
-                       if(XACMLPapServlet.getEmf()!=null){
-                               em = XACMLPapServlet.getEmf().createEntityManager();
-                       }
-                       if (em==null){
-                               PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager with persistence unit: " + XACMLPapServlet.getPersistenceUnit());
-                               response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                                                         
-                               response.addHeader(errorMsg, "Error creating entity manager with persistence unit");
-                               return;
-                       }
-                       int papCount = ((Number) em.createNamedQuery("PolicyVersion.findAllCount").getSingleResult()).intValue();
-                       em.close();
-                       int totalCount = pdpCount + papCount;
-                       //create json string for API response
-                       JSONObject json = new JSONObject();
-                       json.put("papCount", papCount);
-                       json.put("pdpCount", pdpCount);
-                       json.put("totalCount", totalCount);
-                       if (pdpCount>0 && papCount>0 && totalCount>0) {
-                               PolicyLogger.info("Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP.");
-                               response.setStatus(HttpServletResponse.SC_OK);
-                               response.addHeader("successMapKey", "success");
-                               response.addHeader("operation", "getMetrics");
-                               response.addHeader("metrics", json.toString() );
-                               return;
-                       }else{
-                               String message = "The policy count on the PAP and PDP is 0.  Please check the database and file system to correct this error.";
-                               response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                                                         
-                               response.addHeader(errorMsg, message);
-                               return;
-                       }
-               } catch (Exception e) {
-                       String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
-                       PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Querying the Database.");
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                                                         
-                       response.addHeader(errorMsg, message);
-                       return;                 
-               }
-       }
+    private static String errorMsg     = "error";
+    /*
+     * This is a private constructor
+     * */
+    private MetricService(){
+
+    }
+    public static void doGetPolicyMetrics(HttpServletResponse response) {
+        Set<OnapPDPGroup> groups = new HashSet<>();
+        try {
+            //get the count of policies on the PDP
+            if(XACMLPapServlet.getPAPEngine()!=null){
+                groups = XACMLPapServlet.getPAPEngine().getOnapPDPGroups();
+            }
+            int pdpCount = 0;
+            for (OnapPDPGroup group : groups) {
+                Set<PDPPolicy> policies = group.getPolicies();
+                pdpCount += policies.size();
+            }
+            //get the count of policies on the PAP
+            EntityManager em = null;
+            if(XACMLPapServlet.getEmf()!=null){
+                em = XACMLPapServlet.getEmf().createEntityManager();
+            }
+            if (em==null){
+                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager with persistence unit: " + XACMLPapServlet.getPersistenceUnit());
+                response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                response.addHeader(errorMsg, "Error creating entity manager with persistence unit");
+                return;
+            }
+            int papCount = ((Number) em.createNamedQuery("PolicyVersion.findAllCount").getSingleResult()).intValue();
+            em.close();
+            int totalCount = pdpCount + papCount;
+            //create json string for API response
+            JSONObject json = new JSONObject();
+            json.put("papCount", papCount);
+            json.put("pdpCount", pdpCount);
+            json.put("totalCount", totalCount);
+            if (pdpCount>0 && papCount>0 && totalCount>0) {
+                PolicyLogger.info("Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP.");
+                response.setStatus(HttpServletResponse.SC_OK);
+                response.addHeader("successMapKey", "success");
+                response.addHeader("operation", "getMetrics");
+                response.addHeader("metrics", json.toString() );
+                return;
+            }else{
+                String message = "The policy count on the PAP and PDP is 0.  Please check the database and file system to correct this error.";
+                response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+                response.addHeader(errorMsg, message);
+                return;
+            }
+        } catch (Exception e) {
+            String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Querying the Database.");
+            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+            response.addHeader(errorMsg, message);
+            return;
+        }
+    }
 
 }
index 0c98a44..f411e7d 100644 (file)
@@ -30,69 +30,69 @@ import com.google.common.base.Joiner;
 
 @Component
 public abstract class AbstractPolicyCreation {
-       
-       public static String getDomain() {
-               return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn");
-       }
-       
-       public String newPolicyID() {
-               return Joiner.on(':').skipNulls().join((getDomain().startsWith("urn") ? null: "urn"),
-                               getDomain().replaceAll("[/\\\\.]", ":"), "xacml", "policy", "id", UUID.randomUUID());
-       }
-       
-       public String convertDate(String dateTTL) {
-               String formateDate = null;
-               if(dateTTL.contains("/")){
-                       formateDate = dateTTL.replace("/", "-");
-               }else {
-                       formateDate = dateTTL;
-               }
-               return formateDate;
-       }
-       
 
-       
-       public void updatePolicyCreationToDatabase(){
-               // Add it into our tree
+    public static String getDomain() {
+        return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn");
+    }
+
+    public String newPolicyID() {
+        return Joiner.on(':').skipNulls().join((getDomain().startsWith("urn") ? null: "urn"),
+                getDomain().replaceAll("[/\\\\.]", ":"), "xacml", "policy", "id", UUID.randomUUID());
+    }
+
+    public String convertDate(String dateTTL) {
+        String formateDate = null;
+        if(dateTTL.contains("/")){
+            formateDate = dateTTL.replace("/", "-");
+        }else {
+            formateDate = dateTTL;
+        }
+        return formateDate;
+    }
+
+
+
+    public void updatePolicyCreationToDatabase(){
+        // Add it into our tree
 /*             Path finalPolicyPath = null;
-               finalPolicyPath = Paths.get(successMap.get("success"));
-               PolicyElasticSearchController controller = new PolicyElasticSearchController();
-               controller.updateElk(finalPolicyPath.toString());
-               File file = finalPolicyPath.toFile();
-               if(file != null){
-                       String policyName = file.toString();
-                       String removePath = policyName.substring(policyName.indexOf("repository")+11);
-                       String removeXml = removePath.replace(".xml", "");
-                       String removeExtension = removeXml.substring(0, removeXml.indexOf("."));
-                       List<Object> policyVersionList = commonClassDao.getDataById(PolicyVersion.class, "policyName", removeExtension);
-                       if (policyVersionList.size() > 0) {             
-                               for(int i = 0;  i < policyVersionList.size(); i++) {
-                               PolicyVersion entityItem = (PolicyVersion) policyVersionList.get(i);
-                                       if(entityItem.getPolicyName().equals(removeExtension)){
-                                               version = entityItem.getHigherVersion() +1;
-                                               entityItem.setActiveVersion(version);
-                                               entityItem.setHigherVersion(version);
-                                               entityItem.setModifiedBy(userId);
-                                               commonClassDao.update(entityItem);
-                                               if(policyData.isEditPolicy){
-                                                       PolicyNotificationMail email = new PolicyNotificationMail();
-                                                       String mode = "EditPolicy";
-                                                       String policyNameForEmail = policyData.getDomainDir() + File.separator + policyData.getOldPolicyFileName() + ".xml";
-                                                       email.sendMail(entityItem, policyNameForEmail, mode, commonClassDao);
-                                               }
-                                       }
-                               }
-                       }else{
-                               PolicyVersion entityItem = new PolicyVersion();
-                               entityItem.setActiveVersion(version);
-                               entityItem.setHigherVersion(version);
-                               entityItem.setPolicyName(removeExtension);
-                               entityItem.setCreatedBy(userId);
-                               entityItem.setModifiedBy(userId);
-                               commonClassDao.save(entityItem);
-                       }       
-               }*/
-       }
+        finalPolicyPath = Paths.get(successMap.get("success"));
+        PolicyElasticSearchController controller = new PolicyElasticSearchController();
+        controller.updateElk(finalPolicyPath.toString());
+        File file = finalPolicyPath.toFile();
+        if(file != null){
+            String policyName = file.toString();
+            String removePath = policyName.substring(policyName.indexOf("repository")+11);
+            String removeXml = removePath.replace(".xml", "");
+            String removeExtension = removeXml.substring(0, removeXml.indexOf("."));
+            List<Object> policyVersionList = commonClassDao.getDataById(PolicyVersion.class, "policyName", removeExtension);
+            if (policyVersionList.size() > 0) {
+                for(int i = 0;  i < policyVersionList.size(); i++) {
+                PolicyVersion entityItem = (PolicyVersion) policyVersionList.get(i);
+                    if(entityItem.getPolicyName().equals(removeExtension)){
+                        version = entityItem.getHigherVersion() +1;
+                        entityItem.setActiveVersion(version);
+                        entityItem.setHigherVersion(version);
+                        entityItem.setModifiedBy(userId);
+                        commonClassDao.update(entityItem);
+                        if(policyData.isEditPolicy){
+                            PolicyNotificationMail email = new PolicyNotificationMail();
+                            String mode = "EditPolicy";
+                            String policyNameForEmail = policyData.getDomainDir() + File.separator + policyData.getOldPolicyFileName() + ".xml";
+                            email.sendMail(entityItem, policyNameForEmail, mode, commonClassDao);
+                        }
+                    }
+                }
+            }else{
+                PolicyVersion entityItem = new PolicyVersion();
+                entityItem.setActiveVersion(version);
+                entityItem.setHigherVersion(version);
+                entityItem.setPolicyName(removeExtension);
+                entityItem.setCreatedBy(userId);
+                entityItem.setModifiedBy(userId);
+                commonClassDao.save(entityItem);
+            }
+        }*/
+    }
 
 
 }
index 5610577..f852557 100644 (file)
@@ -48,166 +48,166 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @Service
 public class DictionaryUtils {
 
-       private static final Log LOGGER = LogFactory.getLog(DictionaryUtils.class);
-       
-       private static String apiflag = "apiflag";
-       private static String operation = "operation";
-       private static String duplicateResponseString = "Duplicate";
-       private static String utf8 = "UTF-8";
-       private static String applicationJsonContentType = "application / json";
-       
-       private static CommonClassDao commonClassDao;
-       
-       private static DictionaryUtils dictionaryUtils;
-       
-       public static synchronized DictionaryUtils getDictionaryUtils() {
-           return dictionaryUtils != null ? dictionaryUtils : new DictionaryUtils();
-       }
-
-       public static synchronized void setDictionaryUtils(DictionaryUtils dictionaryUtils) {
-               DictionaryUtils.dictionaryUtils = dictionaryUtils;
-       }
-       
-       @Autowired
-       public DictionaryUtils(CommonClassDao commonClassDao){
-               DictionaryUtils.commonClassDao = commonClassDao;
-       }
-       
-       public DictionaryUtils(){
-               super();
-       }
-       
-       public UserInfo getUserInfo(String loginId){
-               return (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", loginId);
-       }
-       
-       public boolean isRequestFromAPI(HttpServletRequest request){
-               return request.getParameter(apiflag)!=null && "api".equalsIgnoreCase(request.getParameter(apiflag));
-       }
-       
-       public String appendKey(List<Object> objects, String key1, String appendValue){
-               StringBuilder userValue = new StringBuilder();
-               int counter = 0;
-               for(Object attribute : objects){
-                       if(attribute instanceof LinkedHashMap<?, ?>){
-                               String key = ((LinkedHashMap<?, ?>) attribute).get(key1).toString();
-                               if(counter>0){
-                                       userValue.append(appendValue);
-                               }
-                               userValue.append(key);
-                               counter ++;
-                       }
-               }
-               return userValue.toString();
-       }
-       
-       public String appendKeyValue(List<Object> objects, String append1, String append2){
-               StringBuilder header = new StringBuilder();
-               int counter = 0;
-               for(Object attribute : objects){
-                       if(attribute instanceof LinkedHashMap<?, ?>){
-                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                               String value = ((LinkedHashMap<?, ?>) attribute).get("number").toString();
-                               if(counter>0){
-                                       header.append(append1);
-                               }
-                               header.append(key).append(append2).append(value);
-                               counter ++;
-                       }
-               }
-               return header.toString();
-       }
-       
-       public Datatype getDataType(String datatype){
-               Datatype a = new Datatype();
-               if("string".equalsIgnoreCase(datatype)){
-                       a.setId(26);    
-               }else if("integer".equalsIgnoreCase(datatype)){
-                       a.setId(12);    
-               }else if("boolean".equalsIgnoreCase(datatype)){
-                       a.setId(18);    
-               }else if("double".equalsIgnoreCase(datatype)){
-                       a.setId(25);    
-               }else if("user".equalsIgnoreCase(datatype)){
-                       a.setId(29);    
-               }
-               return a;
-       }
-       
-       public Category getCategory(){
-               return (Category) commonClassDao.getDataById(Category.class, "shortName", "resource").get(0);   
-       }
-       
-       public ModelAndView getResultForApi(String inResponseString){
-               String responseString = inResponseString;
-               if(responseString!=null && !duplicateResponseString.equals(responseString)){
-                       responseString = "Success";
-               }
-               ModelAndView result = new ModelAndView();
-               result.setViewName(responseString);
-               return result;
-       }
-       
-       public void setResponseData(HttpServletResponse response, String key, String responseString) throws IOException{
-               response.setCharacterEncoding(utf8);
-               response.setContentType(applicationJsonContentType);
-
-               PrintWriter out = response.getWriter();
-               JSONObject j = new JSONObject("{"+key+":" + responseString + "}");
-               out.write(j.toString());
-       }
-       
-       public void setErrorResponseData(HttpServletResponse response, Exception e) throws IOException{
-               LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               response.setCharacterEncoding(utf8);
-               PrintWriter out = response.getWriter();
-               out.write(e.getMessage());
-       }
-       
-       @SuppressWarnings("rawtypes")
-       public void getDataByEntity(HttpServletResponse response, String key, String value, Class className){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put(key, mapper.writeValueAsString(commonClassDao.getDataByColumn(className, value)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }catch(Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
-       }
-       
-       @SuppressWarnings("rawtypes")
-       public void getData(HttpServletResponse response, String key, Class className){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put(key, mapper.writeValueAsString(commonClassDao.getData(className)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
+    private static final Log LOGGER    = LogFactory.getLog(DictionaryUtils.class);
+
+    private static String apiflag = "apiflag";
+    private static String operation = "operation";
+    private static String duplicateResponseString = "Duplicate";
+    private static String utf8 = "UTF-8";
+    private static String applicationJsonContentType = "application / json";
+
+    private static CommonClassDao commonClassDao;
+
+    private static DictionaryUtils dictionaryUtils;
+
+    public static synchronized DictionaryUtils getDictionaryUtils() {
+        return dictionaryUtils != null ? dictionaryUtils : new DictionaryUtils();
+    }
+
+    public static synchronized void setDictionaryUtils(DictionaryUtils dictionaryUtils) {
+        DictionaryUtils.dictionaryUtils = dictionaryUtils;
+    }
+
+    @Autowired
+    public DictionaryUtils(CommonClassDao commonClassDao){
+        DictionaryUtils.commonClassDao = commonClassDao;
+    }
+
+    public DictionaryUtils(){
+        super();
+    }
+
+    public UserInfo getUserInfo(String loginId){
+        return (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", loginId);
+    }
+
+    public boolean isRequestFromAPI(HttpServletRequest request){
+        return request.getParameter(apiflag)!=null && "api".equalsIgnoreCase(request.getParameter(apiflag));
+    }
+
+    public String appendKey(List<Object> objects, String key1, String appendValue){
+        StringBuilder userValue = new StringBuilder();
+        int counter = 0;
+        for(Object attribute : objects){
+            if(attribute instanceof LinkedHashMap<?, ?>){
+                String key = ((LinkedHashMap<?, ?>) attribute).get(key1).toString();
+                if(counter>0){
+                    userValue.append(appendValue);
+                }
+                userValue.append(key);
+                counter ++;
+            }
+        }
+        return userValue.toString();
+    }
+
+    public String appendKeyValue(List<Object> objects, String append1, String append2){
+        StringBuilder header = new StringBuilder();
+        int counter = 0;
+        for(Object attribute : objects){
+            if(attribute instanceof LinkedHashMap<?, ?>){
+                String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
+                String value = ((LinkedHashMap<?, ?>) attribute).get("number").toString();
+                if(counter>0){
+                    header.append(append1);
+                }
+                header.append(key).append(append2).append(value);
+                counter ++;
+            }
+        }
+        return header.toString();
+    }
+
+    public Datatype getDataType(String datatype){
+        Datatype a = new Datatype();
+        if("string".equalsIgnoreCase(datatype)){
+            a.setId(26);
+        }else if("integer".equalsIgnoreCase(datatype)){
+            a.setId(12);
+        }else if("boolean".equalsIgnoreCase(datatype)){
+            a.setId(18);
+        }else if("double".equalsIgnoreCase(datatype)){
+            a.setId(25);
+        }else if("user".equalsIgnoreCase(datatype)){
+            a.setId(29);
+        }
+        return a;
+    }
+
+    public Category getCategory(){
+        return (Category) commonClassDao.getDataById(Category.class, "shortName", "resource").get(0);
+    }
+
+    public ModelAndView getResultForApi(String inResponseString){
+        String responseString = inResponseString;
+        if(responseString!=null && !duplicateResponseString.equals(responseString)){
+            responseString = "Success";
+        }
+        ModelAndView result = new ModelAndView();
+        result.setViewName(responseString);
+        return result;
+    }
+
+    public void setResponseData(HttpServletResponse response, String key, String responseString) throws IOException{
+        response.setCharacterEncoding(utf8);
+        response.setContentType(applicationJsonContentType);
+
+        PrintWriter out = response.getWriter();
+        JSONObject j = new JSONObject("{"+key+":" + responseString + "}");
+        out.write(j.toString());
+    }
+
+    public void setErrorResponseData(HttpServletResponse response, Exception e) throws IOException{
+        LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
+        response.setCharacterEncoding(utf8);
+        PrintWriter out = response.getWriter();
+        out.write(e.getMessage());
+    }
+
+    @SuppressWarnings("rawtypes")
+    public void getDataByEntity(HttpServletResponse response, String key, String value, Class className){
+        try{
+            Map<String, Object> model = new HashMap<>();
+            ObjectMapper mapper = new ObjectMapper();
+            model.put(key, mapper.writeValueAsString(commonClassDao.getDataByColumn(className, value)));
+            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
+            JSONObject j = new JSONObject(msg);
+            response.getWriter().write(j.toString());
+        }catch(Exception e){
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
+        }
+    }
+
+    @SuppressWarnings("rawtypes")
+    public void getData(HttpServletResponse response, String key, Class className){
+        try{
+            Map<String, Object> model = new HashMap<>();
+            ObjectMapper mapper = new ObjectMapper();
+            model.put(key, mapper.writeValueAsString(commonClassDao.getData(className)));
+            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
+            JSONObject j = new JSONObject(msg);
             response.addHeader("successMapKey", "success"); 
             response.addHeader(operation, "getDictionary");
-                       response.getWriter().write(j.toString());
-               }catch(Exception e){
+            response.getWriter().write(j.toString());
+        }catch(Exception e){
             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
             response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
             response.addHeader("error", "dictionaryDBQuery");
-               }       
-       }
-       
-       @SuppressWarnings("unchecked")
-       public void removeData(HttpServletRequest request, HttpServletResponse response, String key, @SuppressWarnings("rawtypes") Class className) throws IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       commonClassDao.delete((Object)mapper.readValue(root.get("data").toString(), className));
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(className));
-                       setResponseData(response, key, responseString);
-               }catch(Exception e){
-                       setErrorResponseData(response, e);
-               }
-       }
-       
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public void removeData(HttpServletRequest request, HttpServletResponse response, String key, @SuppressWarnings("rawtypes") Class className) throws IOException{
+        try{
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+            JsonNode root = mapper.readTree(request.getReader());
+            commonClassDao.delete((Object)mapper.readValue(root.get("data").toString(), className));
+            String responseString = mapper.writeValueAsString(commonClassDao.getData(className));
+            setResponseData(response, key, responseString);
+        }catch(Exception e){
+            setErrorResponseData(response, e);
+        }
+    }
+
 }
index 22c44a8..b9880d8 100644 (file)
@@ -31,88 +31,88 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 
 public class JPAUtils {
-       private static final Logger LOGGER      = FlexLogger.getLogger(JPAUtils.class);
-       
-       private static EntityManagerFactory emf;
-       private static JPAUtils currentInstance = null;
-       
-       
-       /**
-        * Get an instance of a JPAUtils. It creates one if it does not exist.
-        * Only one instance is allowed to be created per server.
-        * @param emf The EntityFactoryManager to be used for database connections
-        * @return The new instance of JPAUtils or throw exception if the given emf is null.
-        * @throws IllegalStateException if a JPAUtils has already been constructed. Call getJPAUtilsInstance() to get this.
-        */
-       public static JPAUtils getJPAUtilsInstance(EntityManagerFactory emf){
-               LOGGER.debug("getJPAUtilsInstance(EntityManagerFactory emf) as getJPAUtilsInstance("+emf+") called");
-               if(currentInstance == null){
-                       if(emf != null){
-                               currentInstance = new JPAUtils(emf);
-                               return currentInstance;
-                       }
-                       throw new IllegalStateException("The EntityManagerFactory is Null");
-               }
-               return currentInstance;
-       }
-       
-       private JPAUtils(EntityManagerFactory emf){
-               LOGGER.debug("JPAUtils(EntityManagerFactory emf) as JPAUtils("+emf+") called");
-               JPAUtils.emf = emf;     
-       }
-       
-       /**
-        * Returns the lockdown value, in case of exception it is assumed that lockdown functionality
-        * is not supported and returns false.
-        * 
-        * 
-        * @throws ReadOnlyException
-        * @throws ConversionException
-        */
-       public boolean dbLockdownIgnoreErrors() {
-               if (LOGGER.isTraceEnabled())
-                       LOGGER.trace("ENTER");
-               
-               boolean lockdown = false;
-               try {
-                       lockdown = dbLockdown();
-               } catch (Exception e) {
-                       LOGGER.warn("Cannot access DB lockdown value", e);
-               }
-               return lockdown;
-       }
-       
-       /**
-        * Returns the lockdown value from the database.
-        * 
-        * @throws ReadOnlyException
-        * @throws ConversionException
-        */
-       public boolean dbLockdown() 
-                       throws  IllegalAccessException {
-               if (LOGGER.isTraceEnabled())
-                       LOGGER.trace("ENTER");
-               
-               EntityManager em = emf.createEntityManager();
-               Query globalRoleSettingsJPA = em.createNamedQuery("GlobalRoleSettings.findAll");        
-               
-               GlobalRoleSettings globalRoleSettings = (GlobalRoleSettings) globalRoleSettingsJPA.getSingleResult();
-               
-               if (globalRoleSettings == null) {
-                       // this should not happen
-                       String msg = "NO GlobalSetttings for " + XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString();
-                       if (LOGGER.isErrorEnabled())
-                               LOGGER.error(msg);
-                       throw new IllegalAccessException(msg);
-               }
-               
-               if (!globalRoleSettings.getRole().equals(XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString())) {
-                       String msg = "NOT FOUND db data for " + XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString();
-                       if (LOGGER.isErrorEnabled())
-                               LOGGER.error(msg);
-                       throw new IllegalAccessException(msg);
-               }
-               
-               return globalRoleSettings.isLockdown();
-       }
+    private static final Logger LOGGER = FlexLogger.getLogger(JPAUtils.class);
+
+    private static EntityManagerFactory emf;
+    private static JPAUtils currentInstance = null;
+
+
+    /**
+     * Get an instance of a JPAUtils. It creates one if it does not exist.
+     * Only one instance is allowed to be created per server.
+     * @param emf The EntityFactoryManager to be used for database connections
+     * @return The new instance of JPAUtils or throw exception if the given emf is null.
+     * @throws IllegalStateException if a JPAUtils has already been constructed. Call getJPAUtilsInstance() to get this.
+     */
+    public static JPAUtils getJPAUtilsInstance(EntityManagerFactory emf){
+        LOGGER.debug("getJPAUtilsInstance(EntityManagerFactory emf) as getJPAUtilsInstance("+emf+") called");
+        if(currentInstance == null){
+            if(emf != null){
+                currentInstance = new JPAUtils(emf);
+                return currentInstance;
+            }
+            throw new IllegalStateException("The EntityManagerFactory is Null");
+        }
+        return currentInstance;
+    }
+
+    private JPAUtils(EntityManagerFactory emf){
+        LOGGER.debug("JPAUtils(EntityManagerFactory emf) as JPAUtils("+emf+") called");
+        JPAUtils.emf = emf;
+    }
+
+    /**
+     * Returns the lockdown value, in case of exception it is assumed that lockdown functionality
+     * is not supported and returns false.
+     *
+     *
+     * @throws ReadOnlyException
+     * @throws ConversionException
+     */
+    public boolean dbLockdownIgnoreErrors() {
+        if (LOGGER.isTraceEnabled())
+            LOGGER.trace("ENTER");
+
+        boolean lockdown = false;
+        try {
+            lockdown = dbLockdown();
+        } catch (Exception e) {
+            LOGGER.warn("Cannot access DB lockdown value", e);
+        }
+        return lockdown;
+    }
+
+    /**
+     * Returns the lockdown value from the database.
+     *
+     * @throws ReadOnlyException
+     * @throws ConversionException
+     */
+    public boolean dbLockdown()
+            throws  IllegalAccessException {
+        if (LOGGER.isTraceEnabled())
+            LOGGER.trace("ENTER");
+
+        EntityManager em = emf.createEntityManager();
+        Query globalRoleSettingsJPA = em.createNamedQuery("GlobalRoleSettings.findAll");
+
+        GlobalRoleSettings globalRoleSettings = (GlobalRoleSettings) globalRoleSettingsJPA.getSingleResult();
+
+        if (globalRoleSettings == null) {
+            // this should not happen
+            String msg = "NO GlobalSetttings for " + XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString();
+            if (LOGGER.isErrorEnabled())
+                LOGGER.error(msg);
+            throw new IllegalAccessException(msg);
+        }
+
+        if (!globalRoleSettings.getRole().equals(XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString())) {
+            String msg = "NOT FOUND db data for " + XacmlAdminAuthorization.Role.ROLE_SUPERADMIN.toString();
+            if (LOGGER.isErrorEnabled())
+                LOGGER.error(msg);
+            throw new IllegalAccessException(msg);
+        }
+
+        return globalRoleSettings.isLockdown();
+    }
 }
index ab3b126..6ea0c79 100644 (file)
@@ -22,46 +22,46 @@ package org.onap.policy.pap.xacml.rest.util;
 
 public class JsonMessage {
 
-       private String data;
-       private String data2;
-       private String data3;
-       public JsonMessage(String data) {
-               super();
-               this.data = data;
-       }
-       public JsonMessage(String data,String data2) {
-               super();
-               this.data = data;
-               this.data2 = data2;
-       }
+    private String data;
+    private String data2;
+    private String data3;
+    public JsonMessage(String data) {
+        super();
+        this.data = data;
+    }
+    public JsonMessage(String data,String data2) {
+        super();
+        this.data = data;
+        this.data2 = data2;
+    }
+
+    public JsonMessage(String data,String data2,String data3) {
+        super();
+        this.data = data;
+        this.data2 = data2;
+        this.data3 = data3;
+    }
+
+    public String getData() {
+        return data;
+    }
+
+    public void setData(String data) {
+        this.data = data;
+    }
+    public String getData2() {
+        return data2;
+    }
+    public void setData2(String data2) {
+        this.data2 = data2;
+    }
+    public String getData3() {
+        return data3;
+    }
+    public void setData3(String data3) {
+        this.data3 = data3;
+    }
 
-       public JsonMessage(String data,String data2,String data3) {
-               super();
-               this.data = data;
-               this.data2 = data2;
-               this.data3 = data3;
-       }
-       
-       public String getData() {
-               return data;
-       }
 
-       public void setData(String data) {
-               this.data = data;
-       }
-       public String getData2() {
-               return data2;
-       }
-       public void setData2(String data2) {
-               this.data2 = data2;
-       }
-       public String getData3() {
-               return data3;
-       }
-       public void setData3(String data3) {
-               this.data3 = data3;
-       }
-       
-       
 }
 
index 352505e..0ac6c70 100644 (file)
@@ -31,34 +31,34 @@ import org.onap.policy.utils.CryptoUtils;
 import com.att.research.xacml.util.XACMLProperties;
 
 public class AuthenticationService {
-       private String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
-       private String papPass = CryptoUtils.decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS));
-       
-       public boolean authenticate(String authCredentials) {
+    private String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
+    private String papPass = CryptoUtils.decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS));
 
-               if (null == authCredentials)
-                       return false;
-               // header value format will be "Basic encodedstring" for Basic authentication. 
-               final String encodedUserPassword = authCredentials.replaceFirst("Basic" + " ", "");
-               String usernameAndPassword = null;
-               try {
-                       byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword);
-                       usernameAndPassword = new String(decodedBytes, "UTF-8");
-               } catch (Exception e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "AuthenticationService", "Exception decoding username and password");
-                       return false;
-               }
-               try {
-                       final StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":");
-                       final String username = tokenizer.nextToken();
-                       final String password = tokenizer.nextToken();
+    public boolean authenticate(String authCredentials) {
+
+        if (null == authCredentials)
+            return false;
+        // header value format will be "Basic encodedstring" for Basic authentication.
+        final String encodedUserPassword = authCredentials.replaceFirst("Basic"        + " ", "");
+        String usernameAndPassword = null;
+        try {
+            byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword);
+            usernameAndPassword = new String(decodedBytes, "UTF-8");
+        } catch (Exception e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "AuthenticationService", "Exception decoding username and password");
+            return false;
+        }
+        try {
+            final StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":");
+            final String username = tokenizer.nextToken();
+            final String password = tokenizer.nextToken();
+
+            boolean authenticationStatus = papID.equals(username)      && papPass.equals(password);
+            return authenticationStatus;
+        } catch (Exception e){
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "AuthenticationService", "Exception authenticating user");
+            return false;
+        }
+    }
 
-                       boolean authenticationStatus = papID.equals(username)   && papPass.equals(password);
-                       return authenticationStatus;
-               } catch (Exception e){
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "AuthenticationService", "Exception authenticating user");
-                       return false;
-               }
-       }
-       
 }
index 335b94f..28207f2 100644 (file)
@@ -47,137 +47,137 @@ import com.att.research.xacml.api.pap.PAPException;
 
 public class CheckPDP {
 
-       private static Path pdpPath = null;
-       private static Properties pdpProp = null;
-       private static Long oldModified = null;
-       private static Long newModified = null;
-       private static HashMap<String, String> pdpMap = null;
-       private static final Logger logger = FlexLogger.getLogger(CheckPDP.class);
+    private static Path pdpPath = null;
+    private static Properties pdpProp = null;
+    private static Long oldModified = null;
+    private static Long newModified = null;
+    private static HashMap<String, String> pdpMap = null;
+    private static final Logger logger = FlexLogger.getLogger(CheckPDP.class);
 
-       public static boolean validateID(String id) {
-               // ReadFile
-               try {
-                       readFile();
-               } catch (Exception e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exception reading file");
-                       return false;
-               }
-               // Check ID
-               if (pdpMap.containsKey(id)) {
-                       return true;
-               }
-               return false;
-       }
+    public static boolean validateID(String id) {
+        // ReadFile
+        try {
+            readFile();
+        } catch (Exception e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exception reading file");
+            return false;
+        }
+        // Check ID
+        if (pdpMap.containsKey(id)) {
+            return true;
+        }
+        return false;
+    }
 
-       private static void readFile() throws PAPException {
-               String pdpFile = XACMLPapServlet.getPDPFile();
-               if (pdpFile == null) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "PDP File name is undefined");
-                       throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"PDP File name not Valid : " + pdpFile);
-               }
-               if (pdpPath == null) {
-                       pdpPath = Paths.get(pdpFile);
-                       if (Files.notExists(pdpPath)) {
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "File doesn't exist in the specified Path");
-                               throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"File doesn't exist in the specified Path : "+ pdpPath.toString());
-                       } 
-                       if (pdpPath.toString().endsWith(".properties")) {
-                               readProps();
-                       } else {
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "Not a .properties file");
-                               throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Not a .properties file");
-                       }
-               }
-               // Check if File is updated recently
-               else {
-                       newModified = pdpPath.toFile().lastModified();
-                       if (newModified != oldModified) {
-                               // File has been updated.
-                               readProps();
-                       }
-               }
-       }
+    private static void readFile() throws PAPException {
+        String pdpFile = XACMLPapServlet.getPDPFile();
+        if (pdpFile == null) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "PDP File name is undefined");
+            throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"PDP File name not Valid : " + pdpFile);
+        }
+        if (pdpPath == null) {
+            pdpPath = Paths.get(pdpFile);
+            if (Files.notExists(pdpPath)) {
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "File doesn't exist in the specified Path");
+                throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"File doesn't exist in the specified Path : "+ pdpPath.toString());
+            }
+            if (pdpPath.toString().endsWith(".properties")) {
+                readProps();
+            } else {
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + "Not a .properties file");
+                throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Not a .properties file");
+            }
+        }
+        // Check if File is updated recently
+        else {
+            newModified = pdpPath.toFile().lastModified();
+            if (newModified != oldModified) {
+                // File has been updated.
+                readProps();
+            }
+        }
+    }
 
-       @SuppressWarnings({ "rawtypes", "unchecked" })
-       private static void readProps() throws PAPException {
-               InputStream in;
-               pdpProp = new Properties();
-               try {
-                       in = new FileInputStream(pdpPath.toFile());
-                       oldModified = pdpPath.toFile().lastModified();
-                       pdpProp.load(in);
-               } catch (IOException e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Cannot load the Properties file");
-                       throw new PAPException("Cannot Load the Properties file", e);
-               }
-               // Read the Properties and Load the PDPs and encoding.
-               pdpMap = new HashMap<>();
-               // Check the Keys for PDP_URLs
-               Collection<Object> unsorted = pdpProp.keySet();
-               List<String> sorted = new ArrayList(unsorted);
-               Collections.sort(sorted);
-               for (String propKey : sorted) {
-                       if (propKey.startsWith("PDP_URL")) {
-                               String check_val = pdpProp.getProperty(propKey);
-                               if (check_val == null) {
-                                       throw new PAPException("Properties file doesn't have the PDP_URL parameter");
-                               }
-                               if (check_val.contains(";")) {
-                                       List<String> pdp_default = new ArrayList<>(Arrays.asList(check_val.split("\\s*;\\s*")));
-                                       int pdpCount = 0;
-                                       while (pdpCount < pdp_default.size()) {
-                                               String pdpVal = pdp_default.get(pdpCount);
-                                               readPDPParam(pdpVal);
-                                               pdpCount++;
-                                       }
-                               } else {
-                                       readPDPParam(check_val);
-                               }
-                       }
-               }
-               if (pdpMap == null || pdpMap.isEmpty()) {
-                       logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Proceed without PDP_URLs");
-                       throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Cannot Proceed without PDP_URLs");
-               }
-       }
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    private static void readProps() throws PAPException {
+        InputStream in;
+        pdpProp = new Properties();
+        try {
+            in = new FileInputStream(pdpPath.toFile());
+            oldModified = pdpPath.toFile().lastModified();
+            pdpProp.load(in);
+        } catch (IOException e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Cannot load the Properties file");
+            throw new PAPException("Cannot Load the Properties file", e);
+        }
+        // Read the Properties and Load the PDPs and encoding.
+        pdpMap = new HashMap<>();
+        // Check the Keys for PDP_URLs
+        Collection<Object> unsorted = pdpProp.keySet();
+        List<String> sorted = new ArrayList(unsorted);
+        Collections.sort(sorted);
+        for (String propKey : sorted) {
+            if (propKey.startsWith("PDP_URL")) {
+                String check_val = pdpProp.getProperty(propKey);
+                if (check_val == null) {
+                    throw new PAPException("Properties file doesn't have the PDP_URL parameter");
+                }
+                if (check_val.contains(";")) {
+                    List<String> pdp_default = new ArrayList<>(Arrays.asList(check_val.split("\\s*;\\s*")));
+                    int pdpCount = 0;
+                    while (pdpCount < pdp_default.size()) {
+                        String pdpVal = pdp_default.get(pdpCount);
+                        readPDPParam(pdpVal);
+                        pdpCount++;
+                    }
+                } else {
+                    readPDPParam(check_val);
+                }
+            }
+        }
+        if (pdpMap == null || pdpMap.isEmpty()) {
+            logger.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Proceed without PDP_URLs");
+            throw new PAPException(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Cannot Proceed without PDP_URLs");
+        }
+    }
 
-       private static void readPDPParam(String pdpVal) throws PAPException{
-               if(pdpVal.contains(",")){
-                       List<String> pdpValues = new ArrayList<>(Arrays.asList(pdpVal.split("\\s*,\\s*")));
-                       if(pdpValues.size()==3){
-                               // 1:2 will be UserID:Password
-                               String userID = pdpValues.get(1);
-                               String pass = pdpValues.get(2);
-                               Base64.Encoder encoder = Base64.getEncoder();
-                               // 0 - PDPURL
-                               pdpMap.put(pdpValues.get(0), encoder.encodeToString((userID+":"+pass).getBytes(StandardCharsets.UTF_8)));
-                       }else{
-                               PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + "No Credentials to send Request");
-                               throw new PAPException(XACMLErrorConstants.ERROR_PERMISSIONS + "No enough Credentials to send Request. " + pdpValues);
-                       }
-               }else{
-                       PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + "No Credentials to send Request: " + pdpVal);
-                       throw new PAPException(XACMLErrorConstants.ERROR_PERMISSIONS +"No enough Credentials to send Request.");
-               }
-       }
-       
-       public static String getEncoding(String pdpID){
-               try {
-                       readFile();
-               } catch (Exception e) {
-                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exeption reading Properties file");
-               }
-               String encoding = null;
-               if(pdpMap!=null && (!pdpMap.isEmpty())){
-                       try{
-                               encoding = pdpMap.get(pdpID);
-                       } catch(Exception e){
-                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exception encoding");
-                       }
-                       return encoding;
-               }else{
-                       return null;
-               }
-       }
+    private static void readPDPParam(String pdpVal) throws PAPException{
+        if(pdpVal.contains(",")){
+            List<String> pdpValues = new ArrayList<>(Arrays.asList(pdpVal.split("\\s*,\\s*")));
+            if(pdpValues.size()==3){
+                // 1:2 will be UserID:Password
+                String userID = pdpValues.get(1);
+                String pass = pdpValues.get(2);
+                Base64.Encoder encoder = Base64.getEncoder();
+                // 0 - PDPURL
+                pdpMap.put(pdpValues.get(0), encoder.encodeToString((userID+":"+pass).getBytes(StandardCharsets.UTF_8)));
+            }else{
+                PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + "No Credentials to send Request");
+                throw new PAPException(XACMLErrorConstants.ERROR_PERMISSIONS + "No enough Credentials to send Request. " + pdpValues);
+            }
+        }else{
+            PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + "No Credentials to send Request: " + pdpVal);
+            throw new PAPException(XACMLErrorConstants.ERROR_PERMISSIONS +"No enough Credentials to send Request.");
+        }
+    }
+
+    public static String getEncoding(String pdpID){
+        try {
+            readFile();
+        } catch (Exception e) {
+            PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exeption reading Properties file");
+        }
+        String encoding = null;
+        if(pdpMap!=null && (!pdpMap.isEmpty())){
+            try{
+                encoding = pdpMap.get(pdpID);
+            } catch(Exception e){
+                PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CheckPDP", "Exception encoding");
+            }
+            return encoding;
+        }else{
+            return null;
+        }
+    }
 
 }
index c4b97f5..94cd9c7 100644 (file)
@@ -41,69 +41,69 @@ import org.apache.commons.logging.LogFactory;
 @WebFilter("/*")
 public class PAPAuthenticationFilter implements Filter {
 
-       private static final Log logger = LogFactory.getLog(PAPAuthenticationFilter.class);
-       public static final String AUTHENTICATION_HEADER = "Authorization";
-
-       @Override
-       public void doFilter(ServletRequest request, ServletResponse response,
-                       FilterChain filter) throws IOException, ServletException {
-               
-               
-               if (request instanceof HttpServletRequest) {
-                       HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-
-                       String authCredentials = null;
-                       String url = httpServletRequest.getRequestURI();
-                       
-                       logger.info("Request URI: " + url);
-                       
-                       //getting authentication credentials
-                       authCredentials = httpServletRequest.getHeader(AUTHENTICATION_HEADER);
-                       
-                       // Check Authentication credentials
-                       AuthenticationService authenticationService = new AuthenticationService();
-                       boolean authenticationStatus = authenticationService.authenticate(authCredentials);
-                       
-                       if (authenticationStatus) {
-                               //indicates the request comes from Traditional Admin Console or PolicyEngineAPI
-                               if ("/pap/".equals(url)){
-                                       logger.info("Request comes from Traditional Admin Console or PolicyEngineAPI");                                         
-                                       //forward request to the XACMLPAPServlet if authenticated
-                                       request.getRequestDispatcher("/pap/pap/").forward(request, response);
-                               }else if (url.startsWith("/pap/onap/") && response instanceof HttpServletResponse){
-                                       //indicates the request comes from the ONAP Portal onap-sdk-app
-                                       HttpServletResponse alteredResponse = ((HttpServletResponse)response);
-                                       addCorsHeader(alteredResponse);
-                                       logger.info("Request comes from Onap Portal");
-                                       //Spring dispatcher servlet is at the end of the filter chain at /pap/onap/ path
-                                       filter.doFilter(request, response);
-                               }
-                       } else {
-                               if (response instanceof HttpServletResponse) {
-                                       HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-                                       httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                               }
-                       }
-
-               }
-       }
-       
-       //method to add CorsHeaders for onap portal rest call
-       private void addCorsHeader(HttpServletResponse response) {
-               logger.info("Adding Cors Response Headers!!!");
-               response.addHeader("Access-Control-Allow-Origin", "*");
+    private static final Log logger    = LogFactory.getLog(PAPAuthenticationFilter.class);
+    public static final String AUTHENTICATION_HEADER = "Authorization";
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response,
+            FilterChain filter) throws IOException, ServletException {
+
+
+        if (request instanceof HttpServletRequest) {
+            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+
+            String authCredentials = null;
+            String url = httpServletRequest.getRequestURI();
+
+            logger.info("Request URI: " + url);
+
+            //getting authentication credentials
+            authCredentials = httpServletRequest.getHeader(AUTHENTICATION_HEADER);
+
+            // Check Authentication credentials
+            AuthenticationService authenticationService = new AuthenticationService();
+            boolean authenticationStatus = authenticationService.authenticate(authCredentials);
+
+            if (authenticationStatus) {
+                //indicates the request comes from Traditional Admin Console or PolicyEngineAPI
+                if ("/pap/".equals(url)){
+                    logger.info("Request comes from Traditional Admin Console or PolicyEngineAPI");
+                    //forward request to the XACMLPAPServlet if authenticated
+                    request.getRequestDispatcher("/pap/pap/").forward(request, response);
+                }else if (url.startsWith("/pap/onap/") && response instanceof HttpServletResponse){
+                    //indicates the request comes from the ONAP Portal onap-sdk-app
+                    HttpServletResponse alteredResponse = ((HttpServletResponse)response);
+                    addCorsHeader(alteredResponse);
+                    logger.info("Request comes from Onap Portal");
+                    //Spring dispatcher servlet is at the end of the filter chain at /pap/onap/ path
+                    filter.doFilter(request, response);
+                }
+            } else {
+                if (response instanceof HttpServletResponse) {
+                    HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+                    httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+                }
+            }
+
+        }
+    }
+
+    //method to add CorsHeaders for onap portal rest call
+    private void addCorsHeader(HttpServletResponse response) {
+        logger.info("Adding Cors Response Headers!!!");
+        response.addHeader("Access-Control-Allow-Origin", "*");
         response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, HEAD");
         response.addHeader("Access-Control-Allow-Headers", "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept");
         response.addHeader("Access-Control-Max-Age", "1728000");       
-       }
+    }
 
-       @Override
-       public void destroy() {
-               //Empty
-       }
+    @Override
+    public void destroy() {
+        //Empty
+    }
 
-       @Override
-       public void init(FilterConfig arg0) throws ServletException {
-               //Empty
-       }
+    @Override
+    public void init(FilterConfig arg0) throws ServletException {
+        //Empty
+    }
 }
index 049f721..5b4165f 100644 (file)
@@ -50,404 +50,404 @@ import org.onap.policy.jpa.BackUpMonitorEntity;
 
 public class DbAuditCompareEntriesTest {
 
-       private static Log logger = LogFactory.getLog(DbAuditCompareEntriesTest.class);
-       private DbDAO dbDAO;
-       private String persistenceUnit;
-       private Properties properties;
-       private String resourceName;
-       private String dbDriver;
-       private String dbUrl;
-       private String dbUser;
-       private String dbPwd;
-       private String siteName;
-       private String nodeType;
-       private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
-       private static final String DEFAULT_DB_USER = "sa";
-       private static final String DEFAULT_DB_PWD = "";
-       
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-
-               properties = new Properties();
-               properties.put(IntegrityAuditProperties.DB_DRIVER, DbAuditCompareEntriesTest.DEFAULT_DB_DRIVER);
-               properties.put(IntegrityAuditProperties.DB_URL, "jdbc:h2:file:./sql/xacmlTest");
-               properties.put(IntegrityAuditProperties.DB_USER, DbAuditCompareEntriesTest.DEFAULT_DB_USER);
-               properties.put(IntegrityAuditProperties.DB_PWD, DbAuditCompareEntriesTest.DEFAULT_DB_PWD);
-               properties.put(IntegrityAuditProperties.SITE_NAME, "SiteA");
-               properties.put(IntegrityAuditProperties.NODE_TYPE, "pap");
-
-               dbDriver = DbAuditCompareEntriesTest.DEFAULT_DB_DRIVER;
-               dbUrl = "jdbc:h2:file:./sql/xacmlTest";
-               dbUser = DbAuditCompareEntriesTest.DEFAULT_DB_USER;
-               dbPwd = DbAuditCompareEntriesTest.DEFAULT_DB_PWD;
-               siteName = "SiteA";
-               nodeType = "pap";
-               persistenceUnit = "testPapPU";
-               resourceName = "siteA.pap1";
-               
-               //Clean the iaTest DB table for IntegrityAuditEntity entries
-               cleanDb(persistenceUnit, properties);
-               
-               logger.info("setUp: Exiting");
-       }
-
-       @After
-       public void tearDown() throws Exception {
-               logger.info("tearDown: Entering");
-               //nothing to do
-               logger.info("tearDown: Exiting");
-       }
-       
-       public void cleanDb(String persistenceUnit, Properties properties){
-               logger.debug("cleanDb: enter");
-
-               EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
-               
-               EntityManager em = emf.createEntityManager();
-               // Start a transaction
-               EntityTransaction et = em.getTransaction();
-
-               et.begin();
-
-               // Clean up the DB
-               em.createQuery("Delete from IntegrityAuditEntity").executeUpdate();
-
-               // commit transaction
-               et.commit();
-               em.close();
-               logger.debug("cleanDb: exit");
-       }
-       
-
-       /*
-        * Tests that a comparison between hashsets is successful if
-        * the entries match
-        */
-       @Test
-       public void runAllTests() throws Exception {
-               logger.info("runAllTests: Entering");
-               
-               
-               testIntegrityAuditEntity();
-               testBackupMonitorEntity();
-               testStateManagementEntity();
-               testForwardProgressEntity();
-               testResourceRegistrationEntity();
-               
-               //clean up the IntegrityAuditEntity table
-               cleanDb(persistenceUnit, properties);
-               
-               logger.info("runAllTests: Exit");
-       }
-
-
-       public void testIntegrityAuditEntity() throws Exception {
-               logger.info("testIntegrityAuditEntity: Entering");
-               
-               dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
-               DbAudit dbAudit = new DbAudit(dbDAO);
-               
-               String className = null;
-               //There is only one entry IntegrityAuditEntity, but we will check anyway
-               Set<String> classNameSet = dbDAO.getPersistenceClassNames();
-               for(String c : classNameSet){
-                       if (c.equals("org.onap.policy.common.ia.jpa.IntegrityAuditEntity")){
-                               className = c;
-                       }
-               }
-               String resourceName1 = resourceName;
-               String resourceName2 = resourceName;
-               
-               IntegrityAuditEntity entry1 = new IntegrityAuditEntity();
-               IntegrityAuditEntity entry2 = new IntegrityAuditEntity();
-               Date date = new Date();
-               
-               /*
-                * Two entries with the same field values
-                */
-               entry1.setDesignated(false);
-               entry1.setJdbcDriver(dbDriver);
-               entry1.setJdbcPassword(dbPwd);
-               entry1.setJdbcUrl(dbUrl);
-               entry1.setJdbcUser(dbUser);
-               entry1.setLastUpdated(date);
-               entry1.setNodeType(nodeType);
-               entry1.setPersistenceUnit(persistenceUnit);
-               entry1.setResourceName(resourceName1);
-               entry1.setSite(siteName);
-               
-               entry2 = SerializationUtils.clone(entry1);
-               
-               dbAudit.writeAuditDebugLog(className, resourceName1, resourceName2, entry1, entry2);
-               
-               HashMap<Object, Object> myEntries = new HashMap<>();
-               HashMap<Object, Object> theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-                               
-               Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               /*
-                * Assert that there are no mismatches returned
-                */
-               assertTrue(result.isEmpty());
-               
-               /*
-                * ************************************
-                * Now test with a mis-matched entry
-                * ************************************
-                */
-               
-               /*
-                * Change the entry2 to different designated value
-                */
-               entry2.setDesignated(true);
-                               
-               myEntries = new HashMap<>();
-               theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-               
-               result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               /*
-                * Assert that there was one mismatch
-                */
-               assertEquals(1, result.size());
-               logger.info("testIntegrityAuditEntity: Exit");
-       }
-       
-       void testBackupMonitorEntity() throws Exception {
-               logger.info("testBackupMonitorEntity: Entering");
-               
-               dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
-               DbAudit dbAudit = new DbAudit(dbDAO);
-               
-               BackUpMonitorEntity entry1 = new BackUpMonitorEntity();
-               BackUpMonitorEntity entry2 = new BackUpMonitorEntity();
-               
-               // Two entries with the same field values
-                
-               
-               entry1.setFlag("flag1");
-               entry1.setResourceNodeName("node1");
-               entry1.setResourceName("resourceName");
-               entry1.setTimeStamp(new Date());
-               
-               // Clone the first entry
-               entry2 = SerializationUtils.clone(entry1);
-               
-               HashMap<Object, Object> myEntries = new HashMap<>();
-               HashMap<Object, Object> theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-                               
-               Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               // Assert that there are no mismatches returned
-                
-               assertTrue(result.isEmpty());
-               
-               
-                /* ************************************
-                * Now test with a mis-matched entry
-                * ************************************/
-                
-               
-               
-               // Change a field on entry2
-                
-               entry2.setFlag("flag2");
-                               
-               myEntries = new HashMap<>();
-               theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-               
-               result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               //Assert that there was one mismatch
-                
-               assertEquals(1, result.size());
-               logger.info("testBackupMonitorEntity: Exit");
-       }
-
-       void testStateManagementEntity() throws Exception {
-               logger.info("testStateManagementEntity: Entering");
-               
-               dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
-               DbAudit dbAudit = new DbAudit(dbDAO);
-               
-               StateManagementEntity entry1 = new StateManagementEntity();
-               StateManagementEntity entry2 = new StateManagementEntity();
-               
-               // Two entries with the same field values
-               
-               entry1.setAdminState("locked");
-               entry1.setAvailStatus("null");
-               entry1.setModifiedDate(new Date());
-               entry1.setOpState("enabled");
-               entry1.setResourceName("myResource");
-               entry1.setStandbyStatus("coldstandby");
-               
-               // Clone the first entry
-               entry2 = SerializationUtils.clone(entry1);
-               
-               HashMap<Object, Object> myEntries = new HashMap<>();
-               HashMap<Object, Object> theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-                               
-               Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               // Assert that there are no mismatches returned
-                
-               assertTrue(result.isEmpty());
-               
-               
-                /* ************************************
-                * Now test with a mis-matched entry
-                * ************************************/
-                
-               
-               
-               // Change a field on entry2
-                
-               entry2.setAdminState("unlocked");
-                               
-               myEntries = new HashMap<>();
-               theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-               
-               result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               //Assert that there was one mismatch
-                
-               assertEquals(1, result.size());
-               logger.info("testStateManagementEntity: Exit");
-       }
-       
-       void testForwardProgressEntity() throws Exception {
-               logger.info("testForwardProgressEntity: Entering");
-               
-               dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
-               DbAudit dbAudit = new DbAudit(dbDAO);
-               
-               ForwardProgressEntity entry1 = new ForwardProgressEntity();
-               ForwardProgressEntity entry2 = new ForwardProgressEntity();
-
-               // Two entries with the same field values
-               
-               entry1.setFpcCount(123L);
-               entry1.setLastUpdated(new Date());
-               entry1.setResourceName("myResource");
-               
-               // Clone the first entry
-               entry2 = SerializationUtils.clone(entry1);
-               
-               HashMap<Object, Object> myEntries = new HashMap<Object, Object>();
-               HashMap<Object, Object> theirEntries = new HashMap<Object, Object>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-                               
-               Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               // Assert that there are no mismatches returned
-                
-               assertTrue(result.isEmpty());
-               
-               
-                /* ************************************
-                * Now test with a mis-matched entry
-                * ************************************/
-               
-               // Change a field on entry2
-                
-               entry2.setFpcCount(321L);
-                               
-               myEntries = new HashMap<>();
-               theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-               
-               result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               //Assert that there was one mismatch
-                
-               assertEquals(1, result.size());
-               logger.info("testForwardProgressEntity: Exit");
-       }
-
-       void testResourceRegistrationEntity() throws Exception {
-               logger.info("testResourceRegistrationEntity: Entering");
-               
-               dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
-               DbAudit dbAudit = new DbAudit(dbDAO);
-               
-               ResourceRegistrationEntity entry1 = new ResourceRegistrationEntity();
-               ResourceRegistrationEntity entry2 = new ResourceRegistrationEntity();
-               
-               // Two entries with the same field values
-               
-               entry1.setNodeType("pap");
-               entry1.setLastUpdated(new Date());
-               entry1.setResourceName("myResource");
-               entry1.setResourceUrl("http://nowhere.com");
-               entry1.setSite("site_1");
-               
-               // Clone the first entry
-               entry2 = SerializationUtils.clone(entry1);
-               
-               HashMap<Object, Object> myEntries = new HashMap<>();
-               HashMap<Object, Object> theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-                               
-               Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               // Assert that there are no mismatches returned
-                
-               assertTrue(result.isEmpty());
-               
-               
-                /* ************************************
-                * Now test with a mis-matched entry
-                * ************************************/
-               
-               // Change a field on entry2
-                
-               entry2.setSite("site_1a");
-                               
-               myEntries = new HashMap<>();
-               theirEntries = new HashMap<>();
-               
-               myEntries.put("pdp1", entry1);
-               theirEntries.put("pdp1", entry2);
-               
-               result = dbAudit.compareEntries(myEntries, theirEntries);
-               
-               
-               //Assert that there was one mismatch
-                
-               assertEquals(1, result.size());
-               logger.info("testResourceRegistrationEntity: Exit");
-       }
+    private static Log logger = LogFactory.getLog(DbAuditCompareEntriesTest.class);
+    private DbDAO dbDAO;
+    private String persistenceUnit;
+    private Properties properties;
+    private String resourceName;
+    private String dbDriver;
+    private String dbUrl;
+    private String dbUser;
+    private String dbPwd;
+    private String siteName;
+    private String nodeType;
+    private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
+    private static final String DEFAULT_DB_USER = "sa";
+    private static final String DEFAULT_DB_PWD = "";
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+
+        properties = new Properties();
+        properties.put(IntegrityAuditProperties.DB_DRIVER, DbAuditCompareEntriesTest.DEFAULT_DB_DRIVER);
+        properties.put(IntegrityAuditProperties.DB_URL, "jdbc:h2:file:./sql/xacmlTest");
+        properties.put(IntegrityAuditProperties.DB_USER, DbAuditCompareEntriesTest.DEFAULT_DB_USER);
+        properties.put(IntegrityAuditProperties.DB_PWD, DbAuditCompareEntriesTest.DEFAULT_DB_PWD);
+        properties.put(IntegrityAuditProperties.SITE_NAME, "SiteA");
+        properties.put(IntegrityAuditProperties.NODE_TYPE, "pap");
+
+        dbDriver = DbAuditCompareEntriesTest.DEFAULT_DB_DRIVER;
+        dbUrl = "jdbc:h2:file:./sql/xacmlTest";
+        dbUser = DbAuditCompareEntriesTest.DEFAULT_DB_USER;
+        dbPwd = DbAuditCompareEntriesTest.DEFAULT_DB_PWD;
+        siteName = "SiteA";
+        nodeType = "pap";
+        persistenceUnit = "testPapPU";
+        resourceName = "siteA.pap1";
+
+        //Clean the iaTest DB table for IntegrityAuditEntity entries
+        cleanDb(persistenceUnit, properties);
+
+        logger.info("setUp: Exiting");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        logger.info("tearDown: Entering");
+        //nothing to do
+        logger.info("tearDown: Exiting");
+    }
+
+    public void cleanDb(String persistenceUnit, Properties properties){
+        logger.debug("cleanDb: enter");
+
+        EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
+
+        EntityManager em = emf.createEntityManager();
+        // Start a transaction
+        EntityTransaction et = em.getTransaction();
+
+        et.begin();
+
+        // Clean up the DB
+        em.createQuery("Delete from IntegrityAuditEntity").executeUpdate();
+
+        // commit transaction
+        et.commit();
+        em.close();
+        logger.debug("cleanDb: exit");
+    }
+
+
+    /*
+     * Tests that a comparison between hashsets is successful if
+     * the entries match
+     */
+    @Test
+    public void runAllTests() throws Exception {
+        logger.info("runAllTests: Entering");
+
+
+        testIntegrityAuditEntity();
+        testBackupMonitorEntity();
+        testStateManagementEntity();
+        testForwardProgressEntity();
+        testResourceRegistrationEntity();
+
+        //clean up the IntegrityAuditEntity table
+        cleanDb(persistenceUnit, properties);
+
+        logger.info("runAllTests: Exit");
+    }
+
+
+    public void testIntegrityAuditEntity() throws Exception {
+        logger.info("testIntegrityAuditEntity: Entering");
+
+        dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
+        DbAudit dbAudit = new DbAudit(dbDAO);
+
+        String className = null;
+        //There is only one entry IntegrityAuditEntity, but we will check anyway
+        Set<String> classNameSet = dbDAO.getPersistenceClassNames();
+        for(String c : classNameSet){
+            if (c.equals("org.onap.policy.common.ia.jpa.IntegrityAuditEntity")){
+                className = c;
+            }
+        }
+        String resourceName1 = resourceName;
+        String resourceName2 = resourceName;
+
+        IntegrityAuditEntity entry1 = new IntegrityAuditEntity();
+        IntegrityAuditEntity entry2 = new IntegrityAuditEntity();
+        Date date = new Date();
+
+        /*
+         * Two entries with the same field values
+         */
+        entry1.setDesignated(false);
+        entry1.setJdbcDriver(dbDriver);
+        entry1.setJdbcPassword(dbPwd);
+        entry1.setJdbcUrl(dbUrl);
+        entry1.setJdbcUser(dbUser);
+        entry1.setLastUpdated(date);
+        entry1.setNodeType(nodeType);
+        entry1.setPersistenceUnit(persistenceUnit);
+        entry1.setResourceName(resourceName1);
+        entry1.setSite(siteName);
+
+        entry2 = SerializationUtils.clone(entry1);
+
+        dbAudit.writeAuditDebugLog(className, resourceName1, resourceName2, entry1, entry2);
+
+        HashMap<Object, Object> myEntries = new HashMap<>();
+        HashMap<Object, Object> theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
+
+        /*
+         * Assert that there are no mismatches returned
+         */
+        assertTrue(result.isEmpty());
+
+        /*
+         * ************************************
+         * Now test with a mis-matched entry
+         * ************************************
+         */
+
+        /*
+         * Change the entry2 to different designated value
+         */
+        entry2.setDesignated(true);
+
+        myEntries = new HashMap<>();
+        theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        result = dbAudit.compareEntries(myEntries, theirEntries);
+
+        /*
+         * Assert that there was one mismatch
+         */
+        assertEquals(1, result.size());
+        logger.info("testIntegrityAuditEntity: Exit");
+    }
+
+    void testBackupMonitorEntity() throws Exception {
+        logger.info("testBackupMonitorEntity: Entering");
+
+        dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
+        DbAudit dbAudit = new DbAudit(dbDAO);
+
+        BackUpMonitorEntity entry1 = new BackUpMonitorEntity();
+        BackUpMonitorEntity entry2 = new BackUpMonitorEntity();
+
+        // Two entries with the same field values
+
+
+        entry1.setFlag("flag1");
+        entry1.setResourceNodeName("node1");
+        entry1.setResourceName("resourceName");
+        entry1.setTimeStamp(new Date());
+
+        // Clone the first entry
+        entry2 = SerializationUtils.clone(entry1);
+
+        HashMap<Object, Object> myEntries = new HashMap<>();
+        HashMap<Object, Object> theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        // Assert that there are no mismatches returned
+
+        assertTrue(result.isEmpty());
+
+
+         /* ************************************
+         * Now test with a mis-matched entry
+         * ************************************/
+
+
+
+        // Change a field on entry2
+
+        entry2.setFlag("flag2");
+
+        myEntries = new HashMap<>();
+        theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        //Assert that there was one mismatch
+
+        assertEquals(1, result.size());
+        logger.info("testBackupMonitorEntity: Exit");
+    }
+
+    void testStateManagementEntity() throws Exception {
+        logger.info("testStateManagementEntity: Entering");
+
+        dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
+        DbAudit dbAudit = new DbAudit(dbDAO);
+
+        StateManagementEntity entry1 = new StateManagementEntity();
+        StateManagementEntity entry2 = new StateManagementEntity();
+
+        // Two entries with the same field values
+
+        entry1.setAdminState("locked");
+        entry1.setAvailStatus("null");
+        entry1.setModifiedDate(new Date());
+        entry1.setOpState("enabled");
+        entry1.setResourceName("myResource");
+        entry1.setStandbyStatus("coldstandby");
+
+        // Clone the first entry
+        entry2 = SerializationUtils.clone(entry1);
+
+        HashMap<Object, Object> myEntries = new HashMap<>();
+        HashMap<Object, Object> theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        // Assert that there are no mismatches returned
+
+        assertTrue(result.isEmpty());
+
+
+         /* ************************************
+         * Now test with a mis-matched entry
+         * ************************************/
+
+
+
+        // Change a field on entry2
+
+        entry2.setAdminState("unlocked");
+
+        myEntries = new HashMap<>();
+        theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        //Assert that there was one mismatch
+
+        assertEquals(1, result.size());
+        logger.info("testStateManagementEntity: Exit");
+    }
+
+    void testForwardProgressEntity() throws Exception {
+        logger.info("testForwardProgressEntity: Entering");
+
+        dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
+        DbAudit dbAudit = new DbAudit(dbDAO);
+
+        ForwardProgressEntity entry1 = new ForwardProgressEntity();
+        ForwardProgressEntity entry2 = new ForwardProgressEntity();
+
+        // Two entries with the same field values
+
+        entry1.setFpcCount(123L);
+        entry1.setLastUpdated(new Date());
+        entry1.setResourceName("myResource");
+
+        // Clone the first entry
+        entry2 = SerializationUtils.clone(entry1);
+
+        HashMap<Object, Object> myEntries = new HashMap<Object, Object>();
+        HashMap<Object, Object> theirEntries = new HashMap<Object, Object>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        // Assert that there are no mismatches returned
+
+        assertTrue(result.isEmpty());
+
+
+         /* ************************************
+         * Now test with a mis-matched entry
+         * ************************************/
+
+        // Change a field on entry2
+
+        entry2.setFpcCount(321L);
+
+        myEntries = new HashMap<>();
+        theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        //Assert that there was one mismatch
+
+        assertEquals(1, result.size());
+        logger.info("testForwardProgressEntity: Exit");
+    }
+
+    void testResourceRegistrationEntity() throws Exception {
+        logger.info("testResourceRegistrationEntity: Entering");
+
+        dbDAO = new DbDAO(resourceName, persistenceUnit, properties);
+        DbAudit dbAudit = new DbAudit(dbDAO);
+
+        ResourceRegistrationEntity entry1 = new ResourceRegistrationEntity();
+        ResourceRegistrationEntity entry2 = new ResourceRegistrationEntity();
+
+        // Two entries with the same field values
+
+        entry1.setNodeType("pap");
+        entry1.setLastUpdated(new Date());
+        entry1.setResourceName("myResource");
+        entry1.setResourceUrl("http://nowhere.com");
+        entry1.setSite("site_1");
+
+        // Clone the first entry
+        entry2 = SerializationUtils.clone(entry1);
+
+        HashMap<Object, Object> myEntries = new HashMap<>();
+        HashMap<Object, Object> theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        // Assert that there are no mismatches returned
+
+        assertTrue(result.isEmpty());
+
+
+         /* ************************************
+         * Now test with a mis-matched entry
+         * ************************************/
+
+        // Change a field on entry2
+
+        entry2.setSite("site_1a");
+
+        myEntries = new HashMap<>();
+        theirEntries = new HashMap<>();
+
+        myEntries.put("pdp1", entry1);
+        theirEntries.put("pdp1", entry2);
+
+        result = dbAudit.compareEntries(myEntries, theirEntries);
+
+
+        //Assert that there was one mismatch
+
+        assertEquals(1, result.size());
+        logger.info("testResourceRegistrationEntity: Exit");
+    }
 }
\ No newline at end of file
index f9ed0ac..5a8e20b 100644 (file)
@@ -51,66 +51,66 @@ import org.springframework.mock.web.MockHttpServletResponse;
 @RunWith(PowerMockRunner.class)
 public class UpdateOthersPAPSTest {
 
-       private static Logger logger = FlexLogger.getLogger(UpdateOthersPAPSTest.class);
-       private static CommonClassDao commonClassDao;
-       private HttpServletRequest request;
-       private MockHttpServletResponse response;
-       
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
+    private static Logger logger = FlexLogger.getLogger(UpdateOthersPAPSTest.class);
+    private static CommonClassDao commonClassDao;
+    private HttpServletRequest request;
+    private MockHttpServletResponse response;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
         commonClassDao = mock(CommonClassDao.class);
         
         request = mock(HttpServletRequest.class);       
-               response =  new MockHttpServletResponse();
-               List<Object> data = new ArrayList<>();
-               PolicyDBDaoEntity entity = new PolicyDBDaoEntity();
-               entity.setPolicyDBDaoUrl("http://localhost:8070/pap");
-               entity.setUsername("test");
-               entity.setPassword("test");
-               
-               PolicyDBDaoEntity entity1 = new PolicyDBDaoEntity();
-               entity1.setPolicyDBDaoUrl("http://localhost:8071/pap");
-               entity1.setUsername("test");
-               entity1.setPassword("test");
-               
-               data.add(entity);
-               data.add(entity1);
-               System.setProperty("xacml.rest.pap.url","http://localhost:8070/pap");
-               when(commonClassDao.getData(PolicyDBDaoEntity.class)).thenReturn(data);
-       }
-       
-       @Test
-       public void testNotifyOthersPAPsToUpdateConfigurations(){
-               UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS();
-               UpdateOthersPAPS.setCommonClassDao(commonClassDao);
-               when(request.getParameter("action")).thenReturn("rename");
-               when(request.getParameter("newPolicyName")).thenReturn("com.Config_newTest.1.json");
-               when(request.getParameter("oldPolicyName")).thenReturn("com.Config_Test.1.json");
-               updateOtherPaps.notifyOthersPAPsToUpdateConfigurations(request, response);
-               try {
-                       JSONObject responseString = new JSONObject(response.getContentAsString());
-                       assertTrue(responseString.get("data").toString().contains("http://localhost:8071/pap")); 
-               } catch (Exception e) {
-                       fail();
-               }
-       }
-       
-       @PrepareForTest({Policy.class})
-       @Test
-       public void testUpdateConfiguration() throws Exception{
-               UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS();
-               UpdateObjectData data = new UpdateObjectData();
-               PowerMockito.mockStatic(Policy.class);
-               data.setNewPolicyName("com.Config_newTest.1.json");
-               data.setOldPolicyName("com.Config_Test.1.json");
-               data.setAction("rename");
-               when(Policy.getConfigHome()).thenReturn("test");
-               when(Policy.getActionHome()).thenReturn("test");
-               File mockedFile = Mockito.mock(File.class);
-               Mockito.when(mockedFile.exists()).thenReturn(true);
-               PowerMockito.whenNew(File.class).withParameterTypes(String.class).withArguments(Matchers.anyString()).thenReturn(mockedFile);
-               updateOtherPaps.updateConfiguration(data, response);
-               assertTrue(response.getStatus() == 200);
-       }
+        response =  new MockHttpServletResponse();
+        List<Object> data = new ArrayList<>();
+        PolicyDBDaoEntity entity = new PolicyDBDaoEntity();
+        entity.setPolicyDBDaoUrl("http://localhost:8070/pap");
+        entity.setUsername("test");
+        entity.setPassword("test");
+
+        PolicyDBDaoEntity entity1 = new PolicyDBDaoEntity();
+        entity1.setPolicyDBDaoUrl("http://localhost:8071/pap");
+        entity1.setUsername("test");
+        entity1.setPassword("test");
+
+        data.add(entity);
+        data.add(entity1);
+        System.setProperty("xacml.rest.pap.url","http://localhost:8070/pap");
+        when(commonClassDao.getData(PolicyDBDaoEntity.class)).thenReturn(data);
+    }
+
+    @Test
+    public void testNotifyOthersPAPsToUpdateConfigurations(){
+        UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS();
+        UpdateOthersPAPS.setCommonClassDao(commonClassDao);
+        when(request.getParameter("action")).thenReturn("rename");
+        when(request.getParameter("newPolicyName")).thenReturn("com.Config_newTest.1.json");
+        when(request.getParameter("oldPolicyName")).thenReturn("com.Config_Test.1.json");
+        updateOtherPaps.notifyOthersPAPsToUpdateConfigurations(request, response);
+        try {
+            JSONObject responseString = new JSONObject(response.getContentAsString());
+            assertTrue(responseString.get("data").toString().contains("http://localhost:8071/pap"));
+        } catch (Exception e) {
+            fail();
+        }
+    }
+
+    @PrepareForTest({Policy.class})
+    @Test
+    public void testUpdateConfiguration() throws Exception{
+        UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS();
+        UpdateObjectData data = new UpdateObjectData();
+        PowerMockito.mockStatic(Policy.class);
+        data.setNewPolicyName("com.Config_newTest.1.json");
+        data.setOldPolicyName("com.Config_Test.1.json");
+        data.setAction("rename");
+        when(Policy.getConfigHome()).thenReturn("test");
+        when(Policy.getActionHome()).thenReturn("test");
+        File mockedFile = Mockito.mock(File.class);
+        Mockito.when(mockedFile.exists()).thenReturn(true);
+        PowerMockito.whenNew(File.class).withParameterTypes(String.class).withArguments(Matchers.anyString()).thenReturn(mockedFile);
+        updateOtherPaps.updateConfiguration(data, response);
+        assertTrue(response.getStatus() == 200);
+    }
 }
index 5208ad7..7172662 100644 (file)
@@ -81,7 +81,7 @@ import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
 import com.mockrunner.mock.web.MockServletInputStream;
 
 public class XACMLPAPTest {
-       private static final Log logger = LogFactory.getLog(XACMLPAPTest.class);
+    private static final Log logger = LogFactory.getLog(XACMLPAPTest.class);
 
     private static final String ENVIRONMENT_HEADER = "Environment";
     private List<String> headers = new ArrayList<>();
@@ -93,47 +93,47 @@ public class XACMLPAPTest {
     private SessionFactory sessionFactory;
     private CommonClassDao commonClassDao;
 
-       private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
-       private static final String DEFAULT_DB_USER = "sa";
-       private static final String DEFAULT_DB_PWD = "";
+    private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
+    private static final String DEFAULT_DB_USER = "sa";
+    private static final String DEFAULT_DB_PWD = "";
 
-       @Before
-       public void setUpDB() throws Exception {
-               logger.info("setUpDB: Entering");
+    @Before
+    public void setUpDB() throws Exception {
+        logger.info("setUpDB: Entering");
 
-               Properties properties = new Properties();
-               properties.put(IntegrityAuditProperties.DB_DRIVER, XACMLPAPTest.DEFAULT_DB_DRIVER);
-               properties.put(IntegrityAuditProperties.DB_URL, "jdbc:h2:file:./sql/xacmlTest");
-               properties.put(IntegrityAuditProperties.DB_USER, XACMLPAPTest.DEFAULT_DB_USER);
-               properties.put(IntegrityAuditProperties.DB_PWD, XACMLPAPTest.DEFAULT_DB_PWD);
-               properties.put(IntegrityAuditProperties.SITE_NAME, "SiteA");
-               properties.put(IntegrityAuditProperties.NODE_TYPE, "pap");
+        Properties properties = new Properties();
+        properties.put(IntegrityAuditProperties.DB_DRIVER, XACMLPAPTest.DEFAULT_DB_DRIVER);
+        properties.put(IntegrityAuditProperties.DB_URL, "jdbc:h2:file:./sql/xacmlTest");
+        properties.put(IntegrityAuditProperties.DB_USER, XACMLPAPTest.DEFAULT_DB_USER);
+        properties.put(IntegrityAuditProperties.DB_PWD, XACMLPAPTest.DEFAULT_DB_PWD);
+        properties.put(IntegrityAuditProperties.SITE_NAME, "SiteA");
+        properties.put(IntegrityAuditProperties.NODE_TYPE, "pap");
 
-               //Clean the iaTest DB table for IntegrityAuditEntity entries
-               cleanDb("testPapPU", properties);
+        //Clean the iaTest DB table for IntegrityAuditEntity entries
+        cleanDb("testPapPU", properties);
 
-               logger.info("setUpDB: Exiting");
-       }
+        logger.info("setUpDB: Exiting");
+    }
 
-       public void cleanDb(String persistenceUnit, Properties properties){
-               logger.debug("cleanDb: enter");
+    public void cleanDb(String persistenceUnit, Properties properties){
+        logger.debug("cleanDb: enter");
 
-               EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
+        EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
 
-               EntityManager em = emf.createEntityManager();
-               // Start a transaction
-               EntityTransaction et = em.getTransaction();
+        EntityManager em = emf.createEntityManager();
+        // Start a transaction
+        EntityTransaction et = em.getTransaction();
 
-               et.begin();
+        et.begin();
 
-               // Clean up the DB
-               em.createQuery("Delete from IntegrityAuditEntity").executeUpdate();
+        // Clean up the DB
+        em.createQuery("Delete from IntegrityAuditEntity").executeUpdate();
 
-               // commit transaction
-               et.commit();
-               em.close();
-               logger.debug("cleanDb: exit");
-       }
+        // commit transaction
+        et.commit();
+        em.close();
+        logger.debug("cleanDb: exit");
+    }
 
     @Before
     public void setUp() throws ServletException {
@@ -584,166 +584,166 @@ public class XACMLPAPTest {
     
     @Test
     public void testCommonCreateDictionary() throws IOException, SQLException, ServletException {
-       new DictionaryController(commonClassDao);
-       new ActionPolicyDictionaryController(commonClassDao);
-       new SafePolicyController(commonClassDao);
-       new DescriptiveDictionaryController(commonClassDao);
-       List<Object> object = new ArrayList<>();
+        new DictionaryController(commonClassDao);
+        new ActionPolicyDictionaryController(commonClassDao);
+        new SafePolicyController(commonClassDao);
+        new DescriptiveDictionaryController(commonClassDao);
+        List<Object> object = new ArrayList<>();
         object.add(new Category());
         when(commonClassDao.getDataById(Category.class, "shortName", "resource")).thenReturn(object);
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       String json = "{\"dictionaryFields\": {\"onapName\": \"testMMRestAPI1\",\"description\": \"testing update response message\"}}";
-       dictionaryTestSetup(false, "OnapName", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\": {\"xacmlId\": \"testMMRestAPI1\",\"datatypeBean\": {\"shortName\": \"string\"}, \"description\": \"testing update\",\"priority\": \"High\",\"userDataTypeValues\": [{\"attributeValues\": \"testAttr\"}, {\"attributeValues\": \"testAttr2\"}, {\"attributeValues\": \"testAttr3\"}]}}";
-       dictionaryTestSetup(false, "Attribute", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"attributeName\":\"TestMMrestAPI1\",\"type\":\"REST\",\"url\":\"testsomeurl.com\",\"method\":\"GET\",\"description\":\"test create\",\"body\":\"Testing Create\",\"headers\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
-       dictionaryTestSetup(false, "Action", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"scopeName\":\"testMMRestAPI1\",\"description\":\"test\",\"attributes\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
-       dictionaryTestSetup(false, "DescriptiveScope", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"riskName\":\"testMMrestAPI1\",\"description\":\"test\"}}";
-       dictionaryTestSetup(false, "RiskType", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"message\":\"test\",\"riskType\":\"testMMrestAPI1\"}}";
-       dictionaryTestSetup(false, "SafePolicyWarning", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        String json = "{\"dictionaryFields\": {\"onapName\": \"testMMRestAPI1\",\"description\": \"testing update response message\"}}";
+        dictionaryTestSetup(false, "OnapName", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\": {\"xacmlId\": \"testMMRestAPI1\",\"datatypeBean\": {\"shortName\": \"string\"}, \"description\": \"testing update\",\"priority\": \"High\",\"userDataTypeValues\": [{\"attributeValues\": \"testAttr\"}, {\"attributeValues\": \"testAttr2\"}, {\"attributeValues\": \"testAttr3\"}]}}";
+        dictionaryTestSetup(false, "Attribute", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"attributeName\":\"TestMMrestAPI1\",\"type\":\"REST\",\"url\":\"testsomeurl.com\",\"method\":\"GET\",\"description\":\"test create\",\"body\":\"Testing Create\",\"headers\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
+        dictionaryTestSetup(false, "Action", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"scopeName\":\"testMMRestAPI1\",\"description\":\"test\",\"attributes\":[{\"option\":\"test1\",\"number\":\"test\"},{\"option\":\"test2\",\"number\":\"test\"}]}}";
+        dictionaryTestSetup(false, "DescriptiveScope", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"riskName\":\"testMMrestAPI1\",\"description\":\"test\"}}";
+        dictionaryTestSetup(false, "RiskType", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"message\":\"test\",\"riskType\":\"testMMrestAPI1\"}}";
+        dictionaryTestSetup(false, "SafePolicyWarning", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
     }
     
     @Test
     public void testDecisionCreateDictionary() throws IOException, SQLException, ServletException {
-       new DecisionPolicyDictionaryController(commonClassDao);
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       String json = "{\"dictionaryFields\":{\"xacmlId\":\"testMMRestAPI1\",\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"test\",\"priority\":\"High\"}}";
-       dictionaryTestSetup(false, "Settings", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"bbid\":\"BB1\",\"workstep\":\"1\",\"treatments\":\"Manual Handling,Abort,Retry\"}}";
-       dictionaryTestSetup(false, "RainyDayTreatments", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+        new DecisionPolicyDictionaryController(commonClassDao);
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        String json = "{\"dictionaryFields\":{\"xacmlId\":\"testMMRestAPI1\",\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"test\",\"priority\":\"High\"}}";
+        dictionaryTestSetup(false, "Settings", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"bbid\":\"BB1\",\"workstep\":\"1\",\"treatments\":\"Manual Handling,Abort,Retry\"}}";
+        dictionaryTestSetup(false, "RainyDayTreatments", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
     }
     
     @Test
     public void testMSCreateDictionary() throws IOException, SQLException, ServletException {
-       new MicroServiceDictionaryController(commonClassDao);
-       new PolicyScopeDictionaryController(commonClassDao);
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       String json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
-       dictionaryTestSetup(false, "MicroServiceLocation", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
-       dictionaryTestSetup(false, "MicroServiceConfigName", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"description\":\"test\"}}";
-       dictionaryTestSetup(false, "DCAEUUID", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
-       dictionaryTestSetup(false, "PolicyScopeService", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
-       dictionaryTestSetup(false, "PolicyScopeResource", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
-       dictionaryTestSetup(false, "PolicyScopeType", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
-       dictionaryTestSetup(false, "PolicyScopeClosedLoop", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
-       
-       httpServletRequest = Mockito.mock(HttpServletRequest.class);
-       httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
-       json = "{\"dictionaryFields\":{\"groupName\":\"testMMrestAPI1\",\"description\":\"testing\"},\"groupPolicyScopeListData1\":{\"resource\":\"ANY\",\"type\":\"ANY\",\"service\":\"ANY\",\"closedloop\":\"ANY\"}}";
-       dictionaryTestSetup(false, "GroupPolicyScopeList", json);
-       // send Request to PAP
-       pap.service(httpServletRequest, httpServletResponse);
-       // Verify 
-       Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+        new MicroServiceDictionaryController(commonClassDao);
+        new PolicyScopeDictionaryController(commonClassDao);
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        String json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
+        dictionaryTestSetup(false, "MicroServiceLocation", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"descriptionValue\":\"test\"}}";
+        dictionaryTestSetup(false, "MicroServiceConfigName", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testMMrestAPI1\",\"description\":\"test\"}}";
+        dictionaryTestSetup(false, "DCAEUUID", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+        dictionaryTestSetup(false, "PolicyScopeService", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+        dictionaryTestSetup(false, "PolicyScopeResource", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+        dictionaryTestSetup(false, "PolicyScopeType", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"name\":\"testApiANY\",\"descriptionValue\":\"default test\"}}";
+        dictionaryTestSetup(false, "PolicyScopeClosedLoop", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
+
+        httpServletRequest = Mockito.mock(HttpServletRequest.class);
+        httpServletResponse = Mockito.mock(MockHttpServletResponse.class);
+        json = "{\"dictionaryFields\":{\"groupName\":\"testMMrestAPI1\",\"description\":\"testing\"},\"groupPolicyScopeListData1\":{\"resource\":\"ANY\",\"type\":\"ANY\",\"service\":\"ANY\",\"closedloop\":\"ANY\"}}";
+        dictionaryTestSetup(false, "GroupPolicyScopeList", json);
+        // send Request to PAP
+        pap.service(httpServletRequest, httpServletResponse);
+        // Verify
+        Mockito.verify(httpServletResponse).setStatus(HttpServletResponse.SC_OK);
     }
     
     private void dictionaryTestSetup(Boolean updateFlag, String dictionaryType, String json) throws IOException, SQLException {
@@ -790,23 +790,23 @@ public class XACMLPAPTest {
 
     @Test
     public void getDictionary() throws ServletException, IOException{
-       String[] dictionarys = new String[]{"Attribute", "OnapName", "Action", "BRMSParamTemplate","VSCLAction"
-                       ,"VNFType","PEPOptions","Varbind","Service","Site", "Settings", "RainyDayTreatments",
-                       "DescriptiveScope", "ActionList", "ProtocolList", "Zone", "SecurityZone",
-                       "PrefixList", "AddressGroup", "ServiceGroup", "ServiceList", "TermList",
-                       "MicroServiceLocation", "MicroServiceConfigName", "DCAEUUID", "MicroServiceModels",
-                       "PolicyScopeService", "PolicyScopeResource", "PolicyScopeType", "PolicyScopeClosedLoop",
-                       "GroupPolicyScopeList", "RiskType", "SafePolicyWarning", "MicroServiceDictionary"};
-       for(String dictionary : dictionarys){
-               httpServletRequest = Mockito.mock(HttpServletRequest.class);
-               httpServletResponse = new MockHttpServletResponse();
-               Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn("DEVL");
-               Mockito.when(httpServletRequest.getMethod()).thenReturn("GET");
-               Mockito.when(httpServletRequest.getParameter("apiflag")).thenReturn("api");
-               Mockito.when(httpServletRequest.getParameter("dictionaryType")).thenReturn(dictionary);
-               pap.service(httpServletRequest, httpServletResponse);
-               assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus());
-       }
+        String[] dictionarys = new String[]{"Attribute", "OnapName", "Action", "BRMSParamTemplate","VSCLAction"
+                ,"VNFType","PEPOptions","Varbind","Service","Site", "Settings", "RainyDayTreatments",
+                "DescriptiveScope", "ActionList", "ProtocolList", "Zone", "SecurityZone",
+                "PrefixList", "AddressGroup", "ServiceGroup", "ServiceList", "TermList",
+                "MicroServiceLocation", "MicroServiceConfigName", "DCAEUUID", "MicroServiceModels",
+                "PolicyScopeService", "PolicyScopeResource", "PolicyScopeType", "PolicyScopeClosedLoop",
+                "GroupPolicyScopeList", "RiskType", "SafePolicyWarning", "MicroServiceDictionary"};
+        for(String dictionary : dictionarys){
+            httpServletRequest = Mockito.mock(HttpServletRequest.class);
+            httpServletResponse = new MockHttpServletResponse();
+            Mockito.when(httpServletRequest.getHeader(ENVIRONMENT_HEADER)).thenReturn("DEVL");
+            Mockito.when(httpServletRequest.getMethod()).thenReturn("GET");
+            Mockito.when(httpServletRequest.getParameter("apiflag")).thenReturn("api");
+            Mockito.when(httpServletRequest.getParameter("dictionaryType")).thenReturn(dictionary);
+            pap.service(httpServletRequest, httpServletResponse);
+            assertTrue(HttpServletResponse.SC_OK == httpServletResponse.getStatus());
+        }
     }
     
     @Test
index b57c187..dfadf8e 100644 (file)
@@ -28,46 +28,46 @@ import org.onap.policy.pap.xacml.rest.PAPRestConfig;
 import org.springframework.orm.hibernate4.HibernateTransactionManager;
 
 public class PAPRestConfigTest {
-       @Test
-       public void testSetAndGet() {
-               String testVal = "testVal";
-                               
-               PAPRestConfig.setDbDriver(testVal);
-               assertEquals(PAPRestConfig.getDbDriver(), testVal);
-               PAPRestConfig.setDbUrl(testVal);
-               assertEquals(PAPRestConfig.getDbUrl(), testVal);
-               PAPRestConfig.setDbUserName(testVal);
-               assertEquals(PAPRestConfig.getDbUserName(), testVal);
-               PAPRestConfig.setDbPassword(testVal);
-               assertEquals(PAPRestConfig.getDbPassword(), testVal);
-       }
-       
-       @Test
-       public void testInit() {
-               String driver = "org.mariadb.jdbc.Driver";
-               String url = "jdbc:mariadb://localhost:3306/onap_sdk?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30";
-               String user = "policy_user";
-               String password = "policy_user";
-               
-               PAPRestConfig config = new PAPRestConfig();
-               config.init();
-               
-               assertEquals(PAPRestConfig.getDbDriver(), driver);
-               assertEquals(PAPRestConfig.getDbUrl(), url);
-               assertEquals(PAPRestConfig.getDbUserName(), user);
-               assertEquals(PAPRestConfig.getDbPassword(), password);
-               
-               // Test hibernate
-               BasicDataSource source = (BasicDataSource)config.getDataSource();
-           assertEquals(source.getDriverClassName(), driver);
-           assertEquals(source.getUrl(), url);
-           assertEquals(source.getUsername(), user);
-           assertEquals(source.getPassword(), password);
-           
-           SessionFactory factory = config.getSessionFactory(source);
-           assertEquals(factory.isClosed(), false);
-           
-           HibernateTransactionManager manager = config.getTransactionManager(factory);
-           assertEquals(manager.getSessionFactory(), factory);
-       }
+    @Test
+    public void testSetAndGet() {
+        String testVal = "testVal";
+
+        PAPRestConfig.setDbDriver(testVal);
+        assertEquals(PAPRestConfig.getDbDriver(), testVal);
+        PAPRestConfig.setDbUrl(testVal);
+        assertEquals(PAPRestConfig.getDbUrl(), testVal);
+        PAPRestConfig.setDbUserName(testVal);
+        assertEquals(PAPRestConfig.getDbUserName(), testVal);
+        PAPRestConfig.setDbPassword(testVal);
+        assertEquals(PAPRestConfig.getDbPassword(), testVal);
+    }
+
+    @Test
+    public void testInit() {
+        String driver = "org.mariadb.jdbc.Driver";
+        String url = "jdbc:mariadb://localhost:3306/onap_sdk?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30";
+        String user = "policy_user";
+        String password = "policy_user";
+
+        PAPRestConfig config = new PAPRestConfig();
+        config.init();
+
+        assertEquals(PAPRestConfig.getDbDriver(), driver);
+        assertEquals(PAPRestConfig.getDbUrl(), url);
+        assertEquals(PAPRestConfig.getDbUserName(), user);
+        assertEquals(PAPRestConfig.getDbPassword(), password);
+
+        // Test hibernate
+        BasicDataSource source = (BasicDataSource)config.getDataSource();
+        assertEquals(source.getDriverClassName(), driver);
+        assertEquals(source.getUrl(), url);
+        assertEquals(source.getUsername(), user);
+        assertEquals(source.getPassword(), password);
+
+        SessionFactory factory = config.getSessionFactory(source);
+        assertEquals(factory.isClosed(), false);
+
+        HibernateTransactionManager manager = config.getTransactionManager(factory);
+        assertEquals(manager.getSessionFactory(), factory);
+    }
 }
index 15bdf89..32d7ded 100644 (file)
@@ -27,11 +27,11 @@ import org.junit.Test;
 import org.mockito.Mockito;
 
 public class WebConfigTest {
-       @Test(expected=NullPointerException.class)
-       public void testNegativeStartup() throws ServletException {
-               WebConfig init = new WebConfig();
-               ServletContext container = Mockito.mock(ServletContext.class);
-               init.onStartup(container);
-               fail("Expecting an exception.");
-       }
+    @Test(expected=NullPointerException.class)
+    public void testNegativeStartup() throws ServletException {
+        WebConfig init = new WebConfig();
+        ServletContext container = Mockito.mock(ServletContext.class);
+        init.onStartup(container);
+        fail("Expecting an exception.");
+    }
 }
index 3630889..36d4027 100644 (file)
@@ -26,44 +26,44 @@ import org.junit.Test;
 import org.onap.policy.pap.xacml.rest.XACMLPapServlet;
 
 public class XACMLPapServletTest {
-       @Test
-       public void testSetAndGet() {
-               String systemKey = "xacml.properties";
-               String testVal = "testVal";
-               XACMLPapServlet servlet = new XACMLPapServlet();
-               
-               // Set the system property temporarily
-               String oldProperty = System.getProperty(systemKey);
-               System.setProperty(systemKey, "xacml.pap.properties");
-                               
-               assertNotNull(XACMLPapServlet.getConfigHome());
-               assertNotNull(XACMLPapServlet.getActionHome());
-               assertEquals(XACMLPapServlet.getPersistenceUnit(), "XACML-PAP-REST");
+    @Test
+    public void testSetAndGet() {
+        String systemKey = "xacml.properties";
+        String testVal = "testVal";
+        XACMLPapServlet servlet = new XACMLPapServlet();
 
-               //assertNull(XACMLPapServlet.getEmf());
-               //assertNull(XACMLPapServlet.getPDPFile());
-               //assertNull(XACMLPapServlet.getPAPEngine());
-               //assertNull(servlet.getIa());
-               
-               XACMLPapServlet.setPapDbDriver(testVal);
-               assertEquals(XACMLPapServlet.getPapDbDriver(), testVal);
-               XACMLPapServlet.setPapDbUrl(testVal);
-               assertEquals(XACMLPapServlet.getPapDbUrl(), testVal);
-               XACMLPapServlet.setPapDbUser(testVal);
-               assertEquals(XACMLPapServlet.getPapDbUser(), testVal);
-               XACMLPapServlet.setPapDbPassword(testVal);
-               assertEquals(XACMLPapServlet.getPapDbPassword(), testVal);
-               XACMLPapServlet.setMsOnapName(testVal);
-               assertEquals(XACMLPapServlet.getMsOnapName(), testVal);
-               XACMLPapServlet.setMsPolicyName(testVal);
-               assertEquals(XACMLPapServlet.getMsPolicyName(), testVal);
-               
-               // Restore the original system property
-               if (oldProperty != null) {
-                       System.setProperty(systemKey,  oldProperty);
-               }
-               else {
-                       System.clearProperty(systemKey);
-               }
-       }
+        // Set the system property temporarily
+        String oldProperty = System.getProperty(systemKey);
+        System.setProperty(systemKey, "xacml.pap.properties");
+
+        assertNotNull(XACMLPapServlet.getConfigHome());
+        assertNotNull(XACMLPapServlet.getActionHome());
+        assertEquals(XACMLPapServlet.getPersistenceUnit(), "XACML-PAP-REST");
+
+        //assertNull(XACMLPapServlet.getEmf());
+        //assertNull(XACMLPapServlet.getPDPFile());
+        //assertNull(XACMLPapServlet.getPAPEngine());
+        //assertNull(servlet.getIa());
+
+        XACMLPapServlet.setPapDbDriver(testVal);
+        assertEquals(XACMLPapServlet.getPapDbDriver(), testVal);
+        XACMLPapServlet.setPapDbUrl(testVal);
+        assertEquals(XACMLPapServlet.getPapDbUrl(), testVal);
+        XACMLPapServlet.setPapDbUser(testVal);
+        assertEquals(XACMLPapServlet.getPapDbUser(), testVal);
+        XACMLPapServlet.setPapDbPassword(testVal);
+        assertEquals(XACMLPapServlet.getPapDbPassword(), testVal);
+        XACMLPapServlet.setMsOnapName(testVal);
+        assertEquals(XACMLPapServlet.getMsOnapName(), testVal);
+        XACMLPapServlet.setMsPolicyName(testVal);
+        assertEquals(XACMLPapServlet.getMsPolicyName(), testVal);
+
+        // Restore the original system property
+        if (oldProperty != null) {
+            System.setProperty(systemKey,  oldProperty);
+        }
+        else {
+            System.clearProperty(systemKey);
+        }
+    }
 }
index 839af2f..841ba28 100644 (file)
@@ -24,33 +24,33 @@ import static org.junit.Assert.*;
 import org.junit.Test;
 
 public class SearchDataTest {
-       
-       
-       @Test
-       public void testSearchData(){
-               String data = "Test";
-               SearchData searchData = new SearchData();
-               searchData.setQuery(data);
-               searchData.setPolicyType(data);
-               searchData.setOnapName(data);
-               searchData.setDescriptiveScope(data);
-               searchData.setClosedLooppolicyType(data);
-               searchData.setD2Service(data);
-               searchData.setVnfType(data);
-               searchData.setPolicyStatus(data);
-               searchData.setVproAction(data);
-               searchData.setServiceType(data);
-               searchData.setBindTextSearch(data);
-               assertEquals(data, searchData.getQuery());
-               assertEquals(data, searchData.getPolicyType());
-               assertEquals(data, searchData.getDescriptiveScope());
-               assertEquals(data, searchData.getClosedLooppolicyType());
-               assertEquals(data, searchData.getOnapName());
-               assertEquals(data, searchData.getD2Service());
-               assertEquals(data, searchData.getVnfType());
-               assertEquals(data, searchData.getPolicyStatus());
-               assertEquals(data, searchData.getVproAction());
-               assertEquals(data, searchData.getServiceType());
-               assertEquals(data, searchData.getBindTextSearch());
-       }
+
+
+    @Test
+    public void testSearchData(){
+        String data = "Test";
+        SearchData searchData = new SearchData();
+        searchData.setQuery(data);
+        searchData.setPolicyType(data);
+        searchData.setOnapName(data);
+        searchData.setDescriptiveScope(data);
+        searchData.setClosedLooppolicyType(data);
+        searchData.setD2Service(data);
+        searchData.setVnfType(data);
+        searchData.setPolicyStatus(data);
+        searchData.setVproAction(data);
+        searchData.setServiceType(data);
+        searchData.setBindTextSearch(data);
+        assertEquals(data, searchData.getQuery());
+        assertEquals(data, searchData.getPolicyType());
+        assertEquals(data, searchData.getDescriptiveScope());
+        assertEquals(data, searchData.getClosedLooppolicyType());
+        assertEquals(data, searchData.getOnapName());
+        assertEquals(data, searchData.getD2Service());
+        assertEquals(data, searchData.getVnfType());
+        assertEquals(data, searchData.getPolicyStatus());
+        assertEquals(data, searchData.getVproAction());
+        assertEquals(data, searchData.getServiceType());
+        assertEquals(data, searchData.getBindTextSearch());
+    }
 }
index 2c1bc1c..094994e 100644 (file)
@@ -24,16 +24,16 @@ import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
 public class UpdateObjectDataTest {
-       
-       @Test
-       public void testClosedLoopFaultTrapDatas(){
-               UpdateObjectData updateObject = new UpdateObjectData();
-               updateObject.setAction("Rename");
-               assertTrue("Rename".equals(updateObject.getAction()));
-               updateObject.setNewPolicyName("com.Config_test1.1.json");
-               assertTrue("com.Config_test1.1.json".equals(updateObject.getNewPolicyName()));
-               updateObject.setOldPolicyName("com.Config_test.1.json");
-               assertTrue("com.Config_test.1.json".equals(updateObject.getOldPolicyName()));
-       }
-       
+
+    @Test
+    public void testClosedLoopFaultTrapDatas(){
+        UpdateObjectData updateObject = new UpdateObjectData();
+        updateObject.setAction("Rename");
+        assertTrue("Rename".equals(updateObject.getAction()));
+        updateObject.setNewPolicyName("com.Config_test1.1.json");
+        assertTrue("com.Config_test1.1.json".equals(updateObject.getNewPolicyName()));
+        updateObject.setOldPolicyName("com.Config_test.1.json");
+        assertTrue("com.Config_test.1.json".equals(updateObject.getOldPolicyName()));
+    }
+
 }
index cb09bec..a04859b 100644 (file)
@@ -40,102 +40,102 @@ import com.att.research.xacml.util.XACMLProperties;
 
 
 public class ActionPolicyTest {
-       
-       private static Logger logger = FlexLogger.getLogger(ActionPolicyTest.class);
-       PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-       List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
-       Map<String, String> attributeMap = new HashMap<>();
-       ActionPolicy component = null;
-
-
-       /**
-        * @throws java.lang.Exception
-        */
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
-
-               dynamicRuleAlgorithmLabels.add("test");
-               dynamicRuleAlgorithmField1.add("testField1");
-               dynamicRuleAlgorithmCombo.add("testCombo");
-               dynamicRuleAlgorithmField2.add("testField2");
-               
-               policyAdapter.setPolicyName("Test.Action_junitTest");
-               policyAdapter.setPolicyDescription("test");
-               policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
-               policyAdapter.setPolicyType("Action");
-               policyAdapter.setEditPolicy(false);
-               policyAdapter.setDomainDir("Test");
-               policyAdapter.setNewFileName("Test.Action_junitTest.1.xml");
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
-               
-               policyAdapter.setActionDictHeader("");
-               policyAdapter.setActionDictType("REST");
-               policyAdapter.setActionDictUrl("onap.org");
-               policyAdapter.setActionDictMethod("GET");
-               policyAdapter.setActionAttribute("test");
-               policyAdapter.setActionBody("test");
-               
-               policyAdapter.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
-               policyAdapter.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
-               policyAdapter.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
-               policyAdapter.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
-               
-               attributeMap.put("java", "test");
-               policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
-               
-               component = new ActionPolicy(policyAdapter, null);
+
+    private static Logger logger = FlexLogger.getLogger(ActionPolicyTest.class);
+    PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+    List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
+    Map<String, String> attributeMap = new HashMap<>();
+    ActionPolicy component = null;
+
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
+
+        dynamicRuleAlgorithmLabels.add("test");
+        dynamicRuleAlgorithmField1.add("testField1");
+        dynamicRuleAlgorithmCombo.add("testCombo");
+        dynamicRuleAlgorithmField2.add("testField2");
+
+        policyAdapter.setPolicyName("Test.Action_junitTest");
+        policyAdapter.setPolicyDescription("test");
+        policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
+        policyAdapter.setPolicyType("Action");
+        policyAdapter.setEditPolicy(false);
+        policyAdapter.setDomainDir("Test");
+        policyAdapter.setNewFileName("Test.Action_junitTest.1.xml");
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
+
+        policyAdapter.setActionDictHeader("");
+        policyAdapter.setActionDictType("REST");
+        policyAdapter.setActionDictUrl("onap.org");
+        policyAdapter.setActionDictMethod("GET");
+        policyAdapter.setActionAttribute("test");
+        policyAdapter.setActionBody("test");
+
+        policyAdapter.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
+        policyAdapter.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
+        policyAdapter.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
+        policyAdapter.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
+
+        attributeMap.put("java", "test");
+        policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
+
+        component = new ActionPolicy(policyAdapter, null);
 
         logger.info("setUp: exit");
-       }
+    }
 
-       /**
-        * @throws java.lang.Exception
-        */
-       @After
-       public void tearDown() throws Exception {
-       }
+    /**
+     * @throws java.lang.Exception
+     */
+    @After
+    public void tearDown() throws Exception {
+    }
 
 /*     *//**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.ActionPolicy#savePolicies()}.
-        */
-       @Test
-       public void testSavePolicies() {
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.ActionPolicy#savePolicies()}.
+     */
+    @Test
+    public void testSavePolicies() {
         ActionPolicy mockAction = Mockito.mock(component.getClass());
-               
+
         Map<String, String> successMap = new HashMap<>();
         
-               successMap.put("success", "success");
+        successMap.put("success", "success");
 
         try {
-               when(mockAction.savePolicies()).thenReturn(successMap);
-               successMap = mockAction.savePolicies();
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-               }
-               assertEquals(successMap.get("success"),"success");              
-       }
-
-       /**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.ActionPolicy#prepareToSave()}.
-        */
-       @Test
-       public void testPrepareToSave() {
-               logger.debug("test PrepareToSave Policy: enter");
-               boolean response = true;
-               
-               try {
-                       response = component.prepareToSave();
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-               }
-               assertTrue(response);   
-               
-       }
+            when(mockAction.savePolicies()).thenReturn(successMap);
+            successMap = mockAction.savePolicies();
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+        }
+        assertEquals(successMap.get("success"),"success");
+    }
+
+    /**
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.ActionPolicy#prepareToSave()}.
+     */
+    @Test
+    public void testPrepareToSave() {
+        logger.debug("test PrepareToSave Policy: enter");
+        boolean response = true;
+
+        try {
+            response = component.prepareToSave();
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+        }
+        assertTrue(response);
+
+    }
 
 }
\ No newline at end of file
index 9c5f71f..542d45e 100644 (file)
@@ -31,38 +31,38 @@ import com.att.research.xacml.api.pap.PAPException;
 import java.nio.charset.StandardCharsets;
 
 public class ClosedLoopPolicyTest {
-       @Rule
+    @Rule
     public ExpectedException thrown = ExpectedException.none();
 
-       @Test
-       public void testConstructor1() {
-               thrown.expect(NullPointerException.class);
-               ClosedLoopPolicy policy = new ClosedLoopPolicy();
-               policy.getCorrectPolicyDataObject();
-       }
-       
-       @Test
-       public void testConstructor2() {
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               ClosedLoopPolicy policy = new ClosedLoopPolicy(policyAdapter);
-               assertNull(policy.getCorrectPolicyDataObject());
-       }
-       
-       @Test
-       public void testReadFile() throws IOException {
-               thrown.expect(IOException.class);
-               String read = ClosedLoopPolicy.readFile("/foo",  StandardCharsets.UTF_8);
-               fail("Expecting an exception.");
-       }
-       
-       @Test
-       public void testPrepareToSave() throws PAPException {
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               ClosedLoopPolicy policy = new ClosedLoopPolicy(policyAdapter);
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setPolicyType("Config");
-               policyAdapter.setNewFileName("foo.xml");
-               policy.prepareToSave();
-               assertEquals(policy.isPreparedToSave(), true);
-       }
+    @Test
+    public void testConstructor1() {
+        thrown.expect(NullPointerException.class);
+        ClosedLoopPolicy policy = new ClosedLoopPolicy();
+        policy.getCorrectPolicyDataObject();
+    }
+
+    @Test
+    public void testConstructor2() {
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        ClosedLoopPolicy policy = new ClosedLoopPolicy(policyAdapter);
+        assertNull(policy.getCorrectPolicyDataObject());
+    }
+
+    @Test
+    public void testReadFile() throws IOException {
+        thrown.expect(IOException.class);
+        String read = ClosedLoopPolicy.readFile("/foo",  StandardCharsets.UTF_8);
+        fail("Expecting an exception.");
+    }
+
+    @Test
+    public void testPrepareToSave() throws PAPException {
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        ClosedLoopPolicy policy = new ClosedLoopPolicy(policyAdapter);
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setPolicyType("Config");
+        policyAdapter.setNewFileName("foo.xml");
+        policy.prepareToSave();
+        assertEquals(policy.isPreparedToSave(), true);
+    }
 }
\ No newline at end of file
index e16dd98..3cf3128 100644 (file)
@@ -41,104 +41,104 @@ import com.att.research.xacml.util.XACMLProperties;
 
 public class DecisionPolicyTest {
 
-       private static Logger logger = FlexLogger.getLogger(DecisionPolicyTest.class);
-       PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-       RainyDayParams rainyday = new RainyDayParams();
-       Map<String, String> attributeMap = new HashMap<>();
-       Map<String, String> treatmentMap = new HashMap<>();
-       Map<String, String> settingsMap = new HashMap<>();
-       List<String> errorCodeList = new LinkedList<>();
-       List<String> treatmentList = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
-       List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
-       List<Object> dynamicVariableList = new LinkedList<>();
-       List<String> dataTypeList = new LinkedList<>();
-       DecisionPolicy component = null;
-       
-       /**
-        * @throws java.lang.Exception
-        */
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
-
-               policyAdapter.setPolicyName("Test.Decision_junitTest.1.xml");
-               policyAdapter.setPolicyDescription("testing");
-               policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
-               policyAdapter.setPolicyType("Decision");
-               policyAdapter.setEditPolicy(false);
-               policyAdapter.setDomainDir("Test");
-               policyAdapter.setNewFileName("/src/test/resources/Test/client.properties");
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
-               policyAdapter.setOnapName("MSO");
-               
-               //rainy day attributes
-               attributeMap.put("ServiceType", "S");
-               attributeMap.put("VNFType", "V");
-               attributeMap.put("BB_ID", "testBB");
-               attributeMap.put("WorkStep", "1");
-                               
-               dynamicRuleAlgorithmLabels.add("test1");
-               dynamicRuleAlgorithmField1.add("testField1");
-               dynamicRuleAlgorithmCombo.add("testruleCombo");
-               dynamicRuleAlgorithmField2.add("testField2");
-               
-               policyAdapter.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
-               policyAdapter.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
-               policyAdapter.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
-               policyAdapter.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
-               policyAdapter.setDynamicVariableList(dynamicVariableList);
-               policyAdapter.setDynamicSettingsMap(settingsMap);
-               policyAdapter.setDataTypeList(dataTypeList);
-
-               policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
-               policyAdapter.setRainydayMap(treatmentMap);
-               policyAdapter.setRainyday(rainyday);
-                       
-               component = new DecisionPolicy(policyAdapter, null);
+    private static Logger logger = FlexLogger.getLogger(DecisionPolicyTest.class);
+    PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+    RainyDayParams rainyday = new RainyDayParams();
+    Map<String, String> attributeMap = new HashMap<>();
+    Map<String, String> treatmentMap = new HashMap<>();
+    Map<String, String> settingsMap = new HashMap<>();
+    List<String> errorCodeList = new LinkedList<>();
+    List<String> treatmentList = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmLabels = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmCombo = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmField1 = new LinkedList<>();
+    List<String> dynamicRuleAlgorithmField2 = new LinkedList<>();
+    List<Object> dynamicVariableList = new LinkedList<>();
+    List<String> dataTypeList = new LinkedList<>();
+    DecisionPolicy component = null;
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
+
+        policyAdapter.setPolicyName("Test.Decision_junitTest.1.xml");
+        policyAdapter.setPolicyDescription("testing");
+        policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
+        policyAdapter.setPolicyType("Decision");
+        policyAdapter.setEditPolicy(false);
+        policyAdapter.setDomainDir("Test");
+        policyAdapter.setNewFileName("/src/test/resources/Test/client.properties");
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
+        policyAdapter.setOnapName("MSO");
+
+        //rainy day attributes
+        attributeMap.put("ServiceType", "S");
+        attributeMap.put("VNFType", "V");
+        attributeMap.put("BB_ID", "testBB");
+        attributeMap.put("WorkStep", "1");
+
+        dynamicRuleAlgorithmLabels.add("test1");
+        dynamicRuleAlgorithmField1.add("testField1");
+        dynamicRuleAlgorithmCombo.add("testruleCombo");
+        dynamicRuleAlgorithmField2.add("testField2");
+
+        policyAdapter.setDynamicRuleAlgorithmLabels(dynamicRuleAlgorithmLabels);
+        policyAdapter.setDynamicRuleAlgorithmCombo(dynamicRuleAlgorithmCombo);
+        policyAdapter.setDynamicRuleAlgorithmField1(dynamicRuleAlgorithmField1);
+        policyAdapter.setDynamicRuleAlgorithmField2(dynamicRuleAlgorithmField2);
+        policyAdapter.setDynamicVariableList(dynamicVariableList);
+        policyAdapter.setDynamicSettingsMap(settingsMap);
+        policyAdapter.setDataTypeList(dataTypeList);
+
+        policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
+        policyAdapter.setRainydayMap(treatmentMap);
+        policyAdapter.setRainyday(rainyday);
+
+        component = new DecisionPolicy(policyAdapter, null);
 
         logger.info("setUp: exit");
-       }
+    }
 
-       /**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.DecisionPolicy#savePolicies()}.
-        */
-       @Test
-       public void testSavePolicies() {
+    /**
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.DecisionPolicy#savePolicies()}.
+     */
+    @Test
+    public void testSavePolicies() {
         DecisionPolicy mockDecision = Mockito.mock(component.getClass());
 
         Map<String, String> successMap = new HashMap<>();
-               successMap.put("success", "success");
-               
+        successMap.put("success", "success");
+
+        try {
+            when(mockDecision.savePolicies()).thenReturn(successMap);
+            successMap = mockDecision.savePolicies();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        assertEquals(successMap.get("success"),"success");
+    }
+
+    /**
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.DecisionPolicy#prepareToSave()}.
+     */
+    @Test
+    public void testPrepareToSaveRainyDay() {
+        logger.debug("test PrepareToSave Policy: enter");
+        policyAdapter.setRuleProvider("Rainy_Day");
+        component = new DecisionPolicy(policyAdapter, null);
+        boolean response = false;
+
         try {
-               when(mockDecision.savePolicies()).thenReturn(successMap);
-               successMap = mockDecision.savePolicies();
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-               
-               assertEquals(successMap.get("success"),"success");
-       }
-
-       /**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.DecisionPolicy#prepareToSave()}.
-        */
-       @Test
-       public void testPrepareToSaveRainyDay() {
-               logger.debug("test PrepareToSave Policy: enter");
-               policyAdapter.setRuleProvider("Rainy_Day");
-               component = new DecisionPolicy(policyAdapter, null);
-               boolean response = false;
-               
-               try {
-                       response = component.prepareToSave();
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-               }
-               assertTrue(response);
-       }
+            response = component.prepareToSave();
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+        }
+        assertTrue(response);
+    }
 }
\ No newline at end of file
index 0dd919a..7f3ebb3 100644 (file)
@@ -42,103 +42,103 @@ import com.att.research.xacml.util.XACMLProperties;
 
 
 public class FirewallConfigPolicyTest {
-       
-       private static Logger logger = FlexLogger.getLogger(FirewallConfigPolicyTest.class);
-       PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-       Map<String, String> attributeMap = new HashMap<>();
-       FirewallConfigPolicy component = null;
+
+    private static Logger logger = FlexLogger.getLogger(FirewallConfigPolicyTest.class);
+    PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+    Map<String, String> attributeMap = new HashMap<>();
+    FirewallConfigPolicy component = null;
     FirewallConfigPolicy mockFWConfig = null;
     private XACMLPAPTest papTest;
 
-       /**
-        * @throws java.lang.Exception
-        */
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setup: enter");
-               System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
-
-               policyAdapter.setPolicyName("FWjunitTest");
-               policyAdapter.setPolicyDescription("test");
-               policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
-               policyAdapter.setPolicyType("Config");
-               policyAdapter.setConfigPolicyType("Firewall Config");
-               policyAdapter.setEditPolicy(false);
-               policyAdapter.setDomainDir("Test");
-               policyAdapter.setNewFileName("Test.Config_FW_junitTest.1.xml");
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setVersion(String.valueOf(1));
-               policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
-               policyAdapter.setRuleID("");
-               policyAdapter.setConfigName("testname");
-               policyAdapter.setGuard("True");
-               policyAdapter.setRiskLevel("3");
-               policyAdapter.setRiskType("RiskTest");
-               policyAdapter.setSecurityZone("CraigSecurityZone");
-               policyAdapter.setUserId("API");
-               
-               attributeMap.put("testJunits", "test");
-               policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
-
-               component = new FirewallConfigPolicy(policyAdapter);
-               mockFWConfig = Mockito.mock(FirewallConfigPolicy.class);
-               papTest = new XACMLPAPTest();
-               papTest.setDBDao();
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setup: enter");
+        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
+
+        policyAdapter.setPolicyName("FWjunitTest");
+        policyAdapter.setPolicyDescription("test");
+        policyAdapter.setRuleCombiningAlgId("urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides");
+        policyAdapter.setPolicyType("Config");
+        policyAdapter.setConfigPolicyType("Firewall Config");
+        policyAdapter.setEditPolicy(false);
+        policyAdapter.setDomainDir("Test");
+        policyAdapter.setNewFileName("Test.Config_FW_junitTest.1.xml");
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setVersion(String.valueOf(1));
+        policyAdapter.setPolicyID("urn:xacml:policy:id:"+UUID.randomUUID());
+        policyAdapter.setRuleID("");
+        policyAdapter.setConfigName("testname");
+        policyAdapter.setGuard("True");
+        policyAdapter.setRiskLevel("3");
+        policyAdapter.setRiskType("RiskTest");
+        policyAdapter.setSecurityZone("CraigSecurityZone");
+        policyAdapter.setUserId("API");
+
+        attributeMap.put("testJunits", "test");
+        policyAdapter.setDynamicFieldConfigAttributes(attributeMap);
+
+        component = new FirewallConfigPolicy(policyAdapter);
+        mockFWConfig = Mockito.mock(FirewallConfigPolicy.class);
+        papTest = new XACMLPAPTest();
+        papTest.setDBDao();
         logger.info("setUp: exit");
-               
-       }
-
-       /**
-        * @throws java.lang.Exception
-        */
-       @After
-       public void tearDown() throws Exception {
-       }
-
-       /**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.FirewallConfigPolicy#savePolicies()}.
-        */
-       @Test
-       public void testSavePolicies() {
+
+    }
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    /**
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.FirewallConfigPolicy#savePolicies()}.
+     */
+    @Test
+    public void testSavePolicies() {
         Map<String, String> successMap = new HashMap<>();
         successMap.put("success", "success");
-               try {
-               when(mockFWConfig.savePolicies()).thenReturn(successMap);
-               successMap = mockFWConfig.savePolicies();
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-               }
-       }
-
-       /**
-        * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.FirewallConfigPolicy#prepareToSave()}.
-        */
-       @Test
-       public void testPrepareToSave() {
-               logger.debug("test prepareToSave Policy: enter");
-
-               boolean response = false;
-               try {
-               when(mockFWConfig.prepareToSave()).thenReturn(true);
-                       response = mockFWConfig.prepareToSave();
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-               }
-               assertTrue(response);           
-               
-       }
-       
-       @Test
-       public void testUpdateJson() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
-           FirewallConfigPolicy firewallConfigPolicy = new FirewallConfigPolicy();
-           Method method = firewallConfigPolicy.getClass().getDeclaredMethod("updateFirewallDictionaryData", String.class , String.class);
-           method.setAccessible(true);
-           String jsonBody= "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"TestFwPolicyConfig\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"cloudsite:dev1a\",\"serviceGroups\":[{\"name\":\"SSH\",\"description\":\"Sshservice entry in servicelist\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"22\"}],\"addressGroups\":[{\"name\":\"test\",\"description\":\"Destination\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/12\"}]},{\"name\":\"TestServers\",\"description\":\"SourceTestServers for firsttesting\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/23\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"FWRuleTestServerToTest\",\"fromZones\":[\"UntrustedZoneTestName\"],\"toZones\":[\"TrustedZoneTestName\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"name\":\"TestServers\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"name\":\"Test\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"SSH\"}],\"action\":\"accept\",\"description\":\"FWrule for Test source to Test destination\",\"enabled\":true,\"log\":true}]}";
-           String prevJsonBody = "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"TestFwPolicy1Config\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"cloudsite:dev\",\"vendorServiceId\":\"test\",\"vendorSpecificData\":{\"idMap\":[{\"Id\":\"cloudsite:dev1a\",\"vendorId\":\"deviceGroup:dev\"}]},\"serviceGroups\":[{\"name\":\"SSH\",\"description\":\"Ssh service entry in service list\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"22\"}],\"addressGroups\":[{\"name\":\"Test\",\"description\":\"Destination Test\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/12\"}]},{\"name\":\"TestServers\",\"description\":\"Source TestServers for first testing\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/23\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"FWRuleTestServerTot\",\"fromZones\":[\"UntrustedZoneTestName\"],\"toZones\":[\"TrustedZoneTName\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"name\":\"TServers\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"name\":\"Test\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"SSH\"}],\"action\":\"accept\",\"description\":\"FW rule for HOHO source to CiscoVCE destination\",\"enabled\":true,\"log\":true}]}";
+        try {
+            when(mockFWConfig.savePolicies()).thenReturn(successMap);
+            successMap = mockFWConfig.savePolicies();
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+        }
+    }
+
+    /**
+     * Test method for {@link org.openecomp.policy.pap.xacml.rest.components.FirewallConfigPolicy#prepareToSave()}.
+     */
+    @Test
+    public void testPrepareToSave() {
+        logger.debug("test prepareToSave Policy: enter");
+
+        boolean response = false;
+        try {
+            when(mockFWConfig.prepareToSave()).thenReturn(true);
+            response = mockFWConfig.prepareToSave();
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+        }
+        assertTrue(response);
+
+    }
+
+    @Test
+    public void testUpdateJson() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
+        FirewallConfigPolicy firewallConfigPolicy = new FirewallConfigPolicy();
+        Method method = firewallConfigPolicy.getClass().getDeclaredMethod("updateFirewallDictionaryData", String.class , String.class);
+        method.setAccessible(true);
+        String jsonBody= "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"TestFwPolicyConfig\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"cloudsite:dev1a\",\"serviceGroups\":[{\"name\":\"SSH\",\"description\":\"Sshservice entry in servicelist\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"22\"}],\"addressGroups\":[{\"name\":\"test\",\"description\":\"Destination\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/12\"}]},{\"name\":\"TestServers\",\"description\":\"SourceTestServers for firsttesting\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/23\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"FWRuleTestServerToTest\",\"fromZones\":[\"UntrustedZoneTestName\"],\"toZones\":[\"TrustedZoneTestName\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"name\":\"TestServers\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"name\":\"Test\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"SSH\"}],\"action\":\"accept\",\"description\":\"FWrule for Test source to Test destination\",\"enabled\":true,\"log\":true}]}";
+        String prevJsonBody = "{\"serviceTypeId\":\"/v0/firewall/pan\",\"configName\":\"TestFwPolicy1Config\",\"deploymentOption\":{\"deployNow\":false},\"securityZoneId\":\"cloudsite:dev\",\"vendorServiceId\":\"test\",\"vendorSpecificData\":{\"idMap\":[{\"Id\":\"cloudsite:dev1a\",\"vendorId\":\"deviceGroup:dev\"}]},\"serviceGroups\":[{\"name\":\"SSH\",\"description\":\"Ssh service entry in service list\",\"type\":\"SERVICE\",\"transportProtocol\":\"tcp\",\"appProtocol\":null,\"ports\":\"22\"}],\"addressGroups\":[{\"name\":\"Test\",\"description\":\"Destination Test\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/12\"}]},{\"name\":\"TestServers\",\"description\":\"Source TestServers for first testing\",\"members\":[{\"type\":\"SUBNET\",\"value\":\"127.0.0.1/23\"}]}],\"firewallRuleList\":[{\"position\":\"1\",\"ruleName\":\"FWRuleTestServerTot\",\"fromZones\":[\"UntrustedZoneTestName\"],\"toZones\":[\"TrustedZoneTName\"],\"negateSource\":false,\"negateDestination\":false,\"sourceList\":[{\"type\":\"REFERENCE\",\"name\":\"TServers\"}],\"destinationList\":[{\"type\":\"REFERENCE\",\"name\":\"Test\"}],\"sourceServices\":[],\"destServices\":[{\"type\":\"REFERENCE\",\"name\":\"SSH\"}],\"action\":\"accept\",\"description\":\"FW rule for HOHO source to CiscoVCE destination\",\"enabled\":true,\"log\":true}]}";
         assertTrue((Boolean) method.invoke(firewallConfigPolicy, jsonBody, prevJsonBody));
-       }
-       
-       @Test
+    }
+
+    @Test
     public void testInsertJson() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
         FirewallConfigPolicy firewallConfigPolicy = new FirewallConfigPolicy();
         Method method = firewallConfigPolicy.getClass().getDeclaredMethod("insertFirewallDicionaryData", String.class);
index a47c2be..f698bc0 100644 (file)
@@ -41,71 +41,71 @@ import java.util.Collections;
 
 @RunWith(PowerMockRunner.class)
 public class MicroServicePolicyTest {
-       @Rule
+    @Rule
     public ExpectedException thrown = ExpectedException.none();
 
-       @Test
-       public void testConstructor1() {
-               thrown.expect(NullPointerException.class);
-               MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy();
-               policy.getCorrectPolicyDataObject();
-               fail("Expected an exception");
-       }
-       
-       @Test
-       public void testConstructor2() {
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy(policyAdapter);
-               assertNull(policy.getCorrectPolicyDataObject());
-       }
-       
-       @PrepareForTest({MicroServiceConfigPolicy.class})
-       @Test
-       public void testPrepareToSave() throws Exception {
-               // Need to mock internal dictionary retrieval
-               CommonClassDaoImpl impl = Mockito.mock(CommonClassDaoImpl.class);
-               PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(impl);
-               when(impl.getDataById(any(), anyString(), anyString())).thenReturn(null);
-               
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy(policyAdapter);
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setPolicyType("Config");
-               policyAdapter.setNewFileName("foo.xml");
-               policyAdapter.setJsonBody("{ \"version\": \"1.0\"}");
-               policyAdapter.setServiceType("foo");
-               policy.prepareToSave();
-               assertEquals(policy.isPreparedToSave(), true);
-       }
-       
-       @Test
-       public void testCreateConstructor1() {
-               CreateNewMicroServiceModel model = new CreateNewMicroServiceModel(null, null, null, null);
-               assertNotNull(model);
-       }
-       
-       @PrepareForTest({CreateNewMicroServiceModel.class})
-       @Test
-       public void testCreateModel() throws Exception {
-               // Mock file retrieval
-               File testFile = new File("testFile");
-               File[] testList = new File[1];
-               testList[0] = testFile;
-               File impl = Mockito.mock(File.class);
-               PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(impl);
-               when(impl.listFiles()).thenReturn(testList);
-               when(impl.isFile()).thenReturn(true);
+    @Test
+    public void testConstructor1() {
+        thrown.expect(NullPointerException.class);
+        MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy();
+        policy.getCorrectPolicyDataObject();
+        fail("Expected an exception");
+    }
 
-               // Mock internal dictionary retrieval
-               CommonClassDaoImpl daoImpl = Mockito.mock(CommonClassDaoImpl.class);
-               PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(daoImpl);
-               when(daoImpl.getDataById(any(), anyString(), anyString())).thenReturn(Collections.emptyList());
+    @Test
+    public void testConstructor2() {
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy(policyAdapter);
+        assertNull(policy.getCorrectPolicyDataObject());
+    }
 
-               // Test create methods
-               String testFileName = "testFile.zip";
-               String testVal = "testVal";
-               CreateNewMicroServiceModel model = new CreateNewMicroServiceModel(testFileName, testVal, testVal, testVal, testVal);
-               model.addValuesToNewModel(".xmi");
-               model.saveImportService();
-       }
+    @PrepareForTest({MicroServiceConfigPolicy.class})
+    @Test
+    public void testPrepareToSave() throws Exception {
+        // Need to mock internal dictionary retrieval
+        CommonClassDaoImpl impl = Mockito.mock(CommonClassDaoImpl.class);
+        PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(impl);
+        when(impl.getDataById(any(), anyString(), anyString())).thenReturn(null);
+
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        MicroServiceConfigPolicy policy = new MicroServiceConfigPolicy(policyAdapter);
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setPolicyType("Config");
+        policyAdapter.setNewFileName("foo.xml");
+        policyAdapter.setJsonBody("{ \"version\": \"1.0\"}");
+        policyAdapter.setServiceType("foo");
+        policy.prepareToSave();
+        assertEquals(policy.isPreparedToSave(), true);
+    }
+
+    @Test
+    public void testCreateConstructor1() {
+        CreateNewMicroServiceModel model = new CreateNewMicroServiceModel(null, null, null, null);
+        assertNotNull(model);
+    }
+
+    @PrepareForTest({CreateNewMicroServiceModel.class})
+    @Test
+    public void testCreateModel() throws Exception {
+        // Mock file retrieval
+        File testFile = new File("testFile");
+        File[] testList = new File[1];
+        testList[0] = testFile;
+        File impl = Mockito.mock(File.class);
+        PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(impl);
+        when(impl.listFiles()).thenReturn(testList);
+        when(impl.isFile()).thenReturn(true);
+
+        // Mock internal dictionary retrieval
+        CommonClassDaoImpl daoImpl = Mockito.mock(CommonClassDaoImpl.class);
+        PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(daoImpl);
+        when(daoImpl.getDataById(any(), anyString(), anyString())).thenReturn(Collections.emptyList());
+
+        // Test create methods
+        String testFileName = "testFile.zip";
+        String testVal = "testVal";
+        CreateNewMicroServiceModel model = new CreateNewMicroServiceModel(testFileName, testVal, testVal, testVal, testVal);
+        model.addValuesToNewModel(".xmi");
+        model.saveImportService();
+    }
 }
index 7b9be68..25e94c1 100644 (file)
@@ -41,65 +41,65 @@ import java.util.Collections;
 
 @RunWith(PowerMockRunner.class)
 public class OptimizationConfigPolicyTest {
-       @Rule
+    @Rule
     public ExpectedException thrown = ExpectedException.none();
 
-       @Test
-       public void testConstructor1() {
-               thrown.expect(NullPointerException.class);
-               OptimizationConfigPolicy policy = new OptimizationConfigPolicy();
-               policy.getCorrectPolicyDataObject();
-               fail("Expected an exception");
-       }
-       
-       @Test
-       public void testConstructor2() {
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               OptimizationConfigPolicy policy = new OptimizationConfigPolicy(policyAdapter);
-               assertNull(policy.getCorrectPolicyDataObject());
-       }
-       
-       @PrepareForTest({OptimizationConfigPolicy.class})
-       @Test
-       public void testPrepareToSave() throws Exception {
-               // Need to mock internal dictionary retrieval
-               CommonClassDaoImpl impl = Mockito.mock(CommonClassDaoImpl.class);
-               PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(impl);
-               when(impl.getDataById(any(), anyString(), anyString())).thenReturn(null);
-               
-               PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
-               OptimizationConfigPolicy policy = new OptimizationConfigPolicy(policyAdapter);
-               policyAdapter.setHighestVersion(1);
-               policyAdapter.setPolicyType("Config");
-               policyAdapter.setNewFileName("foo.xml");
-               policyAdapter.setJsonBody("{ \"version\": \"1.0\"}");
-               policyAdapter.setServiceType("foo");
-               policy.prepareToSave();
-               assertEquals(true, policy.isPreparedToSave());
-       }
-       
-       @PrepareForTest({CreateNewOptimizationModel.class})
-       @Test
-       public void testCreateModel() throws Exception {
-               // Mock file retrieval
-               File testFile = new File("testFile");
-               File[] testList = new File[1];
-               testList[0] = testFile;
-               File impl = Mockito.mock(File.class);
-               PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(impl);
-               when(impl.listFiles()).thenReturn(testList);
-               when(impl.isFile()).thenReturn(true);
+    @Test
+    public void testConstructor1() {
+        thrown.expect(NullPointerException.class);
+        OptimizationConfigPolicy policy = new OptimizationConfigPolicy();
+        policy.getCorrectPolicyDataObject();
+        fail("Expected an exception");
+    }
 
-               // Mock internal dictionary retrieval
-               CommonClassDaoImpl daoImpl = Mockito.mock(CommonClassDaoImpl.class);
-               PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(daoImpl);
-               when(daoImpl.getDataById(any(), anyString(), anyString())).thenReturn(Collections.emptyList());
+    @Test
+    public void testConstructor2() {
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        OptimizationConfigPolicy policy = new OptimizationConfigPolicy(policyAdapter);
+        assertNull(policy.getCorrectPolicyDataObject());
+    }
 
-               // Test create methods
-               String testFileName = "testFile.zip";
-               String testVal = "testVal";
-               CreateNewOptimizationModel model = new CreateNewOptimizationModel(testFileName, testVal, testVal, testVal, testVal);
-               model.addValuesToNewModel();
-               model.saveImportService();
-       }
+    @PrepareForTest({OptimizationConfigPolicy.class})
+    @Test
+    public void testPrepareToSave() throws Exception {
+        // Need to mock internal dictionary retrieval
+        CommonClassDaoImpl impl = Mockito.mock(CommonClassDaoImpl.class);
+        PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(impl);
+        when(impl.getDataById(any(), anyString(), anyString())).thenReturn(null);
+
+        PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+        OptimizationConfigPolicy policy = new OptimizationConfigPolicy(policyAdapter);
+        policyAdapter.setHighestVersion(1);
+        policyAdapter.setPolicyType("Config");
+        policyAdapter.setNewFileName("foo.xml");
+        policyAdapter.setJsonBody("{ \"version\": \"1.0\"}");
+        policyAdapter.setServiceType("foo");
+        policy.prepareToSave();
+        assertEquals(true, policy.isPreparedToSave());
+    }
+
+    @PrepareForTest({CreateNewOptimizationModel.class})
+    @Test
+    public void testCreateModel() throws Exception {
+        // Mock file retrieval
+        File testFile = new File("testFile");
+        File[] testList = new File[1];
+        testList[0] = testFile;
+        File impl = Mockito.mock(File.class);
+        PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(impl);
+        when(impl.listFiles()).thenReturn(testList);
+        when(impl.isFile()).thenReturn(true);
+
+        // Mock internal dictionary retrieval
+        CommonClassDaoImpl daoImpl = Mockito.mock(CommonClassDaoImpl.class);
+        PowerMockito.whenNew(CommonClassDaoImpl.class).withNoArguments().thenReturn(daoImpl);
+        when(daoImpl.getDataById(any(), anyString(), anyString())).thenReturn(Collections.emptyList());
+
+        // Test create methods
+        String testFileName = "testFile.zip";
+        String testVal = "testVal";
+        CreateNewOptimizationModel model = new CreateNewOptimizationModel(testFileName, testVal, testVal, testVal, testVal);
+        model.addValuesToNewModel();
+        model.saveImportService();
+    }
 }
index c098bf4..bdfd8db 100644 (file)
@@ -65,538 +65,538 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
 
 public class PolicyDBDaoTest extends Mockito{
 
-       private static Logger logger = FlexLogger.getLogger(PolicyDBDaoTest.class);
-       
-       PolicyDBDaoTestClass d;
-       PolicyDBDao dbd;
-       PolicyDBDao dbd2;
-       EntityManagerFactory emf;
-       private Path repository;
-       StdEngine stdEngine = null;
-       
-       @Before
-       public void init() throws PAPException, IOException{
-           System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
-               emf = Persistence.createEntityManagerFactory("testPapPU");
-               EntityManager em = emf.createEntityManager();
-               em.getTransaction().begin();
-               try{    
-                       em.createQuery("DELETE FROM PolicyDBDaoEntity").executeUpdate();
-                       em.createQuery("DELETE FROM PolicyEntity").executeUpdate();
-                       em.createQuery("DELETE FROM ConfigurationDataEntity").executeUpdate();
-                       em.createQuery("DELETE FROM ActionBodyEntity").executeUpdate();
-                       em.createQuery("DELETE FROM PdpEntity").executeUpdate();
-                       em.createQuery("DELETE FROM GroupEntity").executeUpdate();
-
-                       em.getTransaction().commit();
-               } catch(Exception e){
-                       logger.error("Exception Occured"+e);
-                       em.getTransaction().rollback();
-               }
-               em.close();
-               try {
-                       dbd = PolicyDBDao.getPolicyDBDaoInstance(emf);
-                       dbd2 = PolicyDBDao.getPolicyDBDaoInstance(emf);
-               } catch (Exception e) {
-                       Assert.fail();
-               }
-
-               d = PolicyDBDao.getPolicyDBDaoTestClass();
-               PolicyDBDao.setJunit(true);
-               repository = Paths.get("src/test/resources/pdps");
+    private static Logger logger = FlexLogger.getLogger(PolicyDBDaoTest.class);
+
+    PolicyDBDaoTestClass d;
+    PolicyDBDao dbd;
+    PolicyDBDao dbd2;
+    EntityManagerFactory emf;
+    private Path repository;
+    StdEngine stdEngine = null;
+
+    @Before
+    public void init() throws PAPException, IOException{
+        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,"src/test/resources/xacml.pap.properties");
+        emf = Persistence.createEntityManagerFactory("testPapPU");
+        EntityManager em = emf.createEntityManager();
+        em.getTransaction().begin();
+        try{
+            em.createQuery("DELETE FROM PolicyDBDaoEntity").executeUpdate();
+            em.createQuery("DELETE FROM PolicyEntity").executeUpdate();
+            em.createQuery("DELETE FROM ConfigurationDataEntity").executeUpdate();
+            em.createQuery("DELETE FROM ActionBodyEntity").executeUpdate();
+            em.createQuery("DELETE FROM PdpEntity").executeUpdate();
+            em.createQuery("DELETE FROM GroupEntity").executeUpdate();
+
+            em.getTransaction().commit();
+        } catch(Exception e){
+            logger.error("Exception Occured"+e);
+            em.getTransaction().rollback();
+        }
+        em.close();
+        try {
+            dbd = PolicyDBDao.getPolicyDBDaoInstance(emf);
+            dbd2 = PolicyDBDao.getPolicyDBDaoInstance(emf);
+        } catch (Exception e) {
+            Assert.fail();
+        }
+
+        d = PolicyDBDao.getPolicyDBDaoTestClass();
+        PolicyDBDao.setJunit(true);
+        repository = Paths.get("src/test/resources/pdps");
         stdEngine = new StdEngine(repository);
         dbd.setPapEngine(stdEngine);
-       }
-       
-       @After
-       public void cleanUp(){
-               PolicyDBDao.setJunit(false);
-               EntityManager em = emf.createEntityManager();
-               em.getTransaction().begin();
-               try{    
-               em.createQuery("DELETE FROM PolicyDBDaoEntity").executeUpdate(); 
-               em.createQuery("DELETE FROM PolicyEntity").executeUpdate(); 
-               em.createQuery("DELETE FROM ConfigurationDataEntity").executeUpdate();
-               em.createQuery("DELETE FROM ActionBodyEntity").executeUpdate();
-               em.createQuery("DELETE FROM PdpEntity").executeUpdate();
-               em.createQuery("DELETE FROM GroupEntity").executeUpdate();
-
-               em.getTransaction().commit();
-               } catch(Exception e){
-                       em.getTransaction().rollback();
-               }
-               em.close();
-               try {
-                       FileUtils.forceDelete(new File("src/test/resources/junitTestCreatedDirectory"));
-               } catch (IOException e) {
-                       //could not delete
-               }
-       }
-       
-       @Test
-       public void getConfigFileTest(){
-               PolicyRestAdapter pra = new PolicyRestAdapter();
-               pra.setConfigType(ConfigPolicy.JSON_CONFIG);
-               String configFile = d.getConfigFile("Config_mypolicy.xml", "org.onap", pra);
-               Assert.assertEquals("org.onap.Config_mypolicy.json", configFile);
-               //yes, we can do action files too even though they don't have configs
-               configFile = d.getConfigFile("Action_mypolicy.xml", "org.onap", pra);
-               Assert.assertEquals("org.onap.Action_mypolicy.json", configFile);
-       }
-       
-       @Test
-       public void createFromPolicyObject(){
-               Policy policyObject = new ConfigPolicy();
-               policyObject.policyAdapter = new PolicyRestAdapter();
-               policyObject.policyAdapter.setConfigName("testpolicy1");
-               policyObject.policyAdapter.setPolicyDescription("my description");
-               policyObject.policyAdapter.setConfigBodyData("this is my test config file");
-               policyObject.policyAdapter.setPolicyName("SampleTest1206");
-               policyObject.policyAdapter.setConfigType(ConfigPolicy.OTHER_CONFIG);
-               policyObject.policyAdapter.setPolicyType("Config");
-               policyObject.policyAdapter.setDomainDir("com");
-               policyObject.policyAdapter.setVersion("1");
-               PolicyType policyTypeObject = new PolicyType();
-               policyObject.policyAdapter.setPolicyData(policyTypeObject);
-               ClassLoader classLoader = getClass().getClassLoader();
-               PolicyType policyConfig = new PolicyType();
+    }
+
+    @After
+    public void cleanUp(){
+        PolicyDBDao.setJunit(false);
+        EntityManager em = emf.createEntityManager();
+        em.getTransaction().begin();
+        try{
+        em.createQuery("DELETE FROM PolicyDBDaoEntity").executeUpdate();
+        em.createQuery("DELETE FROM PolicyEntity").executeUpdate();
+        em.createQuery("DELETE FROM ConfigurationDataEntity").executeUpdate();
+        em.createQuery("DELETE FROM ActionBodyEntity").executeUpdate();
+        em.createQuery("DELETE FROM PdpEntity").executeUpdate();
+        em.createQuery("DELETE FROM GroupEntity").executeUpdate();
+
+        em.getTransaction().commit();
+        } catch(Exception e){
+            em.getTransaction().rollback();
+        }
+        em.close();
+        try {
+            FileUtils.forceDelete(new File("src/test/resources/junitTestCreatedDirectory"));
+        } catch (IOException e) {
+            //could not delete
+        }
+    }
+
+    @Test
+    public void getConfigFileTest(){
+        PolicyRestAdapter pra = new PolicyRestAdapter();
+        pra.setConfigType(ConfigPolicy.JSON_CONFIG);
+        String configFile = d.getConfigFile("Config_mypolicy.xml", "org.onap", pra);
+        Assert.assertEquals("org.onap.Config_mypolicy.json", configFile);
+        //yes, we can do action files too even though they don't have configs
+        configFile = d.getConfigFile("Action_mypolicy.xml", "org.onap", pra);
+        Assert.assertEquals("org.onap.Action_mypolicy.json", configFile);
+    }
+
+    @Test
+    public void createFromPolicyObject(){
+        Policy policyObject = new ConfigPolicy();
+        policyObject.policyAdapter = new PolicyRestAdapter();
+        policyObject.policyAdapter.setConfigName("testpolicy1");
+        policyObject.policyAdapter.setPolicyDescription("my description");
+        policyObject.policyAdapter.setConfigBodyData("this is my test config file");
+        policyObject.policyAdapter.setPolicyName("SampleTest1206");
+        policyObject.policyAdapter.setConfigType(ConfigPolicy.OTHER_CONFIG);
+        policyObject.policyAdapter.setPolicyType("Config");
+        policyObject.policyAdapter.setDomainDir("com");
+        policyObject.policyAdapter.setVersion("1");
+        PolicyType policyTypeObject = new PolicyType();
+        policyObject.policyAdapter.setPolicyData(policyTypeObject);
+        ClassLoader classLoader = getClass().getClassLoader();
+        PolicyType policyConfig = new PolicyType();
         policyConfig.setVersion(Integer.toString(1));
         policyConfig.setPolicyId("");
         policyConfig.setTarget(new TargetType());
         policyObject.policyAdapter.setData(policyConfig);
-               mock(XACMLPolicyWriter.class);
-               try {
-                       policyObject.policyAdapter.setParentPath(IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml")));
-               } catch (Exception e2) {
-                       fail();
-               }
-               
-               PolicyDBDaoTransaction transaction = dbd.getNewTransaction();
-               try{
-                       transaction.createPolicy(policyObject, "testuser1");
-                       transaction.commitTransaction();
-               } catch(Exception e){
-                       transaction.rollbackTransaction();
-                       Assert.fail();
-               }
-               
-               EntityManager getData = emf.createEntityManager();
-               Query getDataQuery = getData.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:name");
-               getDataQuery.setParameter("scope", "com");
-               getDataQuery.setParameter("name","Config_SampleTest1206.1.xml");
-               PolicyEntity result = null;
-               try{
-                       result = (PolicyEntity)getDataQuery.getSingleResult();
-               } catch(Exception e){
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               String expectedData;
-               try {
-                       expectedData = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
-               } catch (IOException e1) {
-                       expectedData = "";
-               }
-               Assert.assertEquals(expectedData, result.getPolicyData());
-               getData.close();
-               result = null;
-
-               transaction.commitTransaction();
-               Assert.assertFalse(transaction.isTransactionOpen());
-       }
-
-       @Test
-       public void groupTransactions(){
-               PolicyDBDaoTransaction group = dbd.getNewTransaction();
-               String groupName = "test group 1";
-               try{
-                       group.createGroup(PolicyDBDao.createNewPDPGroupId(groupName), groupName, "this is a test group","testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               EntityManager em = emf.createEntityManager();
-               Query getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
-               getGroup.setParameter("groupId", PolicyDBDao.createNewPDPGroupId(groupName));
-               getGroup.setParameter("deleted", false);
-               List<?> groups = getGroup.getResultList();
-               if(groups.size() != 1){
-                       Assert.fail();
-               }
-               GroupEntity groupEntity = (GroupEntity)groups.get(0);
-               em.close();
-               Assert.assertEquals(groupName, groupEntity.getgroupName());
-               Assert.assertEquals("this is a test group", groupEntity.getDescription());
-               group = dbd.getNewTransaction();
-               try{
-                       OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId(groupName),Paths.get("/"));                        
-                       group.deleteGroup(groupToDelete, null,"testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
-               getGroup.setParameter("groupId", PolicyDBDao.createNewPDPGroupId(groupName));
-               getGroup.setParameter("deleted", false);
-               groups = getGroup.getResultList();
-               if(groups.size() != 0){
-                       System.out.println("Group size: "+groups.size());
-                       Assert.fail();
-               }
-               em.close();
-               //add a pdp to a group
-               group = dbd.getNewTransaction();
-               try{
-                       group.createGroup(PolicyDBDao.createNewPDPGroupId(groupName), groupName, "test group", "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               group = dbd.getNewTransaction();
-               try{
-                       group.addPdpToGroup("http://localhost:4344/pdp/", PolicyDBDao.createNewPDPGroupId(groupName), "primary", "the main pdp", 3232, "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               Query getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted");
-               getPdp.setParameter("pdpId", "http://localhost:4344/pdp/");
-               getPdp.setParameter("deleted", false);
-               List<?> pdps = getPdp.getResultList();
-               if(pdps.size() != 1){
-                       System.out.println("Group size: "+pdps.size());
-                       Assert.fail();
-               }
-               PdpEntity pdp = (PdpEntity)pdps.get(0);
-               Assert.assertEquals(groupName, pdp.getGroup().getgroupName());
-               Assert.assertEquals(pdp.getPdpName(), "primary");
-               em.close();
-               group = dbd.getNewTransaction();
-               try{
-                       group.removePdpFromGroup("http://localhost:4344/pdp/","testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted");
-               getPdp.setParameter("pdpId", "http://localhost:4344/pdp/");
-               getPdp.setParameter("deleted", false);
-               pdps = getPdp.getResultList();
-               if(pdps.size() != 0){
-                       System.out.println("Group size: "+pdps.size());
-                       Assert.fail();
-               }
-               em.close();
-               
-               //add some pdps to groups
-               group = dbd.getNewTransaction();
-               try{
-                       group.createGroup(PolicyDBDao.createNewPDPGroupId("testgroup1"), "testgroup1", "test group", "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               group = dbd.getNewTransaction();
-               try{
-                       group.createGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"), "testgroup2", "test group", "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               
-               group = dbd.getNewTransaction();
-               try{
-                       group.addPdpToGroup("http://localhost:4344/pdp/", PolicyDBDao.createNewPDPGroupId("testgroup1"), "primary", "the main pdp", 3232, "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               group = dbd.getNewTransaction();
-               try{
-                       group.addPdpToGroup("http://localhost:4345/pdp/", PolicyDBDao.createNewPDPGroupId("testgroup1"), "secondary", "the second pdp", 3233, "testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.deleted=:deleted");
-               getPdp.setParameter("deleted", false);
-               pdps = getPdp.getResultList();
-               for(Object o : pdps){
-                       Assert.assertEquals("testgroup1",((PdpEntity)o).getGroup().getgroupName());
-               }
-               em.close();
-               
-               group = dbd.getNewTransaction();
-               try{
-                       OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup1"),Paths.get("/"));
-                       OnapPDPGroup groupToMoveTo = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"),Paths.get("/"));     
-                       group.deleteGroup(groupToDelete, groupToMoveTo,"testuser");
-                       group.commitTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
-               getGroup.setParameter("groupId", "testgroup1");
-               getGroup.setParameter("deleted", false);
-               groups = getGroup.getResultList();
-               if(groups.size() != 0){
-                       System.out.println("Group size: "+groups.size());
-                       Assert.fail();
-               }
-               em.close();
-               
-               em = emf.createEntityManager();
-               getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.deleted=:deleted");
-               getPdp.setParameter("deleted", false);
-               pdps = getPdp.getResultList();
-               for(Object o : pdps){
-                       Assert.assertEquals("testgroup2",((PdpEntity)o).getGroup().getgroupName());
-               }
-               em.close();
-               
-               group = dbd.getNewTransaction();
-               try{
-                       OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"),Paths.get("/"));
-                       OnapPDPGroup groupToMoveTo = null;      
-                       group.deleteGroup(groupToDelete, groupToMoveTo,"testuser");
-                       group.commitTransaction();
-                       Assert.fail();
-               } catch(PolicyDBException pe){
-                       //good, can't delete group with pdps
-                       group.rollbackTransaction();
-               } catch(Exception e){
-                       group.rollbackTransaction();
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               
-               //update group
-               OnapPDPGroup pdpGroup = new StdPDPGroup("testgroup2", false, "newtestgroup2", "this is my new description", Paths.get("/"));
-               group = dbd.getNewTransaction();
-               try{
-                       group.updateGroup(pdpGroup, "testuser");
-                       group.commitTransaction();
-               }catch (Exception e){
-                       logger.error("Exception Occured"+e);
-                       group.rollbackTransaction();
-                       Assert.fail();
-               }
-               em = emf.createEntityManager();
-               getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
-               getGroup.setParameter("groupId", "newtestgroup2");
-               getGroup.setParameter("deleted", false);
-               groups = getGroup.getResultList();
-               if(groups.size() != 1){
-                       System.out.println("Group size: "+groups.size());
-                       Assert.fail();
-               }
-               em.close();
-               em = emf.createEntityManager();
-               getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
-               getGroup.setParameter("groupId", "testgroup2");
-               getGroup.setParameter("deleted", false);
-               groups = getGroup.getResultList();
-               if(groups.size() != 0){
-                       System.out.println("Group size: "+groups.size());
-                       Assert.fail();
-               }
-               em.close();
-       }
-       
-       @Ignore
-       @Test
-       public void threadingStabilityTest(){
-               if(logger.isDebugEnabled()){
-                       logger.debug("\n\n****************************"
-                                       + "threadingStabilityTest() entry"
-                                       + "******************************\n\n");
-               }
-                       
-               PolicyDBDaoTransaction t = dbd.getNewTransaction();
-               Assert.assertTrue(t.isTransactionOpen());
-               try {
-                       //Add 1000 ms to the timeout just to be sure it actually times out
-                       int sleepTime = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)) + 1000;
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                               + "\n   sleepTime =  " + sleepTime 
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-                       Thread.sleep(sleepTime);
-               } catch (InterruptedException e) {
-                       logger.error("Exception Occured"+e);
-               }
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   Assert.assertFalse(t.isTransactionOpen() = " + t.isTransactionOpen() + ")"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               Assert.assertFalse(t.isTransactionOpen());
-               
-               
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   a = dbd.getNewTransaction() " 
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               PolicyDBDaoTransaction a = dbd.getNewTransaction();
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   Assert.assertTrue(a.isTransactionOpen() = " + a.isTransactionOpen() + ")"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               Assert.assertTrue(a.isTransactionOpen());
-
-               try {
-                       //Add 1000 ms to the timeout just to be sure it actually times out
-                       int sleepTime = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)) + 1000;
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                               + "\n   sleepTime =  " + sleepTime 
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-                       Thread.sleep(sleepTime);
-               } catch (InterruptedException e) {
-                       logger.error("Exception Occured"+e);
-               }
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   b = dbd.getNewTransaction() " 
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               PolicyDBDaoTransaction b = dbd.getNewTransaction();
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   Assert.assertFalse(a.isTransactionOpen() = " + a.isTransactionOpen() + ")"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               Assert.assertFalse(a.isTransactionOpen());
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   Assert.assertTrue(b.isTransactionOpen() = " + b.isTransactionOpen() + ")"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               Assert.assertTrue(b.isTransactionOpen());
-               b.close();
-               
-               
-                               
-               //Now let's test the transaction wait time timeout. Shorten the wait time to 1000 ms
-               System.setProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT,"1000");
-               //And let's lengthen the transaction timeout to 5000 ms
-               System.setProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT,"5000");
-               //get a transacton
-               PolicyDBDaoTransaction t1 = dbd.getNewTransaction();
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                       + "\n   Assert.assertTrue(t1.isTransactionOpen() = " + t1.isTransactionOpen() + ")"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-               Assert.assertTrue(t1.isTransactionOpen());
-               //while it is open, get another from a different DB Dao so it will not collide on the synchronized code segment
-               //but will collide at the DB. Remember that the wait time is only 1000 ms
-               try {
-                       //Now the 2nd transaction has a wait timeout in 1000 ms
-                       PolicyDBDaoTransaction t2 = dbd2.getNewTransaction();
-                       /* 
-                        * Give it plenty of time to time out the second transaction
-                        * It will actually hang right here until it either gets the lock from the DB or the
-                        * request for the DB lock times out. The timers are very sloppy so, I have given
-                        * this plenty of leeway.
-                        */
-                       
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                               + "\n   Thread.sleep(3000)" 
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-                       Thread.sleep(3000);
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                               + "\n   Assert.assertTrue(t1.isTransactionOpen() = " + t1.isTransactionOpen() + ")"
-                                               + "\n   Assert.assertFalse(t2.isTransactionOpen() = " + t2.isTransactionOpen() + ")"
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-                       //Assert.assertTrue(t1.isTransactionOpen());
-                       //Assert.assertFalse(t2.isTransactionOpen());
-                       
-                       Assert.fail("\n\nTransaction timeout of 1000 ms exceeded without a PersistenceException\n\n");
-               } catch (PersistenceException e) {
-                       //success
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
-                                               + "\n   SUCCESS! Transaction Wait Timeout worked!"
-                                               + "\n   Caught PersistenceException = " + e
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-               } catch (Exception e) {
-                       // failure due to some other reason
-                       if(logger.isDebugEnabled()){
-                               Date date= new java.util.Date();
-                               logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() FAILURE"
-                                               + "\n   Caught Exception = " + e
-                                               + "\n   TimeStamp = " + date.getTime()
-                                               + "\n\n");
-                       }
-                       logger.error("Exception Occured"+e);
-                       Assert.fail();
-               }
-               
-               if(logger.isDebugEnabled()){
-                       Date date= new java.util.Date();
-                       logger.debug("\n\nthreadingStabilityTest() exit"
-                                       + "\n   TimeStamp = " + date.getTime()
-                                       + "\n\n");
-               }
-       }
+        mock(XACMLPolicyWriter.class);
+        try {
+            policyObject.policyAdapter.setParentPath(IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml")));
+        } catch (Exception e2) {
+            fail();
+        }
+
+        PolicyDBDaoTransaction transaction = dbd.getNewTransaction();
+        try{
+            transaction.createPolicy(policyObject, "testuser1");
+            transaction.commitTransaction();
+        } catch(Exception e){
+            transaction.rollbackTransaction();
+            Assert.fail();
+        }
+
+        EntityManager getData = emf.createEntityManager();
+        Query getDataQuery = getData.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:name");
+        getDataQuery.setParameter("scope", "com");
+        getDataQuery.setParameter("name","Config_SampleTest1206.1.xml");
+        PolicyEntity result = null;
+        try{
+            result = (PolicyEntity)getDataQuery.getSingleResult();
+        } catch(Exception e){
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        String expectedData;
+        try {
+            expectedData = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
+        } catch (IOException e1) {
+            expectedData = "";
+        }
+        Assert.assertEquals(expectedData, result.getPolicyData());
+        getData.close();
+        result = null;
+
+        transaction.commitTransaction();
+        Assert.assertFalse(transaction.isTransactionOpen());
+    }
+
+    @Test
+    public void groupTransactions(){
+        PolicyDBDaoTransaction group = dbd.getNewTransaction();
+        String groupName = "test group 1";
+        try{
+            group.createGroup(PolicyDBDao.createNewPDPGroupId(groupName), groupName, "this is a test group","testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        EntityManager em = emf.createEntityManager();
+        Query getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
+        getGroup.setParameter("groupId", PolicyDBDao.createNewPDPGroupId(groupName));
+        getGroup.setParameter("deleted", false);
+        List<?> groups = getGroup.getResultList();
+        if(groups.size() != 1){
+            Assert.fail();
+        }
+        GroupEntity groupEntity = (GroupEntity)groups.get(0);
+        em.close();
+        Assert.assertEquals(groupName, groupEntity.getgroupName());
+        Assert.assertEquals("this is a test group", groupEntity.getDescription());
+        group = dbd.getNewTransaction();
+        try{
+            OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId(groupName),Paths.get("/"));
+            group.deleteGroup(groupToDelete, null,"testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
+        getGroup.setParameter("groupId", PolicyDBDao.createNewPDPGroupId(groupName));
+        getGroup.setParameter("deleted", false);
+        groups = getGroup.getResultList();
+        if(groups.size() != 0){
+            System.out.println("Group size: "+groups.size());
+            Assert.fail();
+        }
+        em.close();
+        //add a pdp to a group
+        group = dbd.getNewTransaction();
+        try{
+            group.createGroup(PolicyDBDao.createNewPDPGroupId(groupName), groupName, "test group", "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        group = dbd.getNewTransaction();
+        try{
+            group.addPdpToGroup("http://localhost:4344/pdp/", PolicyDBDao.createNewPDPGroupId(groupName), "primary", "the main pdp", 3232, "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        Query getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted");
+        getPdp.setParameter("pdpId", "http://localhost:4344/pdp/");
+        getPdp.setParameter("deleted", false);
+        List<?> pdps = getPdp.getResultList();
+        if(pdps.size() != 1){
+            System.out.println("Group size: "+pdps.size());
+            Assert.fail();
+        }
+        PdpEntity pdp = (PdpEntity)pdps.get(0);
+        Assert.assertEquals(groupName, pdp.getGroup().getgroupName());
+        Assert.assertEquals(pdp.getPdpName(), "primary");
+        em.close();
+        group = dbd.getNewTransaction();
+        try{
+            group.removePdpFromGroup("http://localhost:4344/pdp/","testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted");
+        getPdp.setParameter("pdpId", "http://localhost:4344/pdp/");
+        getPdp.setParameter("deleted", false);
+        pdps = getPdp.getResultList();
+        if(pdps.size() != 0){
+            System.out.println("Group size: "+pdps.size());
+            Assert.fail();
+        }
+        em.close();
+
+        //add some pdps to groups
+        group = dbd.getNewTransaction();
+        try{
+            group.createGroup(PolicyDBDao.createNewPDPGroupId("testgroup1"), "testgroup1", "test group", "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        group = dbd.getNewTransaction();
+        try{
+            group.createGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"), "testgroup2", "test group", "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+
+        group = dbd.getNewTransaction();
+        try{
+            group.addPdpToGroup("http://localhost:4344/pdp/", PolicyDBDao.createNewPDPGroupId("testgroup1"), "primary", "the main pdp", 3232, "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        group = dbd.getNewTransaction();
+        try{
+            group.addPdpToGroup("http://localhost:4345/pdp/", PolicyDBDao.createNewPDPGroupId("testgroup1"), "secondary", "the second pdp", 3233, "testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.deleted=:deleted");
+        getPdp.setParameter("deleted", false);
+        pdps = getPdp.getResultList();
+        for(Object o : pdps){
+            Assert.assertEquals("testgroup1",((PdpEntity)o).getGroup().getgroupName());
+        }
+        em.close();
+
+        group = dbd.getNewTransaction();
+        try{
+            OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup1"),Paths.get("/"));
+            OnapPDPGroup groupToMoveTo = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"),Paths.get("/"));
+            group.deleteGroup(groupToDelete, groupToMoveTo,"testuser");
+            group.commitTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
+        getGroup.setParameter("groupId", "testgroup1");
+        getGroup.setParameter("deleted", false);
+        groups = getGroup.getResultList();
+        if(groups.size() != 0){
+            System.out.println("Group size: "+groups.size());
+            Assert.fail();
+        }
+        em.close();
+
+        em = emf.createEntityManager();
+        getPdp = em.createQuery("SELECT p FROM PdpEntity p WHERE p.deleted=:deleted");
+        getPdp.setParameter("deleted", false);
+        pdps = getPdp.getResultList();
+        for(Object o : pdps){
+            Assert.assertEquals("testgroup2",((PdpEntity)o).getGroup().getgroupName());
+        }
+        em.close();
+
+        group = dbd.getNewTransaction();
+        try{
+            OnapPDPGroup groupToDelete = new StdPDPGroup(PolicyDBDao.createNewPDPGroupId("testgroup2"),Paths.get("/"));
+            OnapPDPGroup groupToMoveTo = null;
+            group.deleteGroup(groupToDelete, groupToMoveTo,"testuser");
+            group.commitTransaction();
+            Assert.fail();
+        } catch(PolicyDBException pe){
+            //good, can't delete group with pdps
+            group.rollbackTransaction();
+        } catch(Exception e){
+            group.rollbackTransaction();
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+
+        //update group
+        OnapPDPGroup pdpGroup = new StdPDPGroup("testgroup2", false, "newtestgroup2", "this is my new description", Paths.get("/"));
+        group = dbd.getNewTransaction();
+        try{
+            group.updateGroup(pdpGroup, "testuser");
+            group.commitTransaction();
+        }catch (Exception e){
+            logger.error("Exception Occured"+e);
+            group.rollbackTransaction();
+            Assert.fail();
+        }
+        em = emf.createEntityManager();
+        getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
+        getGroup.setParameter("groupId", "newtestgroup2");
+        getGroup.setParameter("deleted", false);
+        groups = getGroup.getResultList();
+        if(groups.size() != 1){
+            System.out.println("Group size: "+groups.size());
+            Assert.fail();
+        }
+        em.close();
+        em = emf.createEntityManager();
+        getGroup = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted");
+        getGroup.setParameter("groupId", "testgroup2");
+        getGroup.setParameter("deleted", false);
+        groups = getGroup.getResultList();
+        if(groups.size() != 0){
+            System.out.println("Group size: "+groups.size());
+            Assert.fail();
+        }
+        em.close();
+    }
+
+    @Ignore
+    @Test
+    public void threadingStabilityTest(){
+        if(logger.isDebugEnabled()){
+            logger.debug("\n\n****************************"
+                    + "threadingStabilityTest() entry"
+                    + "******************************\n\n");
+        }
+
+        PolicyDBDaoTransaction t = dbd.getNewTransaction();
+        Assert.assertTrue(t.isTransactionOpen());
+        try {
+            //Add 1000 ms to the timeout just to be sure it actually times out
+            int sleepTime = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)) + 1000;
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                        + "\n   sleepTime =  " + sleepTime
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+            Thread.sleep(sleepTime);
+        } catch (InterruptedException e) {
+            logger.error("Exception Occured"+e);
+        }
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   Assert.assertFalse(t.isTransactionOpen() = " + t.isTransactionOpen() + ")"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        Assert.assertFalse(t.isTransactionOpen());
+
+
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   a = dbd.getNewTransaction() "
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        PolicyDBDaoTransaction a = dbd.getNewTransaction();
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   Assert.assertTrue(a.isTransactionOpen() = " + a.isTransactionOpen() + ")"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        Assert.assertTrue(a.isTransactionOpen());
+
+        try {
+            //Add 1000 ms to the timeout just to be sure it actually times out
+            int sleepTime = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)) + 1000;
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                        + "\n   sleepTime =  " + sleepTime
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+            Thread.sleep(sleepTime);
+        } catch (InterruptedException e) {
+            logger.error("Exception Occured"+e);
+        }
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   b = dbd.getNewTransaction() "
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        PolicyDBDaoTransaction b = dbd.getNewTransaction();
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   Assert.assertFalse(a.isTransactionOpen() = " + a.isTransactionOpen() + ")"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        Assert.assertFalse(a.isTransactionOpen());
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   Assert.assertTrue(b.isTransactionOpen() = " + b.isTransactionOpen() + ")"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        Assert.assertTrue(b.isTransactionOpen());
+        b.close();
+
+
+
+        //Now let's test the transaction wait time timeout. Shorten the wait time to 1000 ms
+        System.setProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT,"1000");
+        //And let's lengthen the transaction timeout to 5000 ms
+        System.setProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT,"5000");
+        //get a transacton
+        PolicyDBDaoTransaction t1 = dbd.getNewTransaction();
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                    + "\n   Assert.assertTrue(t1.isTransactionOpen() = " + t1.isTransactionOpen() + ")"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+        Assert.assertTrue(t1.isTransactionOpen());
+        //while it is open, get another from a different DB Dao so it will not collide on the synchronized code segment
+        //but will collide at the DB. Remember that the wait time is only 1000 ms
+        try {
+            //Now the 2nd transaction has a wait timeout in 1000 ms
+            PolicyDBDaoTransaction t2 = dbd2.getNewTransaction();
+            /*
+             * Give it plenty of time to time out the second transaction
+             * It will actually hang right here until it either gets the lock from the DB or the
+             * request for the DB lock times out. The timers are very sloppy so, I have given
+             * this plenty of leeway.
+             */
+
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                        + "\n   Thread.sleep(3000)"
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+            Thread.sleep(3000);
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                        + "\n   Assert.assertTrue(t1.isTransactionOpen() = " + t1.isTransactionOpen() + ")"
+                        + "\n   Assert.assertFalse(t2.isTransactionOpen() = " + t2.isTransactionOpen() + ")"
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+            //Assert.assertTrue(t1.isTransactionOpen());
+            //Assert.assertFalse(t2.isTransactionOpen());
+
+            Assert.fail("\n\nTransaction timeout of 1000 ms exceeded without a PersistenceException\n\n");
+        } catch (PersistenceException e) {
+            //success
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() "
+                        + "\n   SUCCESS! Transaction Wait Timeout worked!"
+                        + "\n   Caught PersistenceException = " + e
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+        } catch (Exception e) {
+            // failure due to some other reason
+            if(logger.isDebugEnabled()){
+                Date date= new java.util.Date();
+                logger.debug("\n\nPolicyDBDaoTest.threadingStabilityTest() FAILURE"
+                        + "\n   Caught Exception = " + e
+                        + "\n   TimeStamp = " + date.getTime()
+                        + "\n\n");
+            }
+            logger.error("Exception Occured"+e);
+            Assert.fail();
+        }
+
+        if(logger.isDebugEnabled()){
+            Date date= new java.util.Date();
+            logger.debug("\n\nthreadingStabilityTest() exit"
+                    + "\n   TimeStamp = " + date.getTime()
+                    + "\n\n");
+        }
+    }
 
 }
\ No newline at end of file
index 6fa480c..efb13b5 100644 (file)
@@ -46,117 +46,117 @@ import org.springframework.mock.web.MockHttpServletResponse;
 
 public class ActionPolicyDictionaryControllerTest {
 
-       private static Logger logger = FlexLogger.getLogger(ActionPolicyDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private ActionPolicyDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
+    private static Logger logger = FlexLogger.getLogger(ActionPolicyDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private ActionPolicyDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
 
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               List<String>  data = new ArrayList<>();
-               List<Object>  objectData = new ArrayList<>();
-               data.add("Test");
-               
-               UserInfo userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-               
-               ActionPolicyDict actionData = new ActionPolicyDict();
-               actionData.setAttributeName("Test");
-               assertTrue("Test".equals(actionData.getAttributeName()));
-               actionData.setBody("Test");
-               assertTrue("Test".equals(actionData.getBody()));
-               actionData.setCreatedDate(new Date());
-               assertTrue(actionData.getCreatedDate()!= null);
-               actionData.setModifiedDate(new Date());
-               assertTrue(actionData.getModifiedDate()!= null);
-               actionData.setHeader("Test");
-               assertTrue("Test".equals(actionData.getHeader()));
-               actionData.setMethod("POST");
-               assertTrue("POST".equals(actionData.getMethod()));
-               actionData.setType("Test");
-               assertTrue("Test".equals(actionData.getType()));
-               actionData.setUrl("http://test.com");
-               assertTrue("http://test.com".equals(actionData.getUrl()));
-               actionData.setUserCreatedBy(userInfo);
-               assertTrue(actionData.getUserCreatedBy()!= null);
-               actionData.setUserModifiedBy(userInfo);
-               assertTrue(actionData.getUserModifiedBy()!= null);
-               
-               objectData.add(actionData);
-               when(commonClassDao.getDataByColumn(ActionPolicyDict.class, "attributeName")).thenReturn(data);
-               when(commonClassDao.getData(ActionPolicyDict.class)).thenReturn(objectData);
-               doNothing().when(commonClassDao).delete(new ActionPolicyDict());
-               doNothing().when(commonClassDao).save(new ActionPolicyDict());
-               controller = new ActionPolicyDictionaryController();
-               controller.setCommonClassDao(commonClassDao);
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               new DictionaryUtils(commonClassDao);
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+        List<String>  data = new ArrayList<>();
+        List<Object>  objectData = new ArrayList<>();
+        data.add("Test");
+
+        UserInfo userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        ActionPolicyDict actionData = new ActionPolicyDict();
+        actionData.setAttributeName("Test");
+        assertTrue("Test".equals(actionData.getAttributeName()));
+        actionData.setBody("Test");
+        assertTrue("Test".equals(actionData.getBody()));
+        actionData.setCreatedDate(new Date());
+        assertTrue(actionData.getCreatedDate()!= null);
+        actionData.setModifiedDate(new Date());
+        assertTrue(actionData.getModifiedDate()!= null);
+        actionData.setHeader("Test");
+        assertTrue("Test".equals(actionData.getHeader()));
+        actionData.setMethod("POST");
+        assertTrue("POST".equals(actionData.getMethod()));
+        actionData.setType("Test");
+        assertTrue("Test".equals(actionData.getType()));
+        actionData.setUrl("http://test.com");
+        assertTrue("http://test.com".equals(actionData.getUrl()));
+        actionData.setUserCreatedBy(userInfo);
+        assertTrue(actionData.getUserCreatedBy()!= null);
+        actionData.setUserModifiedBy(userInfo);
+        assertTrue(actionData.getUserModifiedBy()!= null);
+
+        objectData.add(actionData);
+        when(commonClassDao.getDataByColumn(ActionPolicyDict.class, "attributeName")).thenReturn(data);
+        when(commonClassDao.getData(ActionPolicyDict.class)).thenReturn(objectData);
+        doNothing().when(commonClassDao).delete(new ActionPolicyDict());
+        doNothing().when(commonClassDao).save(new ActionPolicyDict());
+        controller = new ActionPolicyDictionaryController();
+        controller.setCommonClassDao(commonClassDao);
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testGetActionEntitybyName(){
-               controller.getActionEntitybyName(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetActionPolicyDictionaryEntityData(){
-               controller.getActionPolicyDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testSaveActionPolicyDictionary(){
-               jsonString = "{\"actionPolicyDictionaryData\":{\"attributeName\":\"Test\",\"body\":\"{}\",\"description\":\"test\",\"headers\":[{\"$$hashKey\":\"object:548\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"method\":\"GET\",\"type\":\"REST\",\"url\":\"http://test.com\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveActionPolicyDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateActionPolicyDictionary(){
-               jsonString = "{\"actionPolicyDictionaryData\":{\"id\":1,\"attributeName\":\"Test\",\"body\":\"{}\",\"description\":\"test\",\"headers\":[{\"$$hashKey\":\"object:548\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"method\":\"GET\",\"type\":\"REST\",\"url\":\"http://test.com\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveActionPolicyDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveActionPolicyDictionary(){
-               jsonString = "{\"data\":{\"$$hashKey\":\"uiGrid-003S\",\"attributeName\":\"Test\",\"body\":\"{}\",\"createdDate\":1518195117000,\"description\":\"test\",\"header\":\"test=12\",\"id\":1,\"method\":\"GET\",\"modifiedDate\":1518195489000,\"type\":\"REST\",\"url\":\"http://test.com\",\"userCreatedBy\":{\"userLoginId\":\"demo\",\"userName\":\"Demo\"},\"userModifiedBy\":{\"userLoginId\":\"demo\",\"userName\":\"Demo\"}}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeActionPolicyDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testGetActionEntitybyName(){
+        controller.getActionEntitybyName(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetActionPolicyDictionaryEntityData(){
+        controller.getActionPolicyDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testSaveActionPolicyDictionary(){
+        jsonString = "{\"actionPolicyDictionaryData\":{\"attributeName\":\"Test\",\"body\":\"{}\",\"description\":\"test\",\"headers\":[{\"$$hashKey\":\"object:548\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"method\":\"GET\",\"type\":\"REST\",\"url\":\"http://test.com\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveActionPolicyDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateActionPolicyDictionary(){
+        jsonString = "{\"actionPolicyDictionaryData\":{\"id\":1,\"attributeName\":\"Test\",\"body\":\"{}\",\"description\":\"test\",\"headers\":[{\"$$hashKey\":\"object:548\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"method\":\"GET\",\"type\":\"REST\",\"url\":\"http://test.com\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveActionPolicyDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveActionPolicyDictionary(){
+        jsonString = "{\"data\":{\"$$hashKey\":\"uiGrid-003S\",\"attributeName\":\"Test\",\"body\":\"{}\",\"createdDate\":1518195117000,\"description\":\"test\",\"header\":\"test=12\",\"id\":1,\"method\":\"GET\",\"modifiedDate\":1518195489000,\"type\":\"REST\",\"url\":\"http://test.com\",\"userCreatedBy\":{\"userLoginId\":\"demo\",\"userName\":\"Demo\"},\"userModifiedBy\":{\"userLoginId\":\"demo\",\"userName\":\"Demo\"}}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeActionPolicyDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("actionPolicyDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
 }
index 0a60e18..d34e505 100644 (file)
@@ -46,217 +46,217 @@ import org.springframework.mock.web.MockHttpServletResponse;
 
 public class BRMSDictionaryControllerTest {
 
-       private static Logger logger = FlexLogger.getLogger(BRMSDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private BRMSDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
+    private static Logger logger = FlexLogger.getLogger(BRMSDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private BRMSDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
 
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               UserInfo userInfo = new UserInfo();
-               userInfo.setUserLoginId("testUserId");
-               userInfo.setUserName("John");
-               when(commonClassDao.getEntityItem(UserInfo.class, "userLoginId", "testing")).thenReturn(userInfo);
-               List<String>  brms = new ArrayList<String>();
-               brms.add("BRMS-Model");
-               when(commonClassDao.getDataByColumn(BRMSParamTemplate.class, "name")).thenReturn(brms);
-               doNothing().when(commonClassDao).delete(new BRMSParamTemplate());
-               doNothing().when(commonClassDao).save(new BRMSParamTemplate());
-               controller = new BRMSDictionaryController();
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               new DictionaryUtils(commonClassDao);
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+        UserInfo userInfo = new UserInfo();
+        userInfo.setUserLoginId("testUserId");
+        userInfo.setUserName("John");
+        when(commonClassDao.getEntityItem(UserInfo.class, "userLoginId", "testing")).thenReturn(userInfo);
+        List<String>  brms = new ArrayList<String>();
+        brms.add("BRMS-Model");
+        when(commonClassDao.getDataByColumn(BRMSParamTemplate.class, "name")).thenReturn(brms);
+        doNothing().when(commonClassDao).delete(new BRMSParamTemplate());
+        doNothing().when(commonClassDao).save(new BRMSParamTemplate());
+        controller = new BRMSDictionaryController();
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
+        logger.info("setUp: exit");
+    }
 
-       @Test
-       public void testGetBRMSParamDictionaryByNameEntityData(){
-               logger.info("testGetBRMSParamDictionaryByNameEntityData: Entering");
-               BRMSDictionaryController.setCommonClassDao(commonClassDao);     
-               controller.getBRMSParamDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testGetBRMSParamDictionaryByNameEntityData: exit");
-       }
+    @Test
+    public void testGetBRMSParamDictionaryByNameEntityData(){
+        logger.info("testGetBRMSParamDictionaryByNameEntityData: Entering");
+        BRMSDictionaryController.setCommonClassDao(commonClassDao);
+        controller.getBRMSParamDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testGetBRMSParamDictionaryByNameEntityData: exit");
+    }
 
-       @Test
-       public void testGetBRMSParamDictionaryEntityData() {
-               logger.info("testGetBRMSParamDictionaryEntityData: Entering");
-               controller.getBRMSParamDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testGetBRMSParamDictionaryEntityData: exit");
-       }
+    @Test
+    public void testGetBRMSParamDictionaryEntityData() {
+        logger.info("testGetBRMSParamDictionaryEntityData: Entering");
+        controller.getBRMSParamDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testGetBRMSParamDictionaryEntityData: exit");
+    }
 
-       @Test
-       public void testSaveBRMSParamDictionary() {
-               logger.info("testSaveBRMSParamDictionary: Entering");
-               jsonString = "{\"brmsParamDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveBRMSParamDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryData"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-               logger.info("testSaveBRMSParamDictionary: exit");
-       }
+    @Test
+    public void testSaveBRMSParamDictionary() {
+        logger.info("testSaveBRMSParamDictionary: Entering");
+        jsonString = "{\"brmsParamDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveBRMSParamDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryData"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+        logger.info("testSaveBRMSParamDictionary: exit");
+    }
 
-       @Test
-       public void testRemoveBRMSParamDictionary() {
-               logger.info("testRemoveBRMSParamDictionary: Entering");
-               jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeBRMSParamDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testRemoveBRMSParamDictionary: exit");
-       }
+    @Test
+    public void testRemoveBRMSParamDictionary() {
+        logger.info("testRemoveBRMSParamDictionary: Entering");
+        jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeBRMSParamDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsParamDictionaryDatas"));
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testRemoveBRMSParamDictionary: exit");
+    }
 
-       @Test
-       public void testGetBRMSDependencyDictionaryByNameEntityData(){
-               logger.info("testGetBRMSDependencyDictionaryByNameEntityData: Entering");
-               BRMSDictionaryController.setCommonClassDao(commonClassDao);     
-               controller.getBRMSDependencyDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testGetBRMSDependencyDictionaryByNameEntityData: exit");
-       }
+    @Test
+    public void testGetBRMSDependencyDictionaryByNameEntityData(){
+        logger.info("testGetBRMSDependencyDictionaryByNameEntityData: Entering");
+        BRMSDictionaryController.setCommonClassDao(commonClassDao);
+        controller.getBRMSDependencyDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testGetBRMSDependencyDictionaryByNameEntityData: exit");
+    }
 
-       @Test
-       public void testGetBRMSDependencyDictionaryEntityData(){
-               logger.info("testGetBRMSDependencyDictionaryEntityData: Entering");
-               BRMSDictionaryController.setCommonClassDao(commonClassDao);     
-               controller.getBRMSDependencyDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
+    @Test
+    public void testGetBRMSDependencyDictionaryEntityData(){
+        logger.info("testGetBRMSDependencyDictionaryEntityData: Entering");
+        BRMSDictionaryController.setCommonClassDao(commonClassDao);
+        controller.getBRMSDependencyDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
 
-               logger.info("testGetBRMSDependencyDictionaryEntityData: exit");
-       }
+        logger.info("testGetBRMSDependencyDictionaryEntityData: exit");
+    }
 
-       @Test
-       public void testSaveBRMSDependencyDictionary() {
-               logger.info("testSaveBRMSDependencyDictionary: Entering");
-                       jsonString = "{\"brmsDependencyDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
-                       try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                               when(request.getReader()).thenReturn(br);                   
-                               controller.saveBRMSDependencyDictionary(request, response);
-                               logger.info("response.getContentAsString(): " + response.getContentAsString());
-                               assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryData"));
-                       } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testSaveBRMSDependencyDictionary: exit");
-       }
+    @Test
+    public void testSaveBRMSDependencyDictionary() {
+        logger.info("testSaveBRMSDependencyDictionary: Entering");
+            jsonString = "{\"brmsDependencyDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
+            try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+                when(request.getReader()).thenReturn(br);
+                controller.saveBRMSDependencyDictionary(request, response);
+                logger.info("response.getContentAsString(): " + response.getContentAsString());
+                assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryData"));
+            } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testSaveBRMSDependencyDictionary: exit");
+    }
 
-       @Test
-       public void testRemoveBRMSDependencyDictionary() {
-               logger.info("testRemoveBRMSDependencyDictionary: Entering");
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               request = mock(HttpServletRequest.class);   
-               jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeBRMSDependencyDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testRemoveBRMSDependencyDictionary: exit");
-       }
+    @Test
+    public void testRemoveBRMSDependencyDictionary() {
+        logger.info("testRemoveBRMSDependencyDictionary: Entering");
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+        jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeBRMSDependencyDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsDependencyDictionaryDatas"));
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testRemoveBRMSDependencyDictionary: exit");
+    }
 
-       @Test
-       public void testGetBRMSControllerDictionaryByNameEntityData(){
-               logger.info("testGetBRMSControllerDictionaryByNameEntityData: Entering");
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               BRMSDictionaryController.setCommonClassDao(commonClassDao);     
-               controller.getBRMSControllerDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testGetBRMSControllerDictionaryByNameEntityData: exit");
-       }
+    @Test
+    public void testGetBRMSControllerDictionaryByNameEntityData(){
+        logger.info("testGetBRMSControllerDictionaryByNameEntityData: Entering");
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        BRMSDictionaryController.setCommonClassDao(commonClassDao);
+        controller.getBRMSControllerDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testGetBRMSControllerDictionaryByNameEntityData: exit");
+    }
 
-       @Test
-       public void testGetBRMSControllerDictionaryEntityData(){
-               logger.info("testGetBRMSControllerDictionaryEntityData: Entering");
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               BRMSDictionaryController.setCommonClassDao(commonClassDao);     
-               controller.getBRMSControllerDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testGetBRMSControllerDictionaryEntityData: exit");
-       }
+    @Test
+    public void testGetBRMSControllerDictionaryEntityData(){
+        logger.info("testGetBRMSControllerDictionaryEntityData: Entering");
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        BRMSDictionaryController.setCommonClassDao(commonClassDao);
+        controller.getBRMSControllerDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testGetBRMSControllerDictionaryEntityData: exit");
+    }
 
-       @Test
-       public void testSaveBRMSControllerDictionary() {
-               logger.info("testSaveBRMSControllerDictionary: Entering");
+    @Test
+    public void testSaveBRMSControllerDictionary() {
+        logger.info("testSaveBRMSControllerDictionary: Entering");
 
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               request = mock(HttpServletRequest.class);   
-               jsonString = "{\"brmsControllerDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveBRMSControllerDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryData"));
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testSaveBRMSControllerDictionary: exit");
-       }
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+        jsonString = "{\"brmsControllerDictionaryData\": {\"ruleName\": \"test\",\"rule\": \"test\"},\"userid\": \"testName\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveBRMSControllerDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryData"));
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testSaveBRMSControllerDictionary: exit");
+    }
 
-       @Test
-       public void testRemoveBRMSControllerDictionary() {
-               logger.info("testRemoveBRMSControllerDictionary: Entering");
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               request = mock(HttpServletRequest.class);
-               jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeBRMSControllerDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
+    @Test
+    public void testRemoveBRMSControllerDictionary() {
+        logger.info("testRemoveBRMSControllerDictionary: Entering");
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+        jsonString = "{\"data\": {\"ruleName\": \"test\",\"rule\": \"test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeBRMSControllerDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("brmsControllerDictionaryDatas"));
 
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               logger.info("testRemoveBRMSControllerDictionary: exit");
-       }
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+        logger.info("testRemoveBRMSControllerDictionary: exit");
+    }
 }
 
index ea1ea3b..f530b4c 100644 (file)
@@ -49,399 +49,399 @@ import org.onap.policy.rest.jpa.VarbindDictionary;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class ClosedLoopDictionaryControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(ClosedLoopDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private ClosedLoopDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
-       private UserInfo userInfo;
-       private List<String>  data;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               
-               data = new ArrayList<>();
-               data.add("Test");
-               
-               userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-       
-               doNothing().when(commonClassDao).delete(new VSCLAction());
-               doNothing().when(commonClassDao).save(new VSCLAction());
-               
-               controller = new ClosedLoopDictionaryController();
-               controller.setCommonClassDao(commonClassDao);
-               
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               new DictionaryUtils(commonClassDao);
+
+    private static Logger logger = FlexLogger.getLogger(ClosedLoopDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private ClosedLoopDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
+    private UserInfo userInfo;
+    private List<String>  data;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+
+        data = new ArrayList<>();
+        data.add("Test");
+
+        userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        doNothing().when(commonClassDao).delete(new VSCLAction());
+        doNothing().when(commonClassDao).save(new VSCLAction());
+
+        controller = new ClosedLoopDictionaryController();
+        controller.setCommonClassDao(commonClassDao);
+
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testGetVSCLActionDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(VSCLAction.class, "vsclaction")).thenReturn(data);
-               controller.getVSCLActionDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetVSCLActionDictionaryEntityData(){
-               when(commonClassDao.getData(VSCLAction.class)).thenReturn(new ArrayList<>());
-               controller.getVSCLActionDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetVNFTypeDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(VNFType.class, "vnftype")).thenReturn(data);
-               controller.getVNFTypeDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetVNFTypeDictionaryEntityData(){
-               when(commonClassDao.getData(VNFType.class)).thenReturn(new ArrayList<>());
-               controller.getVNFTypeDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPEPOptionsDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(PEPOptions.class, "pepName")).thenReturn(data);
-               controller.getPEPOptionsDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPEPOptionsDictionaryEntityData(){
-               when(commonClassDao.getData(PEPOptions.class)).thenReturn(new ArrayList<>());
-               controller.getPEPOptionsDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetVarbindDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(VarbindDictionary.class, "varbindName")).thenReturn(data);
-               controller.getVarbindDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetVarbindDictionaryEntityData(){
-               when(commonClassDao.getData(VarbindDictionary.class)).thenReturn(new ArrayList<>());
-               controller.getVarbindDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetClosedLoopServiceDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(ClosedLoopD2Services.class, "serviceName")).thenReturn(data);
-               controller.getClosedLoopServiceDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetClosedLoopServiceDictionaryEntityData(){
-               when(commonClassDao.getData(ClosedLoopD2Services.class)).thenReturn(new ArrayList<>());
-               controller.getClosedLoopServiceDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetClosedLoopSiteDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(ClosedLoopSite.class, "siteName")).thenReturn(data);
-               controller.getClosedLoopSiteDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetClosedLoopSiteDictionaryEntityData(){
-               when(commonClassDao.getData(ClosedLoopSite.class)).thenReturn(new ArrayList<>());
-               controller.getClosedLoopSiteDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testSaveVSCLAction(){
-               jsonString = "{\"userid\":\"demo\",\"vsclActionDictionaryData\":{\"description\":\"test\",\"vsclaction\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVSCLAction(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateVSCLAction(){
-               jsonString = "{\"userid\":\"demo\",\"vsclActionDictionaryData\":{\"id\":1,\"description\":\"test\",\"vsclaction\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVSCLAction(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveVSCLAction(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"vsclaction\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeVSCLAction(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSaveVnfType(){
-               jsonString = "{\"userid\":\"demo\",\"vnfTypeDictionaryData\":{\"description\":\"test\",\"vnftype\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVnfType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateVnfType(){
-               jsonString = "{\"userid\":\"demo\",\"vnfTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"vnftype\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVnfType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveVnfType(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"vnftype\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeVnfType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSavePEPOptions(){
-               jsonString = "{\"pepOptionsDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePEPOptions(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePEPOptions(){
-               jsonString = "{\"pepOptionsDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\",\"id\":1},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePEPOptions(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePEPOptions(){
-               jsonString = "{\"data\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePEPOptions(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSaveServiceType(){
-               jsonString = "{\"userid\":\"demo\",\"closedLoopServiceDictionaryData\":{\"description\":\"test\",\"serviceName\":\"Test\",\"id\":1}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveServiceType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateServiceType(){
-               jsonString = "{\"userid\":\"demo\",\"closedLoopServiceDictionaryData\":{\"id\":1,\"description\":\"test\",\"serviceName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveServiceType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveServiceType(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"serviceName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeServiceType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSaveSiteType(){
-               jsonString = "{\"userid\":\"demo\",\"closedLoopSiteDictionaryData\":{\"description\":\"test\",\"siteName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveSiteType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateSiteType(){
-               jsonString = "{\"userid\":\"demo\",\"closedLoopSiteDictionaryData\":{\"id\":1,\"description\":\"test\",\"siteName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveSiteType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveSiteType(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"siteName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeSiteType(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSaveVarbind(){
-               jsonString = "{\"userid\":\"demo\",\"varbindDictionaryData\":{\"description\":\"test\",\"varbindName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVarbind(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateVarbind(){
-               jsonString = "{\"userid\":\"demo\",\"varbindDictionaryData\":{\"id\":1,\"description\":\"test\",\"varbindName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveVarbind(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveVarbind(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"varbindName\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeVarbind(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testGetVSCLActionDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(VSCLAction.class, "vsclaction")).thenReturn(data);
+        controller.getVSCLActionDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetVSCLActionDictionaryEntityData(){
+        when(commonClassDao.getData(VSCLAction.class)).thenReturn(new ArrayList<>());
+        controller.getVSCLActionDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetVNFTypeDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(VNFType.class, "vnftype")).thenReturn(data);
+        controller.getVNFTypeDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetVNFTypeDictionaryEntityData(){
+        when(commonClassDao.getData(VNFType.class)).thenReturn(new ArrayList<>());
+        controller.getVNFTypeDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPEPOptionsDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(PEPOptions.class, "pepName")).thenReturn(data);
+        controller.getPEPOptionsDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPEPOptionsDictionaryEntityData(){
+        when(commonClassDao.getData(PEPOptions.class)).thenReturn(new ArrayList<>());
+        controller.getPEPOptionsDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetVarbindDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(VarbindDictionary.class, "varbindName")).thenReturn(data);
+        controller.getVarbindDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetVarbindDictionaryEntityData(){
+        when(commonClassDao.getData(VarbindDictionary.class)).thenReturn(new ArrayList<>());
+        controller.getVarbindDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetClosedLoopServiceDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(ClosedLoopD2Services.class, "serviceName")).thenReturn(data);
+        controller.getClosedLoopServiceDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetClosedLoopServiceDictionaryEntityData(){
+        when(commonClassDao.getData(ClosedLoopD2Services.class)).thenReturn(new ArrayList<>());
+        controller.getClosedLoopServiceDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetClosedLoopSiteDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(ClosedLoopSite.class, "siteName")).thenReturn(data);
+        controller.getClosedLoopSiteDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetClosedLoopSiteDictionaryEntityData(){
+        when(commonClassDao.getData(ClosedLoopSite.class)).thenReturn(new ArrayList<>());
+        controller.getClosedLoopSiteDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testSaveVSCLAction(){
+        jsonString = "{\"userid\":\"demo\",\"vsclActionDictionaryData\":{\"description\":\"test\",\"vsclaction\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVSCLAction(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateVSCLAction(){
+        jsonString = "{\"userid\":\"demo\",\"vsclActionDictionaryData\":{\"id\":1,\"description\":\"test\",\"vsclaction\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVSCLAction(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveVSCLAction(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"vsclaction\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeVSCLAction(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vsclActionDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSaveVnfType(){
+        jsonString = "{\"userid\":\"demo\",\"vnfTypeDictionaryData\":{\"description\":\"test\",\"vnftype\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVnfType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateVnfType(){
+        jsonString = "{\"userid\":\"demo\",\"vnfTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"vnftype\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVnfType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveVnfType(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"vnftype\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeVnfType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("vnfTypeDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSavePEPOptions(){
+        jsonString = "{\"pepOptionsDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePEPOptions(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePEPOptions(){
+        jsonString = "{\"pepOptionsDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\",\"id\":1},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePEPOptions(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePEPOptions(){
+        jsonString = "{\"data\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"pepName\":\"Test\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePEPOptions(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("pepOptionsDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSaveServiceType(){
+        jsonString = "{\"userid\":\"demo\",\"closedLoopServiceDictionaryData\":{\"description\":\"test\",\"serviceName\":\"Test\",\"id\":1}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveServiceType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateServiceType(){
+        jsonString = "{\"userid\":\"demo\",\"closedLoopServiceDictionaryData\":{\"id\":1,\"description\":\"test\",\"serviceName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveServiceType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveServiceType(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"serviceName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeServiceType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopServiceDictionaryData"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSaveSiteType(){
+        jsonString = "{\"userid\":\"demo\",\"closedLoopSiteDictionaryData\":{\"description\":\"test\",\"siteName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveSiteType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateSiteType(){
+        jsonString = "{\"userid\":\"demo\",\"closedLoopSiteDictionaryData\":{\"id\":1,\"description\":\"test\",\"siteName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveSiteType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveSiteType(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"siteName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeSiteType(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("closedLoopSiteDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSaveVarbind(){
+        jsonString = "{\"userid\":\"demo\",\"varbindDictionaryData\":{\"description\":\"test\",\"varbindName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVarbind(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateVarbind(){
+        jsonString = "{\"userid\":\"demo\",\"varbindDictionaryData\":{\"id\":1,\"description\":\"test\",\"varbindName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveVarbind(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveVarbind(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"varbindName\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeVarbind(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("varbindDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
 }
index 2e8c63c..7910aed 100644 (file)
@@ -40,26 +40,26 @@ import org.onap.policy.rest.dao.CommonClassDao;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class DecisionPolicyDictionaryControllerTest {
-       private static Logger logger = FlexLogger.getLogger(DecisionPolicyDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private DecisionPolicyDictionaryController controller = null;
-       
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
+    private static Logger logger = FlexLogger.getLogger(DecisionPolicyDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private DecisionPolicyDictionaryController controller = null;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
         commonClassDao = Mockito.mock(CommonClassDao.class);
-           HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+        HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
         
-               jsonString = "{\"attributeDictionaryDatas\": {\"error\": \"\",  \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                               + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                               + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                               + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                               + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                               + "     \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                               + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                               + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+        jsonString = "{\"attributeDictionaryDatas\": {\"error\": \"\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                + " \"version\": \"\",\"createdBy\": \"someone\",      \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"   },"
+                + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                + "    \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                + "    \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                + "    \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
 
         BufferedReader br = new BufferedReader(new StringReader(jsonString));
         
@@ -71,206 +71,206 @@ public class DecisionPolicyDictionaryControllerTest {
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
         logger.info("setUp: exit");
-       }
-
-       @After
-       public void tearDown() throws Exception {
-       }
-
-       @Test
-       public void testGetSettingsDictionaryByNameEntityData() {
-               logger.info("testGetSettingsDictionaryByNameEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getSettingsDictionaryByNameEntityData(request, response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetSettingsDictionaryByNameEntityData: exit"); 
-               
-       }
-
-       @Test
-       public void testGetSettingsDictionaryEntityData() {
-               logger.info("testGetSettingsDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getSettingsDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetSettingsDictionaryEntityData: exit");
-               
-       }
-
-       @Test
-       public void testSaveSettingsDictionary() {
-               logger.info("testSaveSettingsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);  
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    @Test
+    public void testGetSettingsDictionaryByNameEntityData() {
+        logger.info("testGetSettingsDictionaryByNameEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getSettingsDictionaryByNameEntityData(request, response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetSettingsDictionaryByNameEntityData: exit");
+
+    }
+
+    @Test
+    public void testGetSettingsDictionaryEntityData() {
+        logger.info("testGetSettingsDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getSettingsDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetSettingsDictionaryEntityData: exit");
+
+    }
+
+    @Test
+    public void testSaveSettingsDictionary() {
+        logger.info("testSaveSettingsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
         
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"settingsDictionaryData\":{\"xacmlId\":\"testMMRestAPI1\",\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"test\",\"priority\":\"High\"}, \"userid\":\"test\"}";
-                       
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveSettingsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveSettingsDictionary: exit");        
-               
-       }
-
-       @Test
-       public void testRemoveSettingsDictionary() {
-               logger.info("testRemoveSettingsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeSettingsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveSettingsDictionary: exit");      
-               
-       }
-
-       @Test
-       public void testGetRainyDayDictionaryByNameEntityData() {
-               logger.info("testGetRainyDayDictionaryByNameEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getRainyDayDictionaryByNameEntityData(request, response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetRainyDayDictionaryByNameEntityData: exit");         
-               
-       }
-
-       @Test
-       public void testGetRainyDayDictionaryEntityData() {
-               logger.info("testGetRainyDayDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getRainyDayDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetRainyDayDictionaryEntityData: exit");       
-               
-       }
-
-       @Test
-       public void testSaveRainyDayDictionary() {
-               logger.info("testSaveRainyDayDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);  
+        try {
+            // mock the getReader() call
+            jsonString = "{\"settingsDictionaryData\":{\"xacmlId\":\"testMMRestAPI1\",\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"test\",\"priority\":\"High\"}, \"userid\":\"test\"}";
+
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveSettingsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
+
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveSettingsDictionary: exit");
+
+    }
+
+    @Test
+    public void testRemoveSettingsDictionary() {
+        logger.info("testRemoveSettingsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeSettingsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("settingsDictionaryDatas"));
+
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveSettingsDictionary: exit");
+
+    }
+
+    @Test
+    public void testGetRainyDayDictionaryByNameEntityData() {
+        logger.info("testGetRainyDayDictionaryByNameEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getRainyDayDictionaryByNameEntityData(request, response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetRainyDayDictionaryByNameEntityData: exit");
+
+    }
+
+    @Test
+    public void testGetRainyDayDictionaryEntityData() {
+        logger.info("testGetRainyDayDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getRainyDayDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetRainyDayDictionaryEntityData: exit");
+
+    }
+
+    @Test
+    public void testSaveRainyDayDictionary() {
+        logger.info("testSaveRainyDayDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
         
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"rainyDayDictionaryData\":{\"bbid\":\"BB2\",\"workstep\":\"1\",\"userDataTypeValues\":[{\"$$hashKey\":\"object:233\",\"treatment\":\"test1\"},{\"$$hashKey\":\"object:239\",\"treatment\":\"test2\"}]},\"userid\":\"mm117s\"}";
-                       
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveRainyDayDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
-
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveRainyDayDictionary: exit");                
-               
-       }
-
-       @Test
-       public void testRemoveRainyDayDictionary() {
-               logger.info("testRemoveRainyDayDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeRainyDayDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
-
-               } catch (Exception e) {
-                       logger.error("Exception Occured"+e);
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveRainyDayDictionary: exit");              
-               
-       }
+        try {
+            // mock the getReader() call
+            jsonString = "{\"rainyDayDictionaryData\":{\"bbid\":\"BB2\",\"workstep\":\"1\",\"userDataTypeValues\":[{\"$$hashKey\":\"object:233\",\"treatment\":\"test1\"},{\"$$hashKey\":\"object:239\",\"treatment\":\"test2\"}]},\"userid\":\"mm117s\"}";
+
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveRainyDayDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
+
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveRainyDayDictionary: exit");
+
+    }
+
+    @Test
+    public void testRemoveRainyDayDictionary() {
+        logger.info("testRemoveRainyDayDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"ecompName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeRainyDayDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("rainyDayDictionaryDatas"));
+
+        } catch (Exception e) {
+            logger.error("Exception Occured"+e);
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveRainyDayDictionary: exit");
+
+    }
 
 }
\ No newline at end of file
index 5310ddc..0950b1c 100644 (file)
@@ -45,124 +45,124 @@ import org.onap.policy.rest.jpa.UserInfo;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class DescriptiveDictionaryControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(DescriptiveDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private DescriptiveDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
-       private UserInfo userInfo;
-       private List<String>  data;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               
-               data = new ArrayList<>();
-               data.add("Test");
-               
-               userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-       
-               doNothing().when(commonClassDao).delete(new DescriptiveScope());
-               doNothing().when(commonClassDao).save(new DescriptiveScope());
-               
-               controller = new DescriptiveDictionaryController();
-               controller.setCommonClassDao(commonClassDao);
-               
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               new DictionaryUtils(commonClassDao);
+
+    private static Logger logger = FlexLogger.getLogger(DescriptiveDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private DescriptiveDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
+    private UserInfo userInfo;
+    private List<String>  data;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+
+        data = new ArrayList<>();
+        data.add("Test");
+
+        userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        doNothing().when(commonClassDao).delete(new DescriptiveScope());
+        doNothing().when(commonClassDao).save(new DescriptiveScope());
+
+        controller = new DescriptiveDictionaryController();
+        controller.setCommonClassDao(commonClassDao);
+
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
-       
-       public List<Object> testDescriptiveScope(){
-               List<Object>  objectData = new ArrayList<>();
-               
-               DescriptiveScope data = new DescriptiveScope();
-               data.setId(1);
-               assertTrue(1 == data.getId());
-               data.setScopeName("Test");
-               assertTrue("Test".equals(data.getScopeName()));
-               data.setDescription("Test");
-               assertTrue("Test".equals(data.getDescription()));
-               data.setSearch("Test");
-               assertTrue("Test".equals(data.getSearch()));
-               data.setCreatedDate(new Date());
-               assertTrue(data.getCreatedDate()!= null);
-               data.setModifiedDate(new Date());
-               assertTrue(data.getModifiedDate()!= null);
-               data.setUserCreatedBy(userInfo);
-               assertTrue(data.getUserCreatedBy()!= null);
-               data.setUserModifiedBy(userInfo);
-               assertTrue(data.getUserModifiedBy()!= null);
-               objectData.add(data);
-               
-               return objectData;
-       }
-       
-       @Test
-       public void testGetDescriptiveDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(DescriptiveScope.class, "descriptiveScopeName")).thenReturn(data);
-               controller.getDescriptiveDictionaryByNameEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetDescriptiveDictionaryEntityData(){
-               when(commonClassDao.getData(DescriptiveScope.class)).thenReturn(testDescriptiveScope());
-               controller.getDescriptiveDictionaryEntityData(response);
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testSaveDescriptiveDictionary(){
-               jsonString = "{\"descriptiveScopeDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"search\":\"Test\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveDescriptiveDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateDescriptiveDictionary(){
-               jsonString = "{\"descriptiveScopeDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"id\":1,\"search\":\"Test\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveDescriptiveDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveDescriptiveDictionary(){
-               jsonString = "{\"data\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"id\":1,\"search\":\"Test\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeDescriptiveDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
+        logger.info("setUp: exit");
+    }
+
+    public List<Object> testDescriptiveScope(){
+        List<Object>  objectData = new ArrayList<>();
+
+        DescriptiveScope data = new DescriptiveScope();
+        data.setId(1);
+        assertTrue(1 == data.getId());
+        data.setScopeName("Test");
+        assertTrue("Test".equals(data.getScopeName()));
+        data.setDescription("Test");
+        assertTrue("Test".equals(data.getDescription()));
+        data.setSearch("Test");
+        assertTrue("Test".equals(data.getSearch()));
+        data.setCreatedDate(new Date());
+        assertTrue(data.getCreatedDate()!= null);
+        data.setModifiedDate(new Date());
+        assertTrue(data.getModifiedDate()!= null);
+        data.setUserCreatedBy(userInfo);
+        assertTrue(data.getUserCreatedBy()!= null);
+        data.setUserModifiedBy(userInfo);
+        assertTrue(data.getUserModifiedBy()!= null);
+        objectData.add(data);
+
+        return objectData;
+    }
+
+    @Test
+    public void testGetDescriptiveDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(DescriptiveScope.class, "descriptiveScopeName")).thenReturn(data);
+        controller.getDescriptiveDictionaryByNameEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetDescriptiveDictionaryEntityData(){
+        when(commonClassDao.getData(DescriptiveScope.class)).thenReturn(testDescriptiveScope());
+        controller.getDescriptiveDictionaryEntityData(response);
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testSaveDescriptiveDictionary(){
+        jsonString = "{\"descriptiveScopeDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"search\":\"Test\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveDescriptiveDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateDescriptiveDictionary(){
+        jsonString = "{\"descriptiveScopeDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"id\":1,\"search\":\"Test\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveDescriptiveDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveDescriptiveDictionary(){
+        jsonString = "{\"data\":{\"attributes\":[{\"$$hashKey\":\"object:257\",\"id\":\"choice1\",\"number\":\"12\",\"option\":\"test\"}],\"description\":\"test\",\"descriptiveScopeName\":\"Test\",\"id\":1,\"search\":\"Test\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeDescriptiveDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("descriptiveScopeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
 }
\ No newline at end of file
index e76ebdf..89be75f 100644 (file)
@@ -57,16 +57,16 @@ import org.springframework.mock.web.MockHttpServletResponse;
  * tasks.
  */
 public class DictionaryControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(DictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private DictionaryController controller = null;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
+
+    private static Logger logger = FlexLogger.getLogger(DictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private DictionaryController controller = null;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
         commonClassDao = Mockito.mock(CommonClassDao.class);
 
         MicroServiceModels testData = new MicroServiceModels();
@@ -86,173 +86,173 @@ public class DictionaryControllerTest {
         
         when(commonClassDao.getData(Attribute.class)).thenReturn(listId);
         
-               request = mock(HttpServletRequest.class);        
+        request = mock(HttpServletRequest.class);
         controller = new DictionaryController(commonClassDao);
         new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
         logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testGetAttributeDictionaryEntityDatabyAttributeName() {
-               logger.info("testGetAttributeDictionaryEntityDatabyAttributeName: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getAttributeDictionaryEntityDatabyAttributeName(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetAttributeDictionaryEntityDatabyAttributeName: exit");
-       }
-
-       @Test
-       public void testGetAttributeDictionaryEntityData() {
-               logger.info("testGetAttributeDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getAttributeDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetAttributeDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveAttributeDictionary() {
-               logger.info("testSaveAttributeDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);  
+    }
+
+    @Test
+    public void testGetAttributeDictionaryEntityDatabyAttributeName() {
+        logger.info("testGetAttributeDictionaryEntityDatabyAttributeName: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getAttributeDictionaryEntityDatabyAttributeName(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetAttributeDictionaryEntityDatabyAttributeName: exit");
+    }
+
+    @Test
+    public void testGetAttributeDictionaryEntityData() {
+        logger.info("testGetAttributeDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getAttributeDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetAttributeDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveAttributeDictionary() {
+        logger.info("testSaveAttributeDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
         
-               try {   
-                       jsonString = "{\"attributeDictionaryData\":{\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"Qwerty\",\"priority\":\"High\",\"userDataTypeValues\":[{\"$$hashKey\":\"object:641\",\"attributeValues\":\"test\",\"id\":\"choice1\"},{\"$$hashKey\":\"object:646\",\"attributeValues\":\"test\",\"id\":\"choice2\"}],\"xacmlId\":\"Qwerty\"},\"userid\":\"demo\"}";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveAttributeDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveAttributeDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveAttributeDictionary() {
-               logger.info("testRemoveAttributeDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                       jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"xacmlId\":\"Test\"}}";
-                               BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeAttributeDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveAttributeDictionary: exit");
-       }
-
-       @Test
-       public void testGetOnapNameDictionaryByNameEntityData() {
-               logger.info("testGetOnapNameDictionaryByNameEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getOnapNameDictionaryByNameEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetOnapNameDictionaryByNameEntityData: exit");
-       }
-
-       @Test
-       public void testGetOnapNameDictionaryEntityData() {
-               logger.info("testGetOnapNameDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getOnapNameDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetOnapNameDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveOnapDictionary() {
-               
-               logger.info("testSaveOnapDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);  
+        try {
+            jsonString = "{\"attributeDictionaryData\":{\"datatypeBean\":{\"shortName\":\"string\"},\"description\":\"Qwerty\",\"priority\":\"High\",\"userDataTypeValues\":[{\"$$hashKey\":\"object:641\",\"attributeValues\":\"test\",\"id\":\"choice1\"},{\"$$hashKey\":\"object:646\",\"attributeValues\":\"test\",\"id\":\"choice2\"}],\"xacmlId\":\"Qwerty\"},\"userid\":\"demo\"}";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveAttributeDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveAttributeDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveAttributeDictionary() {
+        logger.info("testRemoveAttributeDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"xacmlId\":\"Test\"}}";
+                BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeAttributeDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("attributeDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveAttributeDictionary: exit");
+    }
+
+    @Test
+    public void testGetOnapNameDictionaryByNameEntityData() {
+        logger.info("testGetOnapNameDictionaryByNameEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getOnapNameDictionaryByNameEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetOnapNameDictionaryByNameEntityData: exit");
+    }
+
+    @Test
+    public void testGetOnapNameDictionaryEntityData() {
+        logger.info("testGetOnapNameDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getOnapNameDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetOnapNameDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveOnapDictionary() {
+
+        logger.info("testSaveOnapDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
         
-               try {   
-                       jsonString = "{\"userid\":\"demo\",\"onapNameDictionaryData\":{\"description\":\"test\",\"onapName\":\"Test\"}}";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveOnapDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveOnapDictionary: exit");            
-       }
-
-       @Test
-       public void testRemoveOnapDictionary() {
-               logger.info("testRemoveOnapDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                       jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"onapName\":\"Test\"}}";
-                               BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeOnapDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveOnapDictionary: exit");
-       }
+        try {
+            jsonString = "{\"userid\":\"demo\",\"onapNameDictionaryData\":{\"description\":\"test\",\"onapName\":\"Test\"}}";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveOnapDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveOnapDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveOnapDictionary() {
+        logger.info("testRemoveOnapDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"onapName\":\"Test\"}}";
+                BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeOnapDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("onapNameDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveOnapDictionary: exit");
+    }
 
 }
index 6a28c27..7ab1b17 100644 (file)
@@ -43,98 +43,98 @@ import org.onap.policy.rest.dao.CommonClassDao;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class DictionaryImportControllerTest extends Mockito{
-       
-       private static Logger logger = FlexLogger.getLogger(DictionaryImportController.class);
-       
-       private static CommonClassDao commonClassDao;
-       private HttpServletRequest request = null;
-       private HttpServletResponse response = null;
-       private DictionaryImportController controller = null;
 
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               doNothing().when(commonClassDao).save(new Object());
-               controller = new DictionaryImportController(); 
-               new DictionaryImportController(commonClassDao);
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();      
-       }
-       
-       @Test
-       public void testIsValidDictionaryName(){
-               DictionaryImportController cotroller = new DictionaryImportController();
-               //test invalid name
-               assertTrue(!cotroller.isValidDictionaryName("wrong-name"));
-               //test valid name
-               assertTrue(cotroller.isValidDictionaryName("ActionList"));
-       }
+    private static Logger logger = FlexLogger.getLogger(DictionaryImportController.class);
 
-       @Test
-       public void testImportDictionaryData() throws ServletException, IOException{
-               List<String> fileNames = new ArrayList<>();
-               fileNames.add("Attribute.csv");
-               fileNames.add("ActionPolicyDictionary.csv");
-               fileNames.add("OnapName.csv");
-               fileNames.add("MSPolicyDictionary.csv");
-               fileNames.add("OptimizationPolicyDictionary.csv");
-               fileNames.add("ClosedLoopService.csv");
-               fileNames.add("ClosedLoopSite.csv");
-               fileNames.add("VarbindDictionary.csv");
-               fileNames.add("BRMSParamDictionary.csv");
-               fileNames.add("BRMSControllerDictionary.csv");
-               fileNames.add("BRMSDependencyDictionary.csv");
-               fileNames.add("PrefixList.csv");
-               fileNames.add("SecurityZone.csv");
-               fileNames.add("ServiceList.csv");
-               fileNames.add("ServiceGroup.csv");
-               fileNames.add("AddressGroup.csv");
-               fileNames.add("ProtocolList.csv");
-               fileNames.add("TermList.csv");
-               fileNames.add("SearchCriteria.csv");
-               fileNames.add("VNFType.csv");
-               fileNames.add("VSCLAction.csv");
-               fileNames.add("PEPOptions.csv");
-               fileNames.add("Settings.csv");
-               fileNames.add("Zone.csv");
-               fileNames.add("ActionList.csv");
-               for(int i =0; i < fileNames.size(); i++){
-                       File file = new File("src/test/resources/dictionaryImport/"+fileNames.get(i));
-                       try(FileInputStream targetStream = new FileInputStream(file)){
-                               PushPolicyControllerTest pushController = new PushPolicyControllerTest();
-                               when(request.getInputStream()).thenReturn(pushController.getInputStream(getBytes(targetStream)));
-                               when(request.getParameter("userId")).thenReturn("demo");
-                               when(request.getParameter("dictionaryName")).thenReturn(fileNames.get(i));
-                               controller.importDictionaryData(request, response);
-                               assertTrue(HttpServletResponse.SC_OK == response.getStatus());
-                       } catch (IOException e) {
-                               fail();
-                       }
-               }
-               when(request.getParameter("dictionaryName")).thenReturn("WrongName");
-               controller.importDictionaryData(request, response);
-               assertTrue(HttpServletResponse.SC_BAD_REQUEST == response.getStatus());
-               
-               when(request.getParameter("dictionaryName")).thenReturn("");
-               controller.importDictionaryData(request, response);
-               assertTrue(HttpServletResponse.SC_BAD_REQUEST == response.getStatus());
-               
-               when(request.getInputStream()).thenReturn(null);
-               when(request.getParameter("dictionaryName")).thenReturn("Attribute.csv");
-               controller.importDictionaryData(request, response);
-               assertTrue(HttpServletResponse.SC_INTERNAL_SERVER_ERROR == response.getStatus());
-       }
-       
-       public static byte[] getBytes(InputStream is) throws IOException {
-               int len;
-               int size = 1024;
-               byte[] buf;
-               ByteArrayOutputStream bos = new ByteArrayOutputStream();
-               buf = new byte[size];
-               while ((len = is.read(buf, 0, size)) != -1)
-                       bos.write(buf, 0, len);
-               buf = bos.toByteArray();
-               return buf;
-       }
+    private static CommonClassDao commonClassDao;
+    private HttpServletRequest request = null;
+    private HttpServletResponse response = null;
+    private DictionaryImportController controller = null;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+        doNothing().when(commonClassDao).save(new Object());
+        controller = new DictionaryImportController();
+        new DictionaryImportController(commonClassDao);
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+    }
+
+    @Test
+    public void testIsValidDictionaryName(){
+        DictionaryImportController cotroller = new DictionaryImportController();
+        //test invalid name
+        assertTrue(!cotroller.isValidDictionaryName("wrong-name"));
+        //test valid name
+        assertTrue(cotroller.isValidDictionaryName("ActionList"));
+    }
+
+    @Test
+    public void testImportDictionaryData() throws ServletException, IOException{
+        List<String> fileNames = new ArrayList<>();
+        fileNames.add("Attribute.csv");
+        fileNames.add("ActionPolicyDictionary.csv");
+        fileNames.add("OnapName.csv");
+        fileNames.add("MSPolicyDictionary.csv");
+        fileNames.add("OptimizationPolicyDictionary.csv");
+        fileNames.add("ClosedLoopService.csv");
+        fileNames.add("ClosedLoopSite.csv");
+        fileNames.add("VarbindDictionary.csv");
+        fileNames.add("BRMSParamDictionary.csv");
+        fileNames.add("BRMSControllerDictionary.csv");
+        fileNames.add("BRMSDependencyDictionary.csv");
+        fileNames.add("PrefixList.csv");
+        fileNames.add("SecurityZone.csv");
+        fileNames.add("ServiceList.csv");
+        fileNames.add("ServiceGroup.csv");
+        fileNames.add("AddressGroup.csv");
+        fileNames.add("ProtocolList.csv");
+        fileNames.add("TermList.csv");
+        fileNames.add("SearchCriteria.csv");
+        fileNames.add("VNFType.csv");
+        fileNames.add("VSCLAction.csv");
+        fileNames.add("PEPOptions.csv");
+        fileNames.add("Settings.csv");
+        fileNames.add("Zone.csv");
+        fileNames.add("ActionList.csv");
+        for(int i =0; i < fileNames.size(); i++){
+            File file = new File("src/test/resources/dictionaryImport/"+fileNames.get(i));
+            try(FileInputStream targetStream = new FileInputStream(file)){
+                PushPolicyControllerTest pushController = new PushPolicyControllerTest();
+                when(request.getInputStream()).thenReturn(pushController.getInputStream(getBytes(targetStream)));
+                when(request.getParameter("userId")).thenReturn("demo");
+                when(request.getParameter("dictionaryName")).thenReturn(fileNames.get(i));
+                controller.importDictionaryData(request, response);
+                assertTrue(HttpServletResponse.SC_OK == response.getStatus());
+            } catch (IOException e) {
+                fail();
+            }
+        }
+        when(request.getParameter("dictionaryName")).thenReturn("WrongName");
+        controller.importDictionaryData(request, response);
+        assertTrue(HttpServletResponse.SC_BAD_REQUEST == response.getStatus());
+
+        when(request.getParameter("dictionaryName")).thenReturn("");
+        controller.importDictionaryData(request, response);
+        assertTrue(HttpServletResponse.SC_BAD_REQUEST == response.getStatus());
+
+        when(request.getInputStream()).thenReturn(null);
+        when(request.getParameter("dictionaryName")).thenReturn("Attribute.csv");
+        controller.importDictionaryData(request, response);
+        assertTrue(HttpServletResponse.SC_INTERNAL_SERVER_ERROR == response.getStatus());
+    }
+
+    public static byte[] getBytes(InputStream is) throws IOException {
+        int len;
+        int size = 1024;
+        byte[] buf;
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        buf = new byte[size];
+        while ((len = is.read(buf, 0, size)) != -1)
+            bos.write(buf, 0, len);
+        buf = bos.toByteArray();
+        return buf;
+    }
 }
index e305b12..45d8466 100644 (file)
@@ -62,617 +62,617 @@ import org.springframework.mock.web.MockHttpServletResponse;
 
 public class FirewallDictionaryControllerTest {
 
-       private static Logger logger = FlexLogger.getLogger(FirewallDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private FirewallDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
-       private UserInfo userInfo;
-       private List<String> data;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-
-               data = new ArrayList<>();
-               data.add("Test");
-
-               userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-
-               doNothing().when(commonClassDao).delete(any(Term.class));
-               doNothing().when(commonClassDao).save(any(Term.class));
-
-               controller = new FirewallDictionaryController();
-               FirewallDictionaryController.setCommonClassDao(commonClassDao);
-
-               request = Mockito.mock(HttpServletRequest.class);
-               response = new MockHttpServletResponse();
-               new DictionaryUtils(commonClassDao);
-               DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
-               mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
-
-       @Test
-       public void testGetPrefixListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
-                               () -> controller.getPrefixListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetPrefixListDictionaryEntityData() {
-               test_WithGetData(PrefixList.class, "prefixListDictionaryDatas",
-                               () -> controller.getPrefixListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetPortListDictionaryEntityData() {
-               test_WithGetData(PortList.class, "portListDictionaryDatas",
-                               () -> controller.getPortListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetProtocolListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
-                               () -> controller.getProtocolListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetProtocolListDictionaryEntityData() {
-               test_WithGetData(ProtocolList.class, "protocolListDictionaryDatas",
-                               () -> controller.getProtocolListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetAddressGroupDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(AddressGroup.class, "addressGroupDictionaryDatas", "name",
-                               () -> controller.getAddressGroupDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetAddressGroupDictionaryEntityData() {
-               test_WithGetData(AddressGroup.class, "addressGroupDictionaryDatas",
-                               () -> controller.getAddressGroupDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetActionListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(ActionList.class, "actionListDictionaryDatas", "actionName",
-                               () -> controller.getActionListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetActionListDictionaryEntityData() {
-               test_WithGetData(ActionList.class, "actionListDictionaryDatas",
-                               () -> controller.getActionListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetServiceGroupDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(GroupServiceList.class, "serviceGroupDictionaryDatas", "name",
-                               () -> controller.getServiceGroupDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetServiceGroupDictionaryEntityData() {
-               test_WithGetData(GroupServiceList.class, "serviceGroupDictionaryDatas",
-                               () -> controller.getServiceGroupDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetSecurityZoneDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
-                               () -> controller.getSecurityZoneDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetSecurityZoneDictionaryEntityData() {
-               test_WithGetData(SecurityZone.class, "securityZoneDictionaryDatas",
-                               () -> controller.getSecurityZoneDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetServiceListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
-                               () -> controller.getServiceListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetServiceListDictionaryEntityData() {
-               test_WithGetData(ServiceList.class, "serviceListDictionaryDatas",
-                               () -> controller.getServiceListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetZoneDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(Zone.class, "zoneDictionaryDatas", "zoneName",
-                               () -> controller.getZoneDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetZoneDictionaryEntityData() {
-               test_WithGetData(Zone.class, "zoneDictionaryDatas", () -> controller.getZoneDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetTermListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(TermList.class, "termListDictionaryDatas", "termName",
-                               () -> controller.getTermListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetTermListDictionaryEntityData() {
-               test_WithGetData(TermList.class, "termListDictionaryDatas",
-                               () -> controller.getTermListDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetFWDictListDictionaryEntityDataByName() {
-               test_WithGetDataByColumn(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
-                               () -> controller.getFWDictListDictionaryEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetFWDictionaryListEntityData() {
-               test_WithGetData(FirewallDictionaryList.class, "fwDictListDictionaryDatas",
-                               () -> controller.getFWDictionaryListEntityData(response));
-       }
-
-       @Test
-       public void testGetTagPickerNameEntityDataByName() {
-               test_WithGetDataByColumn(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
-                               () -> controller.getTagPickerNameEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetTagPickerDictionaryEntityData() {
-               test_WithGetData(FWTagPicker.class, "fwTagPickerDictionaryDatas",
-                               () -> controller.getTagPickerDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testGetTagNameEntityDataByName() {
-               test_WithGetDataByColumn(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
-                               () -> controller.getTagNameEntityDataByName(response));
-       }
-
-       @Test
-       public void testGetTagDictionaryEntityData() {
-               test_WithGetData(FWTag.class, "fwTagDictionaryDatas", () -> controller.getTagDictionaryEntityData(response));
-       }
-
-       @Test
-       public void testSavePrefixListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"description\":\"test\",\"prefixListName\":\"Test\"}}";
-               testSave(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
-                               () -> controller.savePrefixListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdatePrefixListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\"}}";
-               testUpdate(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
-                               () -> controller.savePrefixListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemovePrefixListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\"}}";
-               testRemove(PrefixList.class, "prefixListDictionaryDatas",
-                               () -> controller.removePrefixListDictionary(request, response));
-       }
-
-       @Test
-       public void testValidatePrefixListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\",\"prefixListValue\":\"10.10.10\"}}";
-               testValidate(PrefixList.class, "result", () -> controller.validatePrefixListDictionary(request, response));
-       }
-
-       @Test
-       public void testSavePortListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"portListDictionaryData\":{\"description\":\"test\",\"portName\":\"Test\"}}";
-               testSave(PortList.class, "portListDictionaryDatas", "portName",
-                               () -> controller.savePortListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdatePortListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"portListDictionaryData\":{\"id\":1,\"description\":\"test\",\"portName\":\"Test\"}}";
-               testUpdate(PortList.class, "portListDictionaryDatas", "portName",
-                               () -> controller.savePortListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemovePortListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"portName\":\"Test\"}}";
-               testRemove(PortList.class, "portListDictionaryDatas",
-                               () -> controller.removePortListDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveProtocolListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"protocolListDictionaryData\":{\"description\":\"test\",\"protocolName\":\"Test\"}}";
-               testSave(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
-                               () -> controller.saveProtocolListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateProtocolListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"protocolListDictionaryData\":{\"id\":1,\"description\":\"test\",\"protocolName\":\"Test\"}}";
-               testUpdate(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
-                               () -> controller.saveProtocolListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveProtocolListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"protocolName\":\"Test\"}}";
-               testRemove(ProtocolList.class, "protocolListDictionaryDatas",
-                               () -> controller.removeProtocolListDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveAddressGroupDictionary() {
-               jsonString = "{\"addressGroupDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:409\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"groupName\":\"Test\"},\"userid\":\"demo\"}";
-               testSave(AddressGroup.class, "addressGroupDictionaryDatas", "name", "Group_Test",
-                               () -> controller.saveAddressGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateAddressGroupDictionary() {
-               jsonString = "{\"addressGroupDictionaryData\":{\"id\":1, \"attributes\":[{\"$$hashKey\":\"object:409\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"groupName\":\"Test\"},\"userid\":\"demo\"}";
-               testUpdate(AddressGroup.class, "addressGroupDictionaryDatas", "name", "Group_Test",
-                               () -> controller.saveAddressGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveAddressGroupDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               testRemove(AddressGroup.class, "addressGroupDictionaryDatas",
-                               () -> controller.removeAddressGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveActionListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"actionListDictionaryData\":{\"description\":\"test\",\"actionName\":\"Test\"}}";
-               testSave(ActionList.class, "actionListDictionaryDatas", "actionName",
-                               () -> controller.saveActionListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateActionListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"actionListDictionaryData\":{\"id\":1,\"description\":\"test\",\"actionName\":\"Test\"}}";
-               testUpdate(ActionList.class, "actionListDictionaryDatas", "actionName",
-                               () -> controller.saveActionListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveActionListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"actionName\":\"Test\"}}";
-               testRemove(ActionList.class, "actionListDictionaryDatas",
-                               () -> controller.removeActionListDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveServiceGroupDictionary() {
-               jsonString = "{\"serviceGroupDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:657\",\"id\":\"choice1\",\"option\":\"Test\"}],\"groupName\":\"Test\"},\"userid\":\"demo\"}";
-               testSave(GroupServiceList.class, "serviceGroupDictionaryDatas", "name", "Group_Test",
-                               () -> controller.saveServiceGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateServiceGroupDictionary() {
-               jsonString = "{\"serviceGroupDictionaryData\":{\"id\":1, \"attributes\":[{\"$$hashKey\":\"object:657\",\"id\":\"choice1\",\"option\":\"Test\"}],\"groupName\":\"Test\"},\"userid\":\"demo\"}";
-               testUpdate(GroupServiceList.class, "serviceGroupDictionaryDatas", "name", "Group_Test",
-                               () -> controller.saveServiceGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveServiceGroupDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               testRemove(GroupServiceList.class, "serviceGroupDictionaryDatas",
-                               () -> controller.removeServiceGroupDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveSecurityZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"securityZoneDictionaryData\":{\"description\":\"test\",\"zoneName\":\"Test\"}}";
-               testSave(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
-                               () -> controller.saveSecurityZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateSecurityZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"securityZoneDictionaryData\":{\"id\":1,\"description\":\"test\",\"zoneName\":\"Test\"}}";
-               testUpdate(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
-                               () -> controller.saveSecurityZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveSecurityZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"zoneName\":\"Test\"}}";
-               testRemove(SecurityZone.class, "securityZoneDictionaryDatas",
-                               () -> controller.removeSecurityZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveServiceListDictionary() {
-               jsonString = "{\"serviceListDictionaryData\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testSave(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
-                               () -> controller.saveServiceListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateServiceListDictionary() {
-               jsonString = "{\"serviceListDictionaryData\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"id\":1,\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testUpdate(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
-                               () -> controller.saveServiceListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveServiceListDictionary() {
-               jsonString = "{\"data\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"id\":1,\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testRemove(ServiceList.class, "serviceListDictionaryDatas",
-                               () -> controller.removeServiceListDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"zoneDictionaryData\":{\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
-               testSave(Zone.class, "zoneDictionaryDatas", "zoneName", () -> controller.saveZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"zoneDictionaryData\":{\"id\":1,\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
-               testUpdate(Zone.class, "zoneDictionaryDatas", "zoneName",
-                               () -> controller.saveZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveZoneDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
-               testRemove(Zone.class, "zoneDictionaryDatas", () -> controller.removeZoneDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveTermListDictionary() {
-               jsonString = "{\"termListDictionaryData\":{\"actionListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationServiceDatas\":[{\"$$hashKey\":\"object:1230\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"fromZoneDatas\":[{\"$$hashKey\":\"object:1245\",\"id\":\"choice1\",\"option\":\"Test\"}],\"sourceListDatas\":[{\"$$hashKey\":\"object:1215\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"sourceServiceDatas\":[{\"$$hashKey\":\"object:1225\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"termDescription\":\"test\",\"termName\":\"Test\",\"toZoneDatas\":[{\"$$hashKey\":\"object:1240\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testSave(TermList.class, "termListDictionaryDatas", "termName",
-                               () -> controller.saveTermListDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateTermListDictionary() {
-               jsonString = "{\"termListDictionaryData\":{\"id\":1,\"actionListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationServiceDatas\":[{\"$$hashKey\":\"object:1230\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"fromZoneDatas\":[{\"$$hashKey\":\"object:1245\",\"id\":\"choice1\",\"option\":\"Test\"}],\"sourceListDatas\":[{\"$$hashKey\":\"object:1215\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"sourceServiceDatas\":[{\"$$hashKey\":\"object:1225\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"termDescription\":\"test\",\"termName\":\"Test\",\"toZoneDatas\":[{\"$$hashKey\":\"object:1240\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testUpdate(TermList.class, "termListDictionaryDatas", "termName",
-                               () -> controller.saveTermListDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveTermListDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"termDescription\":\"test\",\"termName\":\"Test\"}}";
-               testRemove(TermList.class, "termListDictionaryDatas",
-                               () -> controller.removeTermListDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveFWDictionaryList() {
-               jsonString = "{\"fwDictListDictionaryData\":{\"alAttributes\":[{\"$$hashKey\":\"object:1379\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"attributes\":[{\"$$hashKey\":\"object:1374\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"parentItemName\":\"Test\"},\"userid\":\"demo\"}";
-               testSave(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
-                               () -> controller.saveFWDictionaryList(request, response));
-       }
-
-       @Test
-       public void testUpdateFWDictionaryList() {
-               jsonString = "{\"fwDictListDictionaryData\":{\"id\":1,\"alAttributes\":[{\"$$hashKey\":\"object:1379\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"attributes\":[{\"$$hashKey\":\"object:1374\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"parentItemName\":\"Test\"},\"userid\":\"demo\"}";
-               testUpdate(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
-                               () -> controller.saveFWDictionaryList(request, response));
-       }
-
-       @Test
-       public void testRemoveFWDictionaryList() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"parentItemName\":\"Test\"}}";
-               testRemove(FirewallDictionaryList.class, "fwDictListDictionaryDatas",
-                               () -> controller.removeFWDictionaryList(request, response));
-       }
-
-       @Test
-       public void testSaveFirewallTagPickerDictionary() {
-               jsonString = "{\"fwTagPickerDictionaryData\":{\"description\":\"test\",\"networkRole\":\"test\",\"tagPickerName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1855\",\"id\":\"choice1\",\"number\":\"test\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testSave(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
-                               () -> controller.saveFirewallTagPickerDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateFirewallTagPickerDictionary() {
-               jsonString = "{\"fwTagPickerDictionaryData\":{\"id\":1,\"description\":\"test\",\"networkRole\":\"test\",\"tagPickerName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1855\",\"id\":\"choice1\",\"number\":\"test\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
-               testUpdate(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
-                               () -> controller.saveFirewallTagPickerDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveFirewallTagPickerDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"tagPickerName\":\"Test\"}}";
-               testRemove(FWTagPicker.class, "fwTagPickerDictionaryDatas",
-                               () -> controller.removeFirewallTagPickerDictionary(request, response));
-       }
-
-       @Test
-       public void testSaveFirewallTagDictionary() {
-               jsonString = "{\"fwTagDictionaryData\":{\"description\":\"test\",\"fwTagName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1690\",\"id\":\"choice1\",\"tags\":\"test\"}]},\"userid\":\"demo\"}";
-               testSave(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
-                               () -> controller.saveFirewallTagDictionary(request, response));
-       }
-
-       @Test
-       public void testUpdateFirewallTagDictionary() {
-               jsonString = "{\"fwTagDictionaryData\":{\"id\":1,\"description\":\"test\",\"fwTagName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1690\",\"id\":\"choice1\",\"tags\":\"test\"}]},\"userid\":\"demo\"}";
-               testUpdate(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
-                               () -> controller.saveFirewallTagDictionary(request, response));
-       }
-
-       @Test
-       public void testRemoveFirewallTagDictionary() {
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"fwTagName\":\"Test\"}}";
-               testRemove(FWTag.class, "fwTagDictionaryDatas",
-                               () -> controller.removeFirewallTagDictionary(request, response));
-       }
-
-       /**
-        * Tests a "get" function that uses commonClassDao.getDataByColumn().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param func
-        */
-       private void test_WithGetDataByColumn(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
-               when(commonClassDao.getDataByColumn(clazz, contentName)).thenReturn(data);
-               try {
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-                       verify(commonClassDao).getDataByColumn(clazz, contentName);
-               } catch (Exception e) {
-                       fail("get " + clazz.getName() + e);
-               }
-       }
-
-       /**
-        * Tests a "get" function that uses commonClassDao.getData().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param func
-        */
-       private void test_WithGetData(Class<?> clazz, String contentData, VoidFunc func) {
-               when(commonClassDao.getData(clazz)).thenReturn(new ArrayList<>());
-               try {
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-                       verify(commonClassDao).getData(clazz);
-               } catch (Exception e) {
-                       fail("get " + clazz.getName() + e);
-               }
-       }
-
-       /**
-        * Tests a function that uses commonClassDao.save().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param func
-        */
-       private void testSave(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
-               testSave(clazz, contentData, contentName, "Test", func);
-       }
-
-       /**
-        * Tests a function that uses commonClassDao.save().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param testName
-        * @param func
-        */
-       private void testSave(Class<?> clazz, String contentData, String contentName, String testName, VoidFunc func) {
-               try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
-                       when(request.getReader()).thenReturn(br);
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-                       verify(commonClassDao).checkDuplicateEntry(testName, contentName, clazz);
-                       verify(commonClassDao).save(any());
-                       verify(commonClassDao, never()).update(any());
-                       verify(commonClassDao).getData(clazz);
-
-               } catch (IOException e) {
-                       fail("save " + clazz.getName() + e);
-               }
-       }
-
-       /**
-        * Tests a function that uses commonClassDao.update().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param func
-        */
-       private void testUpdate(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
-               testUpdate(clazz, contentData, contentName, "Test", func);
-       }
-
-       /**
-        * Tests a function that uses commonClassDao.update().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param contentName
-        * @param testName
-        * @param func
-        */
-       private void testUpdate(Class<?> clazz, String contentData, String contentName, String testName, VoidFunc func) {
-               try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
-                       when(request.getReader()).thenReturn(br);
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-                       verify(commonClassDao).checkDuplicateEntry(testName, contentName, clazz);
-                       verify(commonClassDao, never()).save(any());
-                       verify(commonClassDao).update(any());
-                       verify(commonClassDao).getData(clazz);
-
-               } catch (IOException e) {
-                       fail("update " + clazz.getName() + e);
-               }
-       }
-
-       /**
-        * Tests a function that uses commonClassDao.delete() and
-        * commonClassDao.getData().
-        * 
-        * @param clazz
-        * @param contentData
-        * @param func
-        */
-       private void testRemove(Class<?> clazz, String contentData, VoidFunc func) {
-               try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
-                       when(request.getReader()).thenReturn(br);
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-                       verify(commonClassDao).delete(any());
-                       verify(commonClassDao).getData(clazz);
-
-               } catch (IOException e) {
-                       fail("remove " + clazz.getName() + e);
-               }
-       }
-
-       /**
-        * Tests a "validate" function.
-        * 
-        * @param clazz
-        * @param contentData
-        * @param func
-        */
-       private void testValidate(Class<?> clazz, String contentData, VoidFunc func) {
-               try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
-                       when(request.getReader()).thenReturn(br);
-                       func.apply();
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
-
-               } catch (IOException e) {
-                       fail("save " + clazz.getName() + e);
-               }
-       }
-
-       @FunctionalInterface
-       private static interface VoidFunc {
-               public void apply() throws IOException;
-       }
+    private static Logger logger = FlexLogger.getLogger(FirewallDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private FirewallDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
+    private UserInfo userInfo;
+    private List<String> data;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+
+        data = new ArrayList<>();
+        data.add("Test");
+
+        userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        doNothing().when(commonClassDao).delete(any(Term.class));
+        doNothing().when(commonClassDao).save(any(Term.class));
+
+        controller = new FirewallDictionaryController();
+        FirewallDictionaryController.setCommonClassDao(commonClassDao);
+
+        request = Mockito.mock(HttpServletRequest.class);
+        response = new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
+        DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
+        mock(DictionaryUtils.class);
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testGetPrefixListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
+                () -> controller.getPrefixListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetPrefixListDictionaryEntityData() {
+        test_WithGetData(PrefixList.class, "prefixListDictionaryDatas",
+                () -> controller.getPrefixListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetPortListDictionaryEntityData() {
+        test_WithGetData(PortList.class, "portListDictionaryDatas",
+                () -> controller.getPortListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetProtocolListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
+                () -> controller.getProtocolListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetProtocolListDictionaryEntityData() {
+        test_WithGetData(ProtocolList.class, "protocolListDictionaryDatas",
+                () -> controller.getProtocolListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetAddressGroupDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(AddressGroup.class, "addressGroupDictionaryDatas", "name",
+                () -> controller.getAddressGroupDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetAddressGroupDictionaryEntityData() {
+        test_WithGetData(AddressGroup.class, "addressGroupDictionaryDatas",
+                () -> controller.getAddressGroupDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetActionListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(ActionList.class, "actionListDictionaryDatas", "actionName",
+                () -> controller.getActionListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetActionListDictionaryEntityData() {
+        test_WithGetData(ActionList.class, "actionListDictionaryDatas",
+                () -> controller.getActionListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetServiceGroupDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(GroupServiceList.class, "serviceGroupDictionaryDatas", "name",
+                () -> controller.getServiceGroupDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetServiceGroupDictionaryEntityData() {
+        test_WithGetData(GroupServiceList.class, "serviceGroupDictionaryDatas",
+                () -> controller.getServiceGroupDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetSecurityZoneDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
+                () -> controller.getSecurityZoneDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetSecurityZoneDictionaryEntityData() {
+        test_WithGetData(SecurityZone.class, "securityZoneDictionaryDatas",
+                () -> controller.getSecurityZoneDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetServiceListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
+                () -> controller.getServiceListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetServiceListDictionaryEntityData() {
+        test_WithGetData(ServiceList.class, "serviceListDictionaryDatas",
+                () -> controller.getServiceListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetZoneDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(Zone.class, "zoneDictionaryDatas", "zoneName",
+                () -> controller.getZoneDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetZoneDictionaryEntityData() {
+        test_WithGetData(Zone.class, "zoneDictionaryDatas", () -> controller.getZoneDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetTermListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(TermList.class, "termListDictionaryDatas", "termName",
+                () -> controller.getTermListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetTermListDictionaryEntityData() {
+        test_WithGetData(TermList.class, "termListDictionaryDatas",
+                () -> controller.getTermListDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetFWDictListDictionaryEntityDataByName() {
+        test_WithGetDataByColumn(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
+                () -> controller.getFWDictListDictionaryEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetFWDictionaryListEntityData() {
+        test_WithGetData(FirewallDictionaryList.class, "fwDictListDictionaryDatas",
+                () -> controller.getFWDictionaryListEntityData(response));
+    }
+
+    @Test
+    public void testGetTagPickerNameEntityDataByName() {
+        test_WithGetDataByColumn(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
+                () -> controller.getTagPickerNameEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetTagPickerDictionaryEntityData() {
+        test_WithGetData(FWTagPicker.class, "fwTagPickerDictionaryDatas",
+                () -> controller.getTagPickerDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testGetTagNameEntityDataByName() {
+        test_WithGetDataByColumn(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
+                () -> controller.getTagNameEntityDataByName(response));
+    }
+
+    @Test
+    public void testGetTagDictionaryEntityData() {
+        test_WithGetData(FWTag.class, "fwTagDictionaryDatas", () -> controller.getTagDictionaryEntityData(response));
+    }
+
+    @Test
+    public void testSavePrefixListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"description\":\"test\",\"prefixListName\":\"Test\"}}";
+        testSave(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
+                () -> controller.savePrefixListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdatePrefixListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\"}}";
+        testUpdate(PrefixList.class, "prefixListDictionaryDatas", "prefixListName",
+                () -> controller.savePrefixListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemovePrefixListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\"}}";
+        testRemove(PrefixList.class, "prefixListDictionaryDatas",
+                () -> controller.removePrefixListDictionary(request, response));
+    }
+
+    @Test
+    public void testValidatePrefixListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"prefixListDictionaryData\":{\"id\":1,\"description\":\"test\",\"prefixListName\":\"Test\",\"prefixListValue\":\"10.10.10\"}}";
+        testValidate(PrefixList.class, "result", () -> controller.validatePrefixListDictionary(request, response));
+    }
+
+    @Test
+    public void testSavePortListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"portListDictionaryData\":{\"description\":\"test\",\"portName\":\"Test\"}}";
+        testSave(PortList.class, "portListDictionaryDatas", "portName",
+                () -> controller.savePortListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdatePortListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"portListDictionaryData\":{\"id\":1,\"description\":\"test\",\"portName\":\"Test\"}}";
+        testUpdate(PortList.class, "portListDictionaryDatas", "portName",
+                () -> controller.savePortListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemovePortListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"portName\":\"Test\"}}";
+        testRemove(PortList.class, "portListDictionaryDatas",
+                () -> controller.removePortListDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveProtocolListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"protocolListDictionaryData\":{\"description\":\"test\",\"protocolName\":\"Test\"}}";
+        testSave(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
+                () -> controller.saveProtocolListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateProtocolListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"protocolListDictionaryData\":{\"id\":1,\"description\":\"test\",\"protocolName\":\"Test\"}}";
+        testUpdate(ProtocolList.class, "protocolListDictionaryDatas", "protocolName",
+                () -> controller.saveProtocolListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveProtocolListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"protocolName\":\"Test\"}}";
+        testRemove(ProtocolList.class, "protocolListDictionaryDatas",
+                () -> controller.removeProtocolListDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveAddressGroupDictionary() {
+        jsonString = "{\"addressGroupDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:409\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"groupName\":\"Test\"},\"userid\":\"demo\"}";
+        testSave(AddressGroup.class, "addressGroupDictionaryDatas", "name", "Group_Test",
+                () -> controller.saveAddressGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateAddressGroupDictionary() {
+        jsonString = "{\"addressGroupDictionaryData\":{\"id\":1, \"attributes\":[{\"$$hashKey\":\"object:409\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"groupName\":\"Test\"},\"userid\":\"demo\"}";
+        testUpdate(AddressGroup.class, "addressGroupDictionaryDatas", "name", "Group_Test",
+                () -> controller.saveAddressGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveAddressGroupDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        testRemove(AddressGroup.class, "addressGroupDictionaryDatas",
+                () -> controller.removeAddressGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveActionListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"actionListDictionaryData\":{\"description\":\"test\",\"actionName\":\"Test\"}}";
+        testSave(ActionList.class, "actionListDictionaryDatas", "actionName",
+                () -> controller.saveActionListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateActionListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"actionListDictionaryData\":{\"id\":1,\"description\":\"test\",\"actionName\":\"Test\"}}";
+        testUpdate(ActionList.class, "actionListDictionaryDatas", "actionName",
+                () -> controller.saveActionListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveActionListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"actionName\":\"Test\"}}";
+        testRemove(ActionList.class, "actionListDictionaryDatas",
+                () -> controller.removeActionListDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveServiceGroupDictionary() {
+        jsonString = "{\"serviceGroupDictionaryData\":{\"attributes\":[{\"$$hashKey\":\"object:657\",\"id\":\"choice1\",\"option\":\"Test\"}],\"groupName\":\"Test\"},\"userid\":\"demo\"}";
+        testSave(GroupServiceList.class, "serviceGroupDictionaryDatas", "name", "Group_Test",
+                () -> controller.saveServiceGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateServiceGroupDictionary() {
+        jsonString = "{\"serviceGroupDictionaryData\":{\"id\":1, \"attributes\":[{\"$$hashKey\":\"object:657\",\"id\":\"choice1\",\"option\":\"Test\"}],\"groupName\":\"Test\"},\"userid\":\"demo\"}";
+        testUpdate(GroupServiceList.class, "serviceGroupDictionaryDatas", "name", "Group_Test",
+                () -> controller.saveServiceGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveServiceGroupDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        testRemove(GroupServiceList.class, "serviceGroupDictionaryDatas",
+                () -> controller.removeServiceGroupDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveSecurityZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"securityZoneDictionaryData\":{\"description\":\"test\",\"zoneName\":\"Test\"}}";
+        testSave(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
+                () -> controller.saveSecurityZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateSecurityZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"securityZoneDictionaryData\":{\"id\":1,\"description\":\"test\",\"zoneName\":\"Test\"}}";
+        testUpdate(SecurityZone.class, "securityZoneDictionaryDatas", "zoneName",
+                () -> controller.saveSecurityZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveSecurityZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"zoneName\":\"Test\"}}";
+        testRemove(SecurityZone.class, "securityZoneDictionaryDatas",
+                () -> controller.removeSecurityZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveServiceListDictionary() {
+        jsonString = "{\"serviceListDictionaryData\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testSave(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
+                () -> controller.saveServiceListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateServiceListDictionary() {
+        jsonString = "{\"serviceListDictionaryData\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"id\":1,\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testUpdate(ServiceList.class, "serviceListDictionaryDatas", "serviceName",
+                () -> controller.saveServiceListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveServiceListDictionary() {
+        jsonString = "{\"data\":{\"appProtocols\":[{\"$$hashKey\":\"object:560\",\"id\":\"choice1\",\"option\":\"Test\"}],\"serviceDescription\":\"test\",\"id\":1,\"serviceName\":\"Test\",\"servicePorts\":\"1010\",\"transportProtocols\":[{\"$$hashKey\":\"object:555\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testRemove(ServiceList.class, "serviceListDictionaryDatas",
+                () -> controller.removeServiceListDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"zoneDictionaryData\":{\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
+        testSave(Zone.class, "zoneDictionaryDatas", "zoneName", () -> controller.saveZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"zoneDictionaryData\":{\"id\":1,\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
+        testUpdate(Zone.class, "zoneDictionaryDatas", "zoneName",
+                () -> controller.saveZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveZoneDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"zoneValue\":\"test\",\"zoneName\":\"Test\"}}";
+        testRemove(Zone.class, "zoneDictionaryDatas", () -> controller.removeZoneDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveTermListDictionary() {
+        jsonString = "{\"termListDictionaryData\":{\"actionListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationServiceDatas\":[{\"$$hashKey\":\"object:1230\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"fromZoneDatas\":[{\"$$hashKey\":\"object:1245\",\"id\":\"choice1\",\"option\":\"Test\"}],\"sourceListDatas\":[{\"$$hashKey\":\"object:1215\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"sourceServiceDatas\":[{\"$$hashKey\":\"object:1225\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"termDescription\":\"test\",\"termName\":\"Test\",\"toZoneDatas\":[{\"$$hashKey\":\"object:1240\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testSave(TermList.class, "termListDictionaryDatas", "termName",
+                () -> controller.saveTermListDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateTermListDictionary() {
+        jsonString = "{\"termListDictionaryData\":{\"id\":1,\"actionListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationListDatas\":[{\"$$hashKey\":\"object:1220\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"destinationServiceDatas\":[{\"$$hashKey\":\"object:1230\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"fromZoneDatas\":[{\"$$hashKey\":\"object:1245\",\"id\":\"choice1\",\"option\":\"Test\"}],\"sourceListDatas\":[{\"$$hashKey\":\"object:1215\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"sourceServiceDatas\":[{\"$$hashKey\":\"object:1225\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"termDescription\":\"test\",\"termName\":\"Test\",\"toZoneDatas\":[{\"$$hashKey\":\"object:1240\",\"id\":\"choice1\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testUpdate(TermList.class, "termListDictionaryDatas", "termName",
+                () -> controller.saveTermListDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveTermListDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"termDescription\":\"test\",\"termName\":\"Test\"}}";
+        testRemove(TermList.class, "termListDictionaryDatas",
+                () -> controller.removeTermListDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveFWDictionaryList() {
+        jsonString = "{\"fwDictListDictionaryData\":{\"alAttributes\":[{\"$$hashKey\":\"object:1379\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"attributes\":[{\"$$hashKey\":\"object:1374\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"parentItemName\":\"Test\"},\"userid\":\"demo\"}";
+        testSave(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
+                () -> controller.saveFWDictionaryList(request, response));
+    }
+
+    @Test
+    public void testUpdateFWDictionaryList() {
+        jsonString = "{\"fwDictListDictionaryData\":{\"id\":1,\"alAttributes\":[{\"$$hashKey\":\"object:1379\",\"id\":\"choice1\",\"option\":\"Group_Test\"}],\"attributes\":[{\"$$hashKey\":\"object:1374\",\"id\":\"choice1\",\"option\":\"Test\"}],\"description\":\"test\",\"parentItemName\":\"Test\"},\"userid\":\"demo\"}";
+        testUpdate(FirewallDictionaryList.class, "fwDictListDictionaryDatas", "parentItemName",
+                () -> controller.saveFWDictionaryList(request, response));
+    }
+
+    @Test
+    public void testRemoveFWDictionaryList() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"parentItemName\":\"Test\"}}";
+        testRemove(FirewallDictionaryList.class, "fwDictListDictionaryDatas",
+                () -> controller.removeFWDictionaryList(request, response));
+    }
+
+    @Test
+    public void testSaveFirewallTagPickerDictionary() {
+        jsonString = "{\"fwTagPickerDictionaryData\":{\"description\":\"test\",\"networkRole\":\"test\",\"tagPickerName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1855\",\"id\":\"choice1\",\"number\":\"test\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testSave(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
+                () -> controller.saveFirewallTagPickerDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateFirewallTagPickerDictionary() {
+        jsonString = "{\"fwTagPickerDictionaryData\":{\"id\":1,\"description\":\"test\",\"networkRole\":\"test\",\"tagPickerName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1855\",\"id\":\"choice1\",\"number\":\"test\",\"option\":\"Test\"}]},\"userid\":\"demo\"}";
+        testUpdate(FWTagPicker.class, "fwTagPickerDictionaryDatas", "tagPickerName",
+                () -> controller.saveFirewallTagPickerDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveFirewallTagPickerDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"tagPickerName\":\"Test\"}}";
+        testRemove(FWTagPicker.class, "fwTagPickerDictionaryDatas",
+                () -> controller.removeFirewallTagPickerDictionary(request, response));
+    }
+
+    @Test
+    public void testSaveFirewallTagDictionary() {
+        jsonString = "{\"fwTagDictionaryData\":{\"description\":\"test\",\"fwTagName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1690\",\"id\":\"choice1\",\"tags\":\"test\"}]},\"userid\":\"demo\"}";
+        testSave(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
+                () -> controller.saveFirewallTagDictionary(request, response));
+    }
+
+    @Test
+    public void testUpdateFirewallTagDictionary() {
+        jsonString = "{\"fwTagDictionaryData\":{\"id\":1,\"description\":\"test\",\"fwTagName\":\"Test\",\"tags\":[{\"$$hashKey\":\"object:1690\",\"id\":\"choice1\",\"tags\":\"test\"}]},\"userid\":\"demo\"}";
+        testUpdate(FWTag.class, "fwTagDictionaryDatas", "fwTagName",
+                () -> controller.saveFirewallTagDictionary(request, response));
+    }
+
+    @Test
+    public void testRemoveFirewallTagDictionary() {
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"fwTagName\":\"Test\"}}";
+        testRemove(FWTag.class, "fwTagDictionaryDatas",
+                () -> controller.removeFirewallTagDictionary(request, response));
+    }
+
+    /**
+     * Tests a "get" function that uses commonClassDao.getDataByColumn().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param func
+     */
+    private void test_WithGetDataByColumn(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
+        when(commonClassDao.getDataByColumn(clazz, contentName)).thenReturn(data);
+        try {
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+            verify(commonClassDao).getDataByColumn(clazz, contentName);
+        } catch (Exception e) {
+            fail("get " + clazz.getName() + e);
+        }
+    }
+
+    /**
+     * Tests a "get" function that uses commonClassDao.getData().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param func
+     */
+    private void test_WithGetData(Class<?> clazz, String contentData, VoidFunc func) {
+        when(commonClassDao.getData(clazz)).thenReturn(new ArrayList<>());
+        try {
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+            verify(commonClassDao).getData(clazz);
+        } catch (Exception e) {
+            fail("get " + clazz.getName() + e);
+        }
+    }
+
+    /**
+     * Tests a function that uses commonClassDao.save().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param func
+     */
+    private void testSave(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
+        testSave(clazz, contentData, contentName, "Test", func);
+    }
+
+    /**
+     * Tests a function that uses commonClassDao.save().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param testName
+     * @param func
+     */
+    private void testSave(Class<?> clazz, String contentData, String contentName, String testName, VoidFunc func) {
+        try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
+            when(request.getReader()).thenReturn(br);
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+            verify(commonClassDao).checkDuplicateEntry(testName, contentName, clazz);
+            verify(commonClassDao).save(any());
+            verify(commonClassDao, never()).update(any());
+            verify(commonClassDao).getData(clazz);
+
+        } catch (IOException e) {
+            fail("save " + clazz.getName() + e);
+        }
+    }
+
+    /**
+     * Tests a function that uses commonClassDao.update().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param func
+     */
+    private void testUpdate(Class<?> clazz, String contentData, String contentName, VoidFunc func) {
+        testUpdate(clazz, contentData, contentName, "Test", func);
+    }
+
+    /**
+     * Tests a function that uses commonClassDao.update().
+     *
+     * @param clazz
+     * @param contentData
+     * @param contentName
+     * @param testName
+     * @param func
+     */
+    private void testUpdate(Class<?> clazz, String contentData, String contentName, String testName, VoidFunc func) {
+        try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
+            when(request.getReader()).thenReturn(br);
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+            verify(commonClassDao).checkDuplicateEntry(testName, contentName, clazz);
+            verify(commonClassDao, never()).save(any());
+            verify(commonClassDao).update(any());
+            verify(commonClassDao).getData(clazz);
+
+        } catch (IOException e) {
+            fail("update " + clazz.getName() + e);
+        }
+    }
+
+    /**
+     * Tests a function that uses commonClassDao.delete() and
+     * commonClassDao.getData().
+     *
+     * @param clazz
+     * @param contentData
+     * @param func
+     */
+    private void testRemove(Class<?> clazz, String contentData, VoidFunc func) {
+        try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
+            when(request.getReader()).thenReturn(br);
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+            verify(commonClassDao).delete(any());
+            verify(commonClassDao).getData(clazz);
+
+        } catch (IOException e) {
+            fail("remove " + clazz.getName() + e);
+        }
+    }
+
+    /**
+     * Tests a "validate" function.
+     *
+     * @param clazz
+     * @param contentData
+     * @param func
+     */
+    private void testValidate(Class<?> clazz, String contentData, VoidFunc func) {
+        try (BufferedReader br = new BufferedReader(new StringReader(jsonString))) {
+            when(request.getReader()).thenReturn(br);
+            func.apply();
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains(contentData));
+
+        } catch (IOException e) {
+            fail("save " + clazz.getName() + e);
+        }
+    }
+
+    @FunctionalInterface
+    private static interface VoidFunc {
+        public void apply() throws IOException;
+    }
 }
index ae71692..2e9df25 100644 (file)
@@ -58,17 +58,17 @@ import org.springframework.mock.web.MockHttpServletResponse;
  */
 
 public class MicroServiceDictionaryControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(MicroServiceDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private MicroServiceDictionaryController controller = null;
-        BufferedReader br = null;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
+
+    private static Logger logger = FlexLogger.getLogger(MicroServiceDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private MicroServiceDictionaryController controller = null;
+     BufferedReader br = null;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
         commonClassDao = Mockito.mock(CommonClassDao.class);
         UserInfo userInfo = new UserInfo();
         userInfo.setUserLoginId("testUserId");
@@ -89,21 +89,21 @@ public class MicroServiceDictionaryControllerTest {
         MicroServiceModels microServiceModels = new MicroServiceModels();
         
         doNothing().when(commonClassDao).delete(microServiceModels);
-               
-               MicroServiceDictionaryController.setCommonClassDao(commonClassDao);     
-               
-               controller = new MicroServiceDictionaryController();
+
+        MicroServiceDictionaryController.setCommonClassDao(commonClassDao);
+
+        controller = new MicroServiceDictionaryController();
        
         HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
         
-               jsonString = "{\"microServiceModelsDictionaryData\": {\"modelName\": \"test\",  \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                               + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                               + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                               + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                               + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                               + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                               + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                               + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+        jsonString = "{\"microServiceModelsDictionaryData\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                + " \"version\": \"\",\"createdBy\": \"someone\",      \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"   },"
+                + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                + "    \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                + "    \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                + "    \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
     
         br = new BufferedReader(new StringReader(jsonString));
         //--- mock the getReader() call
@@ -112,653 +112,653 @@ public class MicroServiceDictionaryControllerTest {
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);        
         logger.info("setUp: exit");
-       }
-
-       
-       @Test
-       public void testSaveMicroServiceHeaderDefaultValues() {
-               logger.info("testSaveMicroServiceHeaderDefaultValues: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"modelAttributeDictionaryData\": {\"onapName\": \"test\",       \"guard\": false,\"priority\": \"3\","
-                                       + " \"riskType\": \"test\", \"riskLevel\": \"7\", \"modelName\": \"testname\"}}";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveMicroServiceHeaderDefaultValues(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveMicroServiceHeaderDefaultValues: exit");
-       }
-       
-       
-       @Test
-       public void testGetMicroServiceHeaderDefaultsEntityDataByName() {
-               logger.info("testGetMicroServiceHeaderDefaultsEntityDataByName: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceHeaderDefaultsEntityDataByName(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceHeaderDefaultsEntityDataByName: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceHeaderDefaultsEntityData() {
-               logger.info("testGetMicroServiceHeaderDefaultsEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceHeaderDefaultsEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceHeaderDefaultsEntityData: exit");
-       }
-       
-       @Test
-       public void testRemoveMicroServiceHeaderDefaults() {
-               logger.info("testRemoveMicroServiceHeaderDefaults: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceHeaderDefaults(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveMicroServiceHeaderDefaults: exit");
-       }
-
-
-       @Test
-       public void testGetDCAEUUIDDictionaryByNameEntityData() {
-               
-               logger.info("testGetDCAEUUIDDictionaryByNameEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-
-               controller.getDCAEUUIDDictionaryByNameEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetDCAEUUIDDictionaryByNameEntityData: exit");
-       }
-
-       @Test
-       public void testGetDCAEUUIDDictionaryEntityData() {
-               
-               logger.info("testGetDCAEUUIDDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getDCAEUUIDDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetDCAEUUIDDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveDCAEUUIDDictionary() {
-               logger.info("testSaveDCAEUUIDDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"dcaeUUIDDictionaryData\": {\"modelName\": \"test\",    \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveDCAEUUIDDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveDCAEUUIDDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveDCAEUUIDDictionary() {
-               logger.info("testRemoveDCAEUUIDDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceConfigNameDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveDCAEUUIDDictionary: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceConfigNameByNameDictionaryEntityData() {
-               logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceConfigNameByNameDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceConfigNameDictionaryEntityData() {
-               logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceConfigNameDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceConfigNameDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveMicroServiceConfigNameDictionary() {
-               logger.info("testSaveMicroServiceConfigNameDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"microServiceConfigNameDictionaryData\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveMicroServiceConfigNameDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveMicroServiceConfigNameDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveMicroServiceConfigNameDictionary() {
-               logger.info("testRemoveMicroServiceConfigNameDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceConfigNameDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveMicroServiceConfigNameDictionary: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceLocationByNameDictionaryEntityData() {
-               
-               logger.info("testGetMicroServiceLocationByNameDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceLocationByNameDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceLocationByNameDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceLocationDictionaryEntityData() {
-               logger.info("testGetMicroServiceLocationDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceLocationDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceLocationDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveMicroServiceLocationDictionary() {
-               logger.info("testSaveMicroServiceLocationDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"microServiceLocationDictionaryData\": {\"modelName\": \"test\",        \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveMicroServiceLocationDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveMicroServiceLocationDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveMicroServiceLocationDictionary() {
-               logger.info("testRemoveMicroServiceLocationDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceLocationDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveMicroServiceLocationDictionary: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceAttributeByNameDictionaryEntityData() {
-               logger.info("testGetMicroServiceAttributeByNameDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceAttributeByNameDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceAttributeByNameDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceAttributeDictionaryEntityData() {
-               logger.info("testGetMicroServiceAttributeDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceAttributeDictionaryEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceAttributeDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveMicroServiceAttributeDictionary() {
-               logger.info("testSaveMicroServiceAttributeDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"modelAttributeDictionaryData\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveMicroServiceAttributeDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveMicroServiceAttributeDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveMicroServiceAttributeDictionary() {
-               logger.info("testRemoveMicroServiceAttributeDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceAttributeDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveMicroServiceAttributeDictionary: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceModelsDictionaryByNameEntityData() {
-               logger.info("testGetMicroServiceModelsDictionaryByNameEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               
-               controller.getMicroServiceModelsDictionaryByNameEntityData(response);
-               
-               try {
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-               } catch (UnsupportedEncodingException e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceModelsDictionaryByNameEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceModelsDictionaryByVersionEntityData() {
-               logger.info("testGetMicroServiceModelsDictionaryByVersionEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
-               
-           BufferedReader br = new BufferedReader(new StringReader(msModelJson));
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.getMicroServiceModelsDictionaryByVersionEntityData(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("No model name given"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceModelsDictionaryByVersionEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceModelsDictionaryEntityData() {
-               logger.info("testGetMicroServiceModelsDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
-               
-           BufferedReader br = new BufferedReader(new StringReader(msModelJson));
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.getMicroServiceModelsDictionaryEntityData(response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceModelsDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceModelsDictionaryEntityDataServiceVersion() {
-               logger.info("testGetMicroServiceModelsDictionaryEntityDataServiceVersion: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
-               
-           BufferedReader br = new BufferedReader(new StringReader(msModelJson));
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.getMicroServiceModelsDictionaryEntityDataServiceVersion(response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceModelsDictionaryEntityDataServiceVersion: exit");
-       }
-
-       @Test
-       public void testGetMicroServiceModelsDictionaryClassEntityData() {
-               logger.info("testGetMicroServiceModelsDictionaryClassEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
-               
-           BufferedReader br = new BufferedReader(new StringReader(msModelJson));
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.getMicroServiceModelsDictionaryClassEntityData(response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryClassDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetMicroServiceModelsDictionaryClassEntityData: exit");
-       }
-
-       @Test
-       public void testSaveMicroServiceModelsDictionary() {
-               logger.info("testSaveMicroServiceModelsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveMicroServiceModelsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveMicroServiceModelsDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveMicroServiceModelsDictionary() {
-               logger.info("testRemoveMicroServiceModelsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeMicroServiceModelsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveMicroServiceModelsDictionary: exit");
-       }
+    }
+
+
+    @Test
+    public void testSaveMicroServiceHeaderDefaultValues() {
+        logger.info("testSaveMicroServiceHeaderDefaultValues: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"modelAttributeDictionaryData\": {\"onapName\": \"test\",  \"guard\": false,\"priority\": \"3\","
+                    + " \"riskType\": \"test\", \"riskLevel\": \"7\", \"modelName\": \"testname\"}}";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveMicroServiceHeaderDefaultValues(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveMicroServiceHeaderDefaultValues: exit");
+    }
+
+
+    @Test
+    public void testGetMicroServiceHeaderDefaultsEntityDataByName() {
+        logger.info("testGetMicroServiceHeaderDefaultsEntityDataByName: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceHeaderDefaultsEntityDataByName(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceHeaderDefaultsEntityDataByName: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceHeaderDefaultsEntityData() {
+        logger.info("testGetMicroServiceHeaderDefaultsEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceHeaderDefaultsEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceHeaderDefaultsEntityData: exit");
+    }
+
+    @Test
+    public void testRemoveMicroServiceHeaderDefaults() {
+        logger.info("testRemoveMicroServiceHeaderDefaults: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceHeaderDefaults(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceHeaderDefaultDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveMicroServiceHeaderDefaults: exit");
+    }
+
+
+    @Test
+    public void testGetDCAEUUIDDictionaryByNameEntityData() {
+
+        logger.info("testGetDCAEUUIDDictionaryByNameEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getDCAEUUIDDictionaryByNameEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetDCAEUUIDDictionaryByNameEntityData: exit");
+    }
+
+    @Test
+    public void testGetDCAEUUIDDictionaryEntityData() {
+
+        logger.info("testGetDCAEUUIDDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getDCAEUUIDDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetDCAEUUIDDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveDCAEUUIDDictionary() {
+        logger.info("testSaveDCAEUUIDDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"dcaeUUIDDictionaryData\": {\"modelName\": \"test\",       \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveDCAEUUIDDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("dcaeUUIDDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveDCAEUUIDDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveDCAEUUIDDictionary() {
+        logger.info("testRemoveDCAEUUIDDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceConfigNameDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveDCAEUUIDDictionary: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceConfigNameByNameDictionaryEntityData() {
+        logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceConfigNameByNameDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceConfigNameDictionaryEntityData() {
+        logger.info("testGetMicroServiceConfigNameByNameDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceConfigNameDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceConfigNameDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveMicroServiceConfigNameDictionary() {
+        logger.info("testSaveMicroServiceConfigNameDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"microServiceConfigNameDictionaryData\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveMicroServiceConfigNameDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveMicroServiceConfigNameDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveMicroServiceConfigNameDictionary() {
+        logger.info("testRemoveMicroServiceConfigNameDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceConfigNameDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceConfigNameDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveMicroServiceConfigNameDictionary: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceLocationByNameDictionaryEntityData() {
+
+        logger.info("testGetMicroServiceLocationByNameDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceLocationByNameDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceLocationByNameDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceLocationDictionaryEntityData() {
+        logger.info("testGetMicroServiceLocationDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceLocationDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceLocationDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveMicroServiceLocationDictionary() {
+        logger.info("testSaveMicroServiceLocationDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"microServiceLocationDictionaryData\": {\"modelName\": \"test\",   \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveMicroServiceLocationDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveMicroServiceLocationDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveMicroServiceLocationDictionary() {
+        logger.info("testRemoveMicroServiceLocationDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceLocationDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceLocationDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveMicroServiceLocationDictionary: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceAttributeByNameDictionaryEntityData() {
+        logger.info("testGetMicroServiceAttributeByNameDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceAttributeByNameDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceAttributeByNameDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceAttributeDictionaryEntityData() {
+        logger.info("testGetMicroServiceAttributeDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceAttributeDictionaryEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceAttributeDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveMicroServiceAttributeDictionary() {
+        logger.info("testSaveMicroServiceAttributeDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"modelAttributeDictionaryData\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.saveMicroServiceAttributeDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveMicroServiceAttributeDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveMicroServiceAttributeDictionary() {
+        logger.info("testRemoveMicroServiceAttributeDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceAttributeDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceAttributeDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveMicroServiceAttributeDictionary: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceModelsDictionaryByNameEntityData() {
+        logger.info("testGetMicroServiceModelsDictionaryByNameEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+
+        controller.getMicroServiceModelsDictionaryByNameEntityData(response);
+
+        try {
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+        } catch (UnsupportedEncodingException e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceModelsDictionaryByNameEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceModelsDictionaryByVersionEntityData() {
+        logger.info("testGetMicroServiceModelsDictionaryByVersionEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
+
+        BufferedReader br = new BufferedReader(new StringReader(msModelJson));
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.getMicroServiceModelsDictionaryByVersionEntityData(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("No model name given"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceModelsDictionaryByVersionEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceModelsDictionaryEntityData() {
+        logger.info("testGetMicroServiceModelsDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
+
+        BufferedReader br = new BufferedReader(new StringReader(msModelJson));
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.getMicroServiceModelsDictionaryEntityData(response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceModelsDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceModelsDictionaryEntityDataServiceVersion() {
+        logger.info("testGetMicroServiceModelsDictionaryEntityDataServiceVersion: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
+
+        BufferedReader br = new BufferedReader(new StringReader(msModelJson));
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.getMicroServiceModelsDictionaryEntityDataServiceVersion(response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceModelsDictionaryEntityDataServiceVersion: exit");
+    }
+
+    @Test
+    public void testGetMicroServiceModelsDictionaryClassEntityData() {
+        logger.info("testGetMicroServiceModelsDictionaryClassEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        String msModelJson = "{\"microServiceModelsDictionaryData\":[\"modelName\"]}";
+
+        BufferedReader br = new BufferedReader(new StringReader(msModelJson));
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.getMicroServiceModelsDictionaryClassEntityData(response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryClassDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetMicroServiceModelsDictionaryClassEntityData: exit");
+    }
+
+    @Test
+    public void testSaveMicroServiceModelsDictionary() {
+        logger.info("testSaveMicroServiceModelsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.saveMicroServiceModelsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveMicroServiceModelsDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveMicroServiceModelsDictionary() {
+        logger.info("testRemoveMicroServiceModelsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeMicroServiceModelsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("microServiceModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveMicroServiceModelsDictionary: exit");
+    }
 
 }
index edc08f3..dd355d9 100644 (file)
@@ -49,17 +49,17 @@ import org.springframework.mock.web.MockHttpServletResponse;
 
 
 public class OptimizationDictionaryControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(OptimizationDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private OptimizationDictionaryController controller = null;
-        BufferedReader br = null;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
+
+    private static Logger logger = FlexLogger.getLogger(OptimizationDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private OptimizationDictionaryController controller = null;
+     BufferedReader br = null;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
         commonClassDao = Mockito.mock(CommonClassDao.class);
         UserInfo userInfo = new UserInfo();
         userInfo.setUserLoginId("testUserId");
@@ -69,21 +69,21 @@ public class OptimizationDictionaryControllerTest {
         OptimizationModels optimziationModels = new OptimizationModels();
         
         doNothing().when(commonClassDao).delete(optimziationModels);
-               
+
         OptimizationDictionaryController.setCommonClassDao(commonClassDao);    
-               
-               controller = new OptimizationDictionaryController();
+
+        controller = new OptimizationDictionaryController();
        
         HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
         
-               jsonString = "{\"optimizationModelsDictionaryData\": {\"modelName\": \"test\",  \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                               + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                               + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                               + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                               + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                               + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                               + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                               + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+        jsonString = "{\"optimizationModelsDictionaryData\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                + " \"version\": \"\",\"createdBy\": \"someone\",      \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"   },"
+                + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                + "    \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                + "    \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                + "    \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
     
         br = new BufferedReader(new StringReader(jsonString));
         //--- mock the getReader() call
@@ -92,82 +92,82 @@ public class OptimizationDictionaryControllerTest {
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);        
         logger.info("setUp: exit");
-       }
-
-       @Test
-       public void testGetOptimizationModelsDictionaryEntityData() {
-               logger.info("testGetOptimizationModelsDictionaryEntityData: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-               String modelJson = "{\"optimizationModelsDictionaryData\":[\"modelName\"]}";
-               
-           BufferedReader br = new BufferedReader(new StringReader(modelJson));
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.getOptimizationModelsDictionaryEntityData(response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testGetOptimizationModelsDictionaryEntityData: exit");
-       }
-
-       @Test
-       public void testSaveOptimizationModelsDictionary() {
-               logger.info("testSaveOptimizationModelsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.saveOptimizationModelsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testSaveOptimizationModelsDictionary: exit");
-       }
-
-       @Test
-       public void testRemoveOptimizationModelsDictionary() {
-               logger.info("testRemoveOptimizationModelsDictionary: Entering");
-
-               MockHttpServletResponse response =  new MockHttpServletResponse();
-           request = mock(HttpServletRequest.class);   
-       
-               try {
-                   // mock the getReader() call
-                       jsonString = "{\"data\": {\"modelName\": \"test\",      \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
-                                       + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
-                                       + " \"version\": \"\",\"createdBy\": \"someone\",       \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
-                                       + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"    },"
-                                       + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
-                                       + "     \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
-                                       + "     \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
-                                       + "     \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
-                       
-                       BufferedReader br = new BufferedReader(new StringReader(jsonString));
-                       when(request.getReader()).thenReturn(br);                   
-                       controller.removeOptimizationModelsDictionary(request, response);
-                       logger.info("response.getContentAsString(): " + response.getContentAsString());
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
-
-               } catch (Exception e) {
-                       fail("Exception: " + e);
-               }
-               
-               logger.info("testRemoveOptimizationModelsDictionary: exit");
-       }
+    }
+
+    @Test
+    public void testGetOptimizationModelsDictionaryEntityData() {
+        logger.info("testGetOptimizationModelsDictionaryEntityData: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        String modelJson = "{\"optimizationModelsDictionaryData\":[\"modelName\"]}";
+
+        BufferedReader br = new BufferedReader(new StringReader(modelJson));
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.getOptimizationModelsDictionaryEntityData(response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testGetOptimizationModelsDictionaryEntityData: exit");
+    }
+
+    @Test
+    public void testSaveOptimizationModelsDictionary() {
+        logger.info("testSaveOptimizationModelsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            when(request.getReader()).thenReturn(br);
+            controller.saveOptimizationModelsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testSaveOptimizationModelsDictionary: exit");
+    }
+
+    @Test
+    public void testRemoveOptimizationModelsDictionary() {
+        logger.info("testRemoveOptimizationModelsDictionary: Entering");
+
+        MockHttpServletResponse response =  new MockHttpServletResponse();
+        request = mock(HttpServletRequest.class);
+
+        try {
+            // mock the getReader() call
+            jsonString = "{\"data\": {\"modelName\": \"test\", \"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+                    + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,\"date\": \"2017-04-12T21:26:57.000Z\", "
+                    + " \"version\": \"\",\"createdBy\": \"someone\",  \"modifiedBy\": \"someone\",    \"content\": \"\",\"recursive\": false},"
+                    + " \"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"       },"
+                    + " \"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"Micro Service\",\"policyName\": \"may1501\", "
+                    + "        \"policyDescription\": \"testing input\", \"onapName\": \"RaviTest\",\"guard\": \"False\",\"riskType\": \"Risk12345\",\"riskLevel\": \"2\","
+                    + "        \"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\",\"version\": \"1707.41.02\",\"ruleGridData\": [ [\"fileId\"]],\"ttlDate\": null}}, "
+                    + "        \"policyJSON\": {\"pmTableName\": \"test\",     \"dmdTopic\": \"1\",\"fileId\": \"56\"} }";
+
+            BufferedReader br = new BufferedReader(new StringReader(jsonString));
+            when(request.getReader()).thenReturn(br);
+            controller.removeOptimizationModelsDictionary(request, response);
+            logger.info("response.getContentAsString(): " + response.getContentAsString());
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("optimizationModelsDictionaryDatas"));
+
+        } catch (Exception e) {
+            fail("Exception: " + e);
+        }
+
+        logger.info("testRemoveOptimizationModelsDictionary: exit");
+    }
 
 }
index 40ec348..9bf2ae5 100644 (file)
@@ -48,338 +48,338 @@ import org.onap.policy.rest.jpa.UserInfo;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class PolicyScopeDictionaryControllerTest {
-       private static Logger logger = FlexLogger.getLogger(PolicyScopeDictionaryControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private PolicyScopeDictionaryController controller = null;
-       private MockHttpServletResponse response = null;
-       private UserInfo userInfo;
-       private List<String>  data;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               
-               data = new ArrayList<>();
-               data.add("Test");
-               
-               userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-       
-               doNothing().when(commonClassDao).delete(new GroupPolicyScopeList());
-               doNothing().when(commonClassDao).save(new GroupPolicyScopeList());
-               
-               controller = new PolicyScopeDictionaryController();
-               controller.setCommonClassDao(commonClassDao);
-               
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               new DictionaryUtils(commonClassDao);
+    private static Logger logger = FlexLogger.getLogger(PolicyScopeDictionaryControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private PolicyScopeDictionaryController controller = null;
+    private MockHttpServletResponse response = null;
+    private UserInfo userInfo;
+    private List<String>  data;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+
+        data = new ArrayList<>();
+        data.add("Test");
+
+        userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        doNothing().when(commonClassDao).delete(new GroupPolicyScopeList());
+        doNothing().when(commonClassDao).save(new GroupPolicyScopeList());
+
+        controller = new PolicyScopeDictionaryController();
+        controller.setCommonClassDao(commonClassDao);
+
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        new DictionaryUtils(commonClassDao);
         DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
         mock(DictionaryUtils.class);
-               logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testGetGroupPolicyScopeEntityDataByName(){
-               when(commonClassDao.getDataByColumn(GroupPolicyScopeList.class, "name")).thenReturn(data);
-               controller.getGroupPolicyScopeEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetGroupPolicyScopeEntityData(){
-               when(commonClassDao.getData(GroupPolicyScopeList.class)).thenReturn(new ArrayList<>());
-               controller.getGroupPolicyScopeEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSClosedLoopEntityDataByName(){
-               when(commonClassDao.getDataByColumn(PolicyScopeClosedLoop.class, "name")).thenReturn(data);
-               controller.getPSClosedLoopEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSClosedLoopEntityData(){
-               when(commonClassDao.getData(PolicyScopeClosedLoop.class)).thenReturn(new ArrayList<>());
-               controller.getPSClosedLoopEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSServiceEntityDataByName(){
-               when(commonClassDao.getDataByColumn(PolicyScopeService.class, "name")).thenReturn(data);
-               controller.getPSServiceEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSServiceEntityData(){
-               when(commonClassDao.getData(PolicyScopeService.class)).thenReturn(new ArrayList<>());
-               controller.getPSServiceEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSTypeEntityDataByName(){
-               when(commonClassDao.getDataByColumn(PolicyScopeType.class, "name")).thenReturn(data);
-               controller.getPSTypeEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSTypeEntityData(){
-               when(commonClassDao.getData(PolicyScopeType.class)).thenReturn(new ArrayList<>());
-               controller.getPSTypeEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSResourceEntityDataByName(){
-               when(commonClassDao.getDataByColumn(PolicyScopeResource.class, "name")).thenReturn(data);
-               controller.getPSResourceEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetPSResourceEntityData(){
-               when(commonClassDao.getData(PolicyScopeResource.class)).thenReturn(new ArrayList<>());
-               controller.getPSResourceEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testSavePSGroupScopeDictionary(){
-               jsonString = "{\"groupPolicyScopeListData\":{\"description\":\"test\",\"groupName\":\"Test\"},\"groupPolicyScopeListData1\":{\"closedloop\":\"SampleClosedLoop\",\"resource\":\"SampleResource\",\"service\":\"SampleService\",\"type\":\"SampleType\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSGroupScopeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePSGroupScopeDictionary(){
-               jsonString = "{\"groupPolicyScopeListData\":{\"id\":1,\"description\":\"test\",\"groupName\":\"Test\"},\"groupPolicyScopeListData1\":{\"closedloop\":\"SampleClosedLoop\",\"resource\":\"SampleResource\",\"service\":\"SampleService\",\"type\":\"SampleType\"},\"userid\":\"demo\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSGroupScopeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePSGroupScopeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePSGroupScopeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSavePSClosedLoopDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psClosedLoopDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSClosedLoopDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePSClosedLoopDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psClosedLoopDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSClosedLoopDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePSClosedLoopDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePSClosedLoopDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSavePSServiceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psServiceDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSServiceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePSServiceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psServiceDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSServiceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePSServiceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePSServiceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSavePSTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psTypeDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePSTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePSTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePSTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSavePSResourceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psResourceDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSResourceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdatePSResourceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"psResourceDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.savePSResourceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemovePSResourceDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removePSResourceDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testGetGroupPolicyScopeEntityDataByName(){
+        when(commonClassDao.getDataByColumn(GroupPolicyScopeList.class, "name")).thenReturn(data);
+        controller.getGroupPolicyScopeEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetGroupPolicyScopeEntityData(){
+        when(commonClassDao.getData(GroupPolicyScopeList.class)).thenReturn(new ArrayList<>());
+        controller.getGroupPolicyScopeEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSClosedLoopEntityDataByName(){
+        when(commonClassDao.getDataByColumn(PolicyScopeClosedLoop.class, "name")).thenReturn(data);
+        controller.getPSClosedLoopEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSClosedLoopEntityData(){
+        when(commonClassDao.getData(PolicyScopeClosedLoop.class)).thenReturn(new ArrayList<>());
+        controller.getPSClosedLoopEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSServiceEntityDataByName(){
+        when(commonClassDao.getDataByColumn(PolicyScopeService.class, "name")).thenReturn(data);
+        controller.getPSServiceEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSServiceEntityData(){
+        when(commonClassDao.getData(PolicyScopeService.class)).thenReturn(new ArrayList<>());
+        controller.getPSServiceEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSTypeEntityDataByName(){
+        when(commonClassDao.getDataByColumn(PolicyScopeType.class, "name")).thenReturn(data);
+        controller.getPSTypeEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSTypeEntityData(){
+        when(commonClassDao.getData(PolicyScopeType.class)).thenReturn(new ArrayList<>());
+        controller.getPSTypeEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSResourceEntityDataByName(){
+        when(commonClassDao.getDataByColumn(PolicyScopeResource.class, "name")).thenReturn(data);
+        controller.getPSResourceEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetPSResourceEntityData(){
+        when(commonClassDao.getData(PolicyScopeResource.class)).thenReturn(new ArrayList<>());
+        controller.getPSResourceEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testSavePSGroupScopeDictionary(){
+        jsonString = "{\"groupPolicyScopeListData\":{\"description\":\"test\",\"groupName\":\"Test\"},\"groupPolicyScopeListData1\":{\"closedloop\":\"SampleClosedLoop\",\"resource\":\"SampleResource\",\"service\":\"SampleService\",\"type\":\"SampleType\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSGroupScopeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePSGroupScopeDictionary(){
+        jsonString = "{\"groupPolicyScopeListData\":{\"id\":1,\"description\":\"test\",\"groupName\":\"Test\"},\"groupPolicyScopeListData1\":{\"closedloop\":\"SampleClosedLoop\",\"resource\":\"SampleResource\",\"service\":\"SampleService\",\"type\":\"SampleType\"},\"userid\":\"demo\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSGroupScopeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePSGroupScopeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePSGroupScopeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("groupPolicyScopeListDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSavePSClosedLoopDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psClosedLoopDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSClosedLoopDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePSClosedLoopDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psClosedLoopDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSClosedLoopDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePSClosedLoopDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePSClosedLoopDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psClosedLoopDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSavePSServiceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psServiceDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSServiceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePSServiceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psServiceDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSServiceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePSServiceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePSServiceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psServiceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSavePSTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psTypeDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePSTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePSTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePSTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSavePSResourceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psResourceDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSResourceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdatePSResourceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"psResourceDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.savePSResourceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemovePSResourceDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removePSResourceDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("psResourceDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
 }
index 1f8cb6f..dbddecc 100644 (file)
@@ -54,22 +54,22 @@ import com.att.research.xacml.api.pap.PAPException;
 
 
 public class PushPolicyControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(PushPolicyControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private PushPolicyController controller = null;
-       private HttpServletResponse response = null;
+
+    private static Logger logger = FlexLogger.getLogger(PushPolicyControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private PushPolicyController controller = null;
+    private HttpServletResponse response = null;
     private List<String> headers = new ArrayList<>();
     private ServletConfig servletConfig;
     private XACMLPapServlet pap;
 
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               request = Mockito.mock(HttpServletRequest.class);
-               response = Mockito.mock(HttpServletResponse.class);
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        request = Mockito.mock(HttpServletRequest.class);
+        response = Mockito.mock(HttpServletResponse.class);
         Mockito.when(request.getHeaderNames()).thenReturn(Collections.enumeration(headers));
         Mockito.when(request.getAttributeNames()).thenReturn(Collections.enumeration(headers));
 
@@ -78,72 +78,72 @@ public class PushPolicyControllerTest {
         Mockito.when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
         Mockito.when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("src/test/resources/xacml.pap.properties");
        
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-               controller = new PushPolicyController();
-               controller.setCommonClassDao(commonClassDao);
-               logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testPushPolicy() throws ServletException, PAPException{
-               PolicyVersion versionData = new PolicyVersion();
-               versionData.setPolicyName("com"+File.separator+"Config_Test");
-               versionData.setActiveVersion(1);
-               versionData.setHigherVersion(1);
-               List<Object> data = new ArrayList<>();
-               data.add(versionData);
-               when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(data);
-               pap = new XACMLPapServlet();
-               pap.init(servletConfig);
-               callPushPolicy();
-               when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(null);
-               callPushPolicy();
-       }
-       
-       public void callPushPolicy(){
-               jsonString = "{\"policyScope\":\"com\",\"filePrefix\":\"Config_\",\"policyName\":\"Test\",\"pdpGroup\":\"default\"}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       char[] charBuffer = new char[8 * 1024];
-                       StringBuilder builder = new StringBuilder();
-                       int numCharsRead;
-                       while ((numCharsRead = br.read(charBuffer, 0, charBuffer.length)) != -1) {
-                               builder.append(charBuffer, 0, numCharsRead);
-                       }
-                       when(request.getInputStream()).thenReturn(getInputStream(builder.toString().getBytes(StandardCharsets.UTF_8)));
-                       controller.pushPolicy(request, response);
-                       assertTrue(response != null);
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       public ServletInputStream getInputStream(byte[] body) throws IOException { 
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+        controller = new PushPolicyController();
+        controller.setCommonClassDao(commonClassDao);
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testPushPolicy() throws ServletException, PAPException{
+        PolicyVersion versionData = new PolicyVersion();
+        versionData.setPolicyName("com"+File.separator+"Config_Test");
+        versionData.setActiveVersion(1);
+        versionData.setHigherVersion(1);
+        List<Object> data = new ArrayList<>();
+        data.add(versionData);
+        when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(data);
+        pap = new XACMLPapServlet();
+        pap.init(servletConfig);
+        callPushPolicy();
+        when(commonClassDao.getDataById(PolicyVersion.class, "policyName", "com"+File.separator+"Config_Test")).thenReturn(null);
+        callPushPolicy();
+    }
+
+    public void callPushPolicy(){
+        jsonString = "{\"policyScope\":\"com\",\"filePrefix\":\"Config_\",\"policyName\":\"Test\",\"pdpGroup\":\"default\"}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            char[] charBuffer = new char[8 * 1024];
+            StringBuilder builder = new StringBuilder();
+            int numCharsRead;
+            while ((numCharsRead = br.read(charBuffer, 0, charBuffer.length)) != -1) {
+                builder.append(charBuffer, 0, numCharsRead);
+            }
+            when(request.getInputStream()).thenReturn(getInputStream(builder.toString().getBytes(StandardCharsets.UTF_8)));
+            controller.pushPolicy(request, response);
+            assertTrue(response != null);
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    public ServletInputStream getInputStream(byte[] body) throws IOException {
         final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body); 
         ServletInputStream servletInputStream = new ServletInputStream() { 
             public int read() throws IOException { 
                 return byteArrayInputStream.read(); 
             }
 
-                       @Override
-                       public boolean isFinished() {
-                               return false;
-                       }
+            @Override
+            public boolean isFinished() {
+                return false;
+            }
 
-                       @Override
-                       public boolean isReady() {
-                               return false;
-                       }
+            @Override
+            public boolean isReady() {
+                return false;
+            }
 
-                       @Override
-                       public void setReadListener(ReadListener readListener) {
-                       } 
+            @Override
+            public void setReadListener(ReadListener readListener) {
+            }
         }; 
         return servletInputStream; 
     } 
-       
-        @After
-        public void destroy(){
-                if(pap!=null)
-                        pap.destroy();
-        }
+
+     @After
+     public void destroy(){
+         if(pap!=null)
+             pap.destroy();
+     }
 }
index 7d23475..ae1840e 100644 (file)
@@ -45,158 +45,158 @@ import org.onap.policy.rest.jpa.UserInfo;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 public class SafePolicyControllerTest {
-       
-       private static Logger logger = FlexLogger.getLogger(SafePolicyControllerTest.class);
-       private static CommonClassDao commonClassDao;
-       private String jsonString = null;
-       private HttpServletRequest request = null;
-       private SafePolicyController controller = null;
-       private MockHttpServletResponse response = null;
-       private UserInfo userInfo;
-       private List<String>  data;
-
-       @Before
-       public void setUp() throws Exception {
-               logger.info("setUp: Entering");
-               commonClassDao = Mockito.mock(CommonClassDao.class);
-
-               data = new ArrayList<>();
-               data.add("Test");
-
-               userInfo = new UserInfo();
-               userInfo.setUserLoginId("Test");
-               userInfo.setUserName("Test");
-
-               doNothing().when(commonClassDao).delete(new RiskType());
-               doNothing().when(commonClassDao).save(new RiskType());
-
-               controller = new SafePolicyController();
-               controller.setCommonClassDao(commonClassDao);
-               new DictionaryUtils(commonClassDao);
-               DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
-               mock(DictionaryUtils.class);
-               request = Mockito.mock(HttpServletRequest.class);
-               response =  new MockHttpServletResponse();  
-               logger.info("setUp: exit");
-       }
-       
-       @Test
-       public void testGetRiskTypeDictionaryByNameEntityData(){
-               when(commonClassDao.getDataByColumn(RiskType.class, "name")).thenReturn(data);
-               controller.getRiskTypeDictionaryByNameEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetRiskTypeDictionaryEntityData(){
-               when(commonClassDao.getData(RiskType.class)).thenReturn(new ArrayList<>());
-               controller.getRiskTypeDictionaryEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetSafePolicyWarningEntityDataByName(){
-               when(commonClassDao.getDataByColumn(SafePolicyWarning.class, "name")).thenReturn(data);
-               controller.getSafePolicyWarningEntityDataByName(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testGetSafePolicyWarningeEntityData(){
-               when(commonClassDao.getData(SafePolicyWarning.class)).thenReturn(new ArrayList<>());
-               controller.getSafePolicyWarningeEntityData(response);
-               try {
-                       assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
-               } catch (Exception e) {
-                       fail();
-                       logger.error(e.getMessage(),e);
-               }
-       }
-       
-       @Test
-       public void testSaveRiskTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"riskTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveRiskTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateRiskTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"riskTypeDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveRiskTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveRiskTypeDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeRiskTypeDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testSaveSafePolicyWarningDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"safePolicyWarningData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveSafePolicyWarningDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testUpdateSafePolicyWarningDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"safePolicyWarningData\":{\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.saveSafePolicyWarningDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
-       
-       @Test
-       public void testRemoveSafePolicyWarningDictionary(){
-               jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
-               try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
-                       when(request.getReader()).thenReturn(br);
-                       controller.removeSafePolicyWarningDictionary(request, response);
-                       assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
-               }catch(Exception e){
-                       logger.error("Exception"+ e);
-               } 
-       }
+
+    private static Logger logger = FlexLogger.getLogger(SafePolicyControllerTest.class);
+    private static CommonClassDao commonClassDao;
+    private String jsonString = null;
+    private HttpServletRequest request = null;
+    private SafePolicyController controller = null;
+    private MockHttpServletResponse response = null;
+    private UserInfo userInfo;
+    private List<String>  data;
+
+    @Before
+    public void setUp() throws Exception {
+        logger.info("setUp: Entering");
+        commonClassDao = Mockito.mock(CommonClassDao.class);
+
+        data = new ArrayList<>();
+        data.add("Test");
+
+        userInfo = new UserInfo();
+        userInfo.setUserLoginId("Test");
+        userInfo.setUserName("Test");
+
+        doNothing().when(commonClassDao).delete(new RiskType());
+        doNothing().when(commonClassDao).save(new RiskType());
+
+        controller = new SafePolicyController();
+        controller.setCommonClassDao(commonClassDao);
+        new DictionaryUtils(commonClassDao);
+        DictionaryUtils.setDictionaryUtils(new DictionaryUtils());
+        mock(DictionaryUtils.class);
+        request = Mockito.mock(HttpServletRequest.class);
+        response =  new MockHttpServletResponse();
+        logger.info("setUp: exit");
+    }
+
+    @Test
+    public void testGetRiskTypeDictionaryByNameEntityData(){
+        when(commonClassDao.getDataByColumn(RiskType.class, "name")).thenReturn(data);
+        controller.getRiskTypeDictionaryByNameEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetRiskTypeDictionaryEntityData(){
+        when(commonClassDao.getData(RiskType.class)).thenReturn(new ArrayList<>());
+        controller.getRiskTypeDictionaryEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetSafePolicyWarningEntityDataByName(){
+        when(commonClassDao.getDataByColumn(SafePolicyWarning.class, "name")).thenReturn(data);
+        controller.getSafePolicyWarningEntityDataByName(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testGetSafePolicyWarningeEntityData(){
+        when(commonClassDao.getData(SafePolicyWarning.class)).thenReturn(new ArrayList<>());
+        controller.getSafePolicyWarningeEntityData(response);
+        try {
+            assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
+        } catch (Exception e) {
+            fail();
+            logger.error(e.getMessage(),e);
+        }
+    }
+
+    @Test
+    public void testSaveRiskTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"riskTypeDictionaryData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveRiskTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateRiskTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"riskTypeDictionaryData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveRiskTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveRiskTypeDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeRiskTypeDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("riskTypeDictionaryDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testSaveSafePolicyWarningDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"safePolicyWarningData\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveSafePolicyWarningDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testUpdateSafePolicyWarningDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"safePolicyWarningData\":{\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.saveSafePolicyWarningDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
+
+    @Test
+    public void testRemoveSafePolicyWarningDictionary(){
+        jsonString = "{\"userid\":\"demo\",\"data\":{\"id\":1,\"description\":\"test\",\"name\":\"Test\"}}";
+        try(BufferedReader br = new BufferedReader(new StringReader(jsonString))){
+            when(request.getReader()).thenReturn(br);
+            controller.removeSafePolicyWarningDictionary(request, response);
+            assertTrue( response.getContentAsString() != null && response.getContentAsString().contains("safePolicyWarningDatas"));
+        }catch(Exception e){
+            logger.error("Exception"+ e);
+        }
+    }
 }
index 2b1300c..da9c4e8 100644 (file)
@@ -40,28 +40,28 @@ import org.onap.policy.rest.jpa.ConfigurationDataEntity;
 import org.onap.policy.rest.jpa.PolicyEntity;
 
 public class ElasticSearchPolicyUpdateTest {
-       
-       private static Logger logger = FlexLogger.getLogger(ElasticSearchPolicyUpdateTest.class);
-       private Object policyContent = "";
-       private XACMLPAPTest papTest;
-       
-       @Before
-       public void setUp() throws IOException, ServletException, SQLException{
-               // Set the system property temporarily
-               System.setProperty("PROPERTY_FILE", "src/test/resources/policyelk.properties");
+
+    private static Logger logger = FlexLogger.getLogger(ElasticSearchPolicyUpdateTest.class);
+    private Object policyContent = "";
+    private XACMLPAPTest papTest;
+
+    @Before
+    public void setUp() throws IOException, ServletException, SQLException{
+        // Set the system property temporarily
+        System.setProperty("PROPERTY_FILE", "src/test/resources/policyelk.properties");
         try {
-                       ClassLoader classLoader = getClass().getClassLoader();
-                       policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
-               } catch (Exception e1) {
-                       logger.error("Exception Occured"+e1);
-               }
+            ClassLoader classLoader = getClass().getClassLoader();
+            policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
+        } catch (Exception e1) {
+            logger.error("Exception Occured"+e1);
+        }
         papTest = new XACMLPAPTest();
-               papTest.setDBDao();
-       }
-       
-       @Test
-       public void testElasticSearchMainFunction() throws SQLException{
-               ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
+        papTest.setDBDao();
+    }
+
+    @Test
+    public void testElasticSearchMainFunction() throws SQLException{
+        ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
         configurationEntity.setConfigBody("Sample Test");
         configurationEntity.setConfigType("OTHER");
         configurationEntity.setConfigurationName("com.Config_SampleTest1206.1.txt");
@@ -70,7 +70,7 @@ public class ElasticSearchPolicyUpdateTest {
         configurationEntity.setModifiedDate(new Date());
         
         
-               PolicyEntity entity = new PolicyEntity();
+        PolicyEntity entity = new PolicyEntity();
         entity.setPolicyName("Config_SampleTest.1.xml");
         entity.setPolicyData(policyContent.toString());
         entity.setScope("com");
@@ -84,14 +84,14 @@ public class ElasticSearchPolicyUpdateTest {
         dao.save(configurationEntity);
         dao.save(entity);
         dao.delete(dao.getEntityItem(PolicyEntity.class, "policyName", "Config_SampleTest.1.xml"));
-               ElasticSearchPolicyUpdate.main(null);
-               StringBuilder policyDataString = new StringBuilder();
-               ElasticSearchPolicyUpdate.constructPolicyData(policyContent, policyDataString);
-               assertTrue(policyDataString.toString().contains("onapName"));
-       }
-       
-       @After
-       public void reset(){
-               System.clearProperty("PROPERTY_FILE");
-       }
+        ElasticSearchPolicyUpdate.main(null);
+        StringBuilder policyDataString = new StringBuilder();
+        ElasticSearchPolicyUpdate.constructPolicyData(policyContent, policyDataString);
+        assertTrue(policyDataString.toString().contains("onapName"));
+    }
+
+    @After
+    public void reset(){
+        System.clearProperty("PROPERTY_FILE");
+    }
 }
index 853d75c..2f3d580 100644 (file)
@@ -39,108 +39,108 @@ import org.onap.policy.rest.adapter.PolicyRestAdapter;
 
 public class ElkConnectorImplTest {
 
-       @Test
-       public void isAlphaNumericTest() {
-               try {
-                       Method method = ElkConnectorImpl.class.getDeclaredMethod("isAlphaNumeric", String.class);
-                       method.setAccessible(true);
-                       assertTrue((boolean) method.invoke(new ElkConnectorImpl(), "abc123"));
-                       assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123*"));
-                       assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123{}"));
-                       assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123\n"));
-                       assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123<"));
-                       assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123:"));
-               } catch (Exception e) {
-                       fail();
-               }
-       }
-
-       @Test
-       public void searchTest(){
-               JestResult r1=null, r2=null, r3=null, r4=null;
-
-               // Should always work if the above test passes and ELK server is up
-               try{
-                       r1 = new ElkConnectorImpl().search(PolicyIndexType.decision, "abc123");
-               } catch (Exception e) {
-                       // ELK server is down. Don't continue the test
-                       if(e instanceof IllegalStateException){
-                               return;
-                       }
-                       fail();
-               }
-
-               // Should always work
-               try{
-                       r2 = new ElkConnectorImpl().search(PolicyIndexType.decision, "The_quick_brown_fox_jumps_over_the_lazy_dog");
-               } catch (Exception e) {
-                       fail();
-               }
-
-               // Should throw exception
-               try{
-                       r3 = new ElkConnectorImpl().search(PolicyIndexType.decision, "abc123{}");
-               } catch (Exception e) {
-                       if(! (e instanceof IllegalArgumentException)){
-                               fail();
-                       }
-               }
-               
-               // Should throw exception
-               try{
-                       r4 = new ElkConnectorImpl().search(PolicyIndexType.decision, "The quick brown fox jumps over the lazy dog");
-               } catch (Exception e) {
-                       if(! (e instanceof IllegalArgumentException)){
-                               fail();
-                       }
-               }
-
-               assertNotNull(r1);
-               assertNotNull(r2);
-               assertNull(r3);
-               assertNull(r4);
-       }
-       
-       @Rule
-       public ExpectedException thrown = ExpectedException.none();
-       
-       @Test
-       public void testDelete() {
-               thrown.expect(NullPointerException.class);
-
-               ElkConnectorImpl impl = new ElkConnectorImpl();
-               PolicyRestAdapter adapter = new PolicyRestAdapter();
-               impl.delete(adapter);
-               fail("Expected exception to be thrown");
-       }
-
-       
-       @Test
-       public void testPut() throws IOException {
-               thrown.expect(NullPointerException.class);
-               
-               ElkConnectorImpl impl = new ElkConnectorImpl();
-               PolicyRestAdapter adapter = new PolicyRestAdapter();
-               impl.put(adapter);
-               fail("Expected exception to be thrown");
-       }
-       
-       @Test
-       public void testUpdate() {
-               thrown.expect(IllegalStateException.class);
-               
-               ElkConnectorImpl impl = new ElkConnectorImpl();
-               PolicyRestAdapter adapter = new PolicyRestAdapter();
-               impl.update(adapter);
-               fail("Expected exception to be thrown");
-       }
-       
-       @Test
-       public void testSearchWithFilter() {
-               thrown.expect(IllegalStateException.class);
-
-               ElkConnectorImpl impl = new ElkConnectorImpl();
-               impl.search(PolicyIndexType.config, "search", null);
-               fail("Expected exception to be thrown");
-       }
+    @Test
+    public void isAlphaNumericTest() {
+        try {
+            Method method = ElkConnectorImpl.class.getDeclaredMethod("isAlphaNumeric", String.class);
+            method.setAccessible(true);
+            assertTrue((boolean) method.invoke(new ElkConnectorImpl(), "abc123"));
+            assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123*"));
+            assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123{}"));
+            assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123\n"));
+            assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123<"));
+            assertFalse((boolean) method.invoke(new ElkConnectorImpl(), "abc123:"));
+        } catch (Exception e) {
+            fail();
+        }
+    }
+
+    @Test
+    public void searchTest(){
+        JestResult r1=null, r2=null, r3=null, r4=null;
+
+        // Should always work if the above test passes and ELK server is up
+        try{
+            r1 = new ElkConnectorImpl().search(PolicyIndexType.decision, "abc123");
+        } catch (Exception e) {
+            // ELK server is down. Don't continue the test
+            if(e instanceof IllegalStateException){
+                return;
+            }
+            fail();
+        }
+
+        // Should always work
+        try{
+            r2 = new ElkConnectorImpl().search(PolicyIndexType.decision, "The_quick_brown_fox_jumps_over_the_lazy_dog");
+        } catch (Exception e) {
+            fail();
+        }
+
+        // Should throw exception
+        try{
+            r3 = new ElkConnectorImpl().search(PolicyIndexType.decision, "abc123{}");
+        } catch (Exception e) {
+            if(! (e instanceof IllegalArgumentException)){
+                fail();
+            }
+        }
+
+        // Should throw exception
+        try{
+            r4 = new ElkConnectorImpl().search(PolicyIndexType.decision, "The quick brown fox jumps over the lazy dog");
+        } catch (Exception e) {
+            if(! (e instanceof IllegalArgumentException)){
+                fail();
+            }
+        }
+
+        assertNotNull(r1);
+        assertNotNull(r2);
+        assertNull(r3);
+        assertNull(r4);
+    }
+
+    @Rule
+    public ExpectedException thrown = ExpectedException.none();
+
+    @Test
+    public void testDelete() {
+        thrown.expect(NullPointerException.class);
+
+        ElkConnectorImpl impl = new ElkConnectorImpl();
+        PolicyRestAdapter adapter = new PolicyRestAdapter();
+        impl.delete(adapter);
+        fail("Expected exception to be thrown");
+    }
+
+
+    @Test
+    public void testPut() throws IOException {
+        thrown.expect(NullPointerException.class);
+
+        ElkConnectorImpl impl = new ElkConnectorImpl();
+        PolicyRestAdapter adapter = new PolicyRestAdapter();
+        impl.put(adapter);
+        fail("Expected exception to be thrown");
+    }
+
+    @Test
+    public void testUpdate() {
+        thrown.expect(IllegalStateException.class);
+
+        ElkConnectorImpl impl = new ElkConnectorImpl();
+        PolicyRestAdapter adapter = new PolicyRestAdapter();
+        impl.update(adapter);
+        fail("Expected exception to be thrown");
+    }
+
+    @Test
+    public void testSearchWithFilter() {
+        thrown.expect(IllegalStateException.class);
+
+        ElkConnectorImpl impl = new ElkConnectorImpl();
+        impl.search(PolicyIndexType.config, "search", null);
+        fail("Expected exception to be thrown");
+    }
 }
index 68f1daa..0b8c86c 100644 (file)
@@ -25,20 +25,20 @@ import org.junit.Test;
 import org.onap.policy.pap.xacml.rest.elk.client.Pair;
 
 public class PairTest {
-       @Test
-       public void testPair() {
-               String testLeft = "left";
-               String testRight = "right";
-               
-               // Test constructor
-               Pair<String, String> pair = new Pair<String, String>(testLeft, testRight);
-               assertEquals(pair.left(), testLeft);
-               assertEquals(pair.right(), testRight);
-               
-               // Test setters
-               pair.left(testRight);
-               pair.right(testLeft);
-               assertEquals(pair.left(), testRight);
-               assertEquals(pair.right(), testLeft);
-       }
+    @Test
+    public void testPair() {
+        String testLeft = "left";
+        String testRight = "right";
+
+        // Test constructor
+        Pair<String, String> pair = new Pair<String, String>(testLeft, testRight);
+        assertEquals(pair.left(), testLeft);
+        assertEquals(pair.right(), testRight);
+
+        // Test setters
+        pair.left(testRight);
+        pair.right(testLeft);
+        assertEquals(pair.left(), testRight);
+        assertEquals(pair.right(), testLeft);
+    }
 }
index a84e4a0..76c0ce7 100644 (file)
@@ -30,159 +30,159 @@ import org.onap.policy.rest.adapter.PolicyRestAdapter;
 import org.onap.policy.rest.adapter.YAMLParams;
 
 public class PolicyElasticDataTest {
-       @Test
-       public void testSetAndGet() {
-               String testKey = "testKey";
-               String testVal = "testVal";
-               LinkedHashMap<String, String> testMap = new LinkedHashMap<String, String>();
-               testMap.put(testKey, testVal);
-               ArrayList<Object> testArray = new ArrayList<Object>();
-               testArray.add(testVal);
-               List<String> testList = new ArrayList<String>();
-               testList.add(testVal);
-               List<Object> testObjectList = new ArrayList<Object>();
-               testObjectList.add(testVal);
-               YAMLParams testYaml = new YAMLParams();
-               
-               PolicyRestAdapter adapter = new PolicyRestAdapter();
-               adapter.setConfigPolicyType(testVal);
-               
-               PolicyElasticData data = new PolicyElasticData(adapter);
-               data.setScope(testVal);
-               assertEquals(data.getScope(), testVal);
-               data.setPolicyType(testVal);
-               assertEquals(data.getPolicyType(), testVal);
-               data.setConfigPolicyType(testVal);
-               assertEquals(data.getConfigPolicyType(), testVal);
-               data.setConfigBodyData(testVal);
-               assertEquals(data.getConfigBodyData(), testVal);
-               data.setPolicyName(testVal);
-               assertEquals(data.getPolicyName(), testVal);
-               data.setPolicyDescription(testVal);
-               assertEquals(data.getPolicyDescription(), testVal);
-               data.setOnapName(testVal);
-               assertEquals(data.getOnapName(), testVal);
-               data.setConfigName(testVal);
-               assertEquals(data.getConfigName(), testVal);
-               data.setConfigType(testVal);
-               assertEquals(data.getConfigType(), testVal);
-               data.setJsonBody(testVal);
-               assertEquals(data.getJsonBody(), testVal);
-               data.setServiceTypePolicyName(testMap);
-               assertEquals(data.getServiceTypePolicyName(), testMap);
-               data.setVerticaMetrics(testMap);
-               assertEquals(data.getVerticaMetrics(), testMap);
-               data.setDescription(testMap);
-               assertEquals(data.getDescription(), testMap);
-               data.setAttributeFields(testMap);
-               assertEquals(data.getAttributeFields(), testMap);
-               data.setPolicyScope(testVal);
-               assertEquals(data.getPolicyScope(), testVal);
-               data.setProviderComboBox(testVal);
-               assertEquals(data.getProviderComboBox(), testVal);
-               data.setRiskType(testVal);
-               assertEquals(data.getRiskType(), testVal);
-               data.setRiskLevel(testVal);
-               assertEquals(data.getRiskLevel(), testVal);
-               data.setGuard(testVal);
-               assertEquals(data.getGuard(), testVal);
-               data.setTtlDate(testVal);
-               assertEquals(data.getTtlDate(), testVal);
-               data.setMatching(testMap);
-               assertEquals(data.getMatching(), testMap);
-               data.setTriggerSignatures(testArray);
-               assertEquals(data.getTriggerSignatures(), testArray);
-               data.setSymptomSignatures(testArray);
-               assertEquals(data.getSymptomSignatures(), testArray);
-               data.setLogicalConnector(testVal);
-               assertEquals(data.getLogicalConnector(), testVal);
-               data.setPolicyStatus(testVal);
-               assertEquals(data.getPolicyStatus(), testVal);
-               data.setGocServerScope(testVal);
-               assertEquals(data.getGocServerScope(), testVal);
-               data.setSupressionType(testVal);
-               assertEquals(data.getSupressionType(), testVal);
-               data.setServiceType(testVal);
-               assertEquals(data.getServiceType(),testVal);
-               data.setUuid(testVal);
-               assertEquals(data.getUuid(), testVal);
-               data.setLocation(testVal);
-               assertEquals(data.getLocation(), testVal);
-               data.setPriority(testVal);
-               assertEquals(data.getPriority(), testVal);
-               data.setMsLocation(testVal);
-               assertEquals(data.getMsLocation(),testVal);
-               data.setRuleName(testVal);
-               assertEquals(data.getRuleName(), testVal);
-               data.setBrmsParamBody(testMap);
-               assertEquals(data.getBrmsParamBody(), testMap);
-               data.setBrmsController(testVal);
-               assertEquals(data.getBrmsController(), testVal);
-               data.setBrmsDependency(testList);
-               assertEquals(data.getBrmsDependency(), testList);
-               data.setRuleData(testMap);
-               assertEquals(data.getRuleData(), testMap);
-               data.setRuleListData(testMap);
-               assertEquals(data.getRuleListData(), testMap);
-               data.setDrlRuleAndUIParams(testMap);
-               assertEquals(data.getDrlRuleAndUIParams(), testMap);
-               data.setClearTimeOut(testVal);
-               assertEquals(data.getClearTimeOut(), testVal);
-               data.setTrapMaxAge(testVal);
-               assertEquals(data.getTrapMaxAge(), testVal);
-               data.setVerificationclearTimeOut(testVal);
-               assertEquals(data.getVerificationclearTimeOut(), testVal);
-               data.setDynamicLayoutMap(testMap);
-               assertEquals(data.getDynamicLayoutMap(), testMap);
-               data.setFwPolicyType(testVal);
-               assertEquals(data.getFwPolicyType(), testVal);
-               data.setFwattributes(testArray);
-               assertEquals(data.getFwattributes(), testArray);
-               data.setParentForChild(testVal);
-               assertEquals(data.getParentForChild(), testVal);
-               data.setSecurityZone(testVal);
-               assertEquals(data.getSecurityZone(), testVal);
-               data.setRuleCombiningAlgId(testVal);
-               assertEquals(data.getRuleCombiningAlgId(), testVal);
-               data.setDynamicFieldConfigAttributes(testMap);
-               assertEquals(data.getDynamicFieldConfigAttributes(), testMap);
-               data.setDynamicSettingsMap(testMap);
-               assertEquals(data.getDynamicSettingsMap(), testMap);
-               data.setDropDownMap(testMap);
-               assertEquals(data.getDropDownMap(), testMap);
-               data.setActionPerformer(testVal);
-               assertEquals(data.getActionPerformer(), testVal);
-               data.setActionAttribute(testVal);
-               assertEquals(data.getActionAttribute(), testVal);
-               data.setDynamicRuleAlgorithmLabels(testList);
-               assertEquals(data.getDynamicRuleAlgorithmLabels(), testList);
-               data.setDynamicRuleAlgorithmCombo(testList);
-               assertEquals(data.getDynamicRuleAlgorithmCombo(), testList);
-               data.setDynamicRuleAlgorithmField1(testList);
-               assertEquals(data.getDynamicRuleAlgorithmField1(), testList);
-               data.setDynamicRuleAlgorithmField2(testList);
-               assertEquals(data.getDynamicRuleAlgorithmField2(), testList);
-               data.setDynamicVariableList(testObjectList);
-               assertEquals(data.getDynamicVariableList(), testObjectList);
-               data.setDataTypeList(testList);
-               assertEquals(data.getDataTypeList(), testList);
-               data.setActionAttributeValue(testVal);
-               assertEquals(data.getActionAttributeValue(), testVal);
-               data.setRuleProvider(testVal);
-               assertEquals(data.getRuleProvider(), testVal);
-               data.setActionBody(testVal);
-               assertEquals(data.getActionBody(), testVal);
-               data.setActionDictHeader(testVal);
-               assertEquals(data.getActionDictHeader(), testVal);
-               data.setActionDictType(testVal);
-               assertEquals(data.getActionDictType(), testVal);
-               data.setActionDictUrl(testVal);
-               assertEquals(data.getActionDictUrl(), testVal);
-               data.setActionDictMethod(testVal);
-               assertEquals(data.getActionDictMethod(), testVal);
-               data.setYamlparams(testYaml);
-               assertEquals(data.getYamlparams(), testYaml);
-               data.setJsonBodyData(testVal);
-               assertEquals(data.getJsonBodyData(), testVal);
-       }
+    @Test
+    public void testSetAndGet() {
+        String testKey = "testKey";
+        String testVal = "testVal";
+        LinkedHashMap<String, String> testMap = new LinkedHashMap<String, String>();
+        testMap.put(testKey, testVal);
+        ArrayList<Object> testArray = new ArrayList<Object>();
+        testArray.add(testVal);
+        List<String> testList = new ArrayList<String>();
+        testList.add(testVal);
+        List<Object> testObjectList = new ArrayList<Object>();
+        testObjectList.add(testVal);
+        YAMLParams testYaml = new YAMLParams();
+
+        PolicyRestAdapter adapter = new PolicyRestAdapter();
+        adapter.setConfigPolicyType(testVal);
+
+        PolicyElasticData data = new PolicyElasticData(adapter);
+        data.setScope(testVal);
+        assertEquals(data.getScope(), testVal);
+        data.setPolicyType(testVal);
+        assertEquals(data.getPolicyType(), testVal);
+        data.setConfigPolicyType(testVal);
+        assertEquals(data.getConfigPolicyType(), testVal);
+        data.setConfigBodyData(testVal);
+        assertEquals(data.getConfigBodyData(), testVal);
+        data.setPolicyName(testVal);
+        assertEquals(data.getPolicyName(), testVal);
+        data.setPolicyDescription(testVal);
+        assertEquals(data.getPolicyDescription(), testVal);
+        data.setOnapName(testVal);
+        assertEquals(data.getOnapName(), testVal);
+        data.setConfigName(testVal);
+        assertEquals(data.getConfigName(), testVal);
+        data.setConfigType(testVal);
+        assertEquals(data.getConfigType(), testVal);
+        data.setJsonBody(testVal);
+        assertEquals(data.getJsonBody(), testVal);
+        data.setServiceTypePolicyName(testMap);
+        assertEquals(data.getServiceTypePolicyName(), testMap);
+        data.setVerticaMetrics(testMap);
+        assertEquals(data.getVerticaMetrics(), testMap);
+        data.setDescription(testMap);
+        assertEquals(data.getDescription(), testMap);
+        data.setAttributeFields(testMap);
+        assertEquals(data.getAttributeFields(), testMap);
+        data.setPolicyScope(testVal);
+        assertEquals(data.getPolicyScope(), testVal);
+        data.setProviderComboBox(testVal);
+        assertEquals(data.getProviderComboBox(), testVal);
+        data.setRiskType(testVal);
+        assertEquals(data.getRiskType(), testVal);
+        data.setRiskLevel(testVal);
+        assertEquals(data.getRiskLevel(), testVal);
+        data.setGuard(testVal);
+        assertEquals(data.getGuard(), testVal);
+        data.setTtlDate(testVal);
+        assertEquals(data.getTtlDate(), testVal);
+        data.setMatching(testMap);
+        assertEquals(data.getMatching(), testMap);
+        data.setTriggerSignatures(testArray);
+        assertEquals(data.getTriggerSignatures(), testArray);
+        data.setSymptomSignatures(testArray);
+        assertEquals(data.getSymptomSignatures(), testArray);
+        data.setLogicalConnector(testVal);
+        assertEquals(data.getLogicalConnector(), testVal);
+        data.setPolicyStatus(testVal);
+        assertEquals(data.getPolicyStatus(), testVal);
+        data.setGocServerScope(testVal);
+        assertEquals(data.getGocServerScope(), testVal);
+        data.setSupressionType(testVal);
+        assertEquals(data.getSupressionType(), testVal);
+        data.setServiceType(testVal);
+        assertEquals(data.getServiceType(),testVal);
+        data.setUuid(testVal);
+        assertEquals(data.getUuid(), testVal);
+        data.setLocation(testVal);
+        assertEquals(data.getLocation(), testVal);
+        data.setPriority(testVal);
+        assertEquals(data.getPriority(), testVal);
+        data.setMsLocation(testVal);
+        assertEquals(data.getMsLocation(),testVal);
+        data.setRuleName(testVal);
+        assertEquals(data.getRuleName(), testVal);
+        data.setBrmsParamBody(testMap);
+        assertEquals(data.getBrmsParamBody(), testMap);
+        data.setBrmsController(testVal);
+        assertEquals(data.getBrmsController(), testVal);
+        data.setBrmsDependency(testList);
+        assertEquals(data.getBrmsDependency(), testList);
+        data.setRuleData(testMap);
+        assertEquals(data.getRuleData(), testMap);
+        data.setRuleListData(testMap);
+        assertEquals(data.getRuleListData(), testMap);
+        data.setDrlRuleAndUIParams(testMap);
+        assertEquals(data.getDrlRuleAndUIParams(), testMap);
+        data.setClearTimeOut(testVal);
+        assertEquals(data.getClearTimeOut(), testVal);
+        data.setTrapMaxAge(testVal);
+        assertEquals(data.getTrapMaxAge(), testVal);
+        data.setVerificationclearTimeOut(testVal);
+        assertEquals(data.getVerificationclearTimeOut(), testVal);
+        data.setDynamicLayoutMap(testMap);
+        assertEquals(data.getDynamicLayoutMap(), testMap);
+        data.setFwPolicyType(testVal);
+        assertEquals(data.getFwPolicyType(), testVal);
+        data.setFwattributes(testArray);
+        assertEquals(data.getFwattributes(), testArray);
+        data.setParentForChild(testVal);
+        assertEquals(data.getParentForChild(), testVal);
+        data.setSecurityZone(testVal);
+        assertEquals(data.getSecurityZone(), testVal);
+        data.setRuleCombiningAlgId(testVal);
+        assertEquals(data.getRuleCombiningAlgId(), testVal);
+        data.setDynamicFieldConfigAttributes(testMap);
+        assertEquals(data.getDynamicFieldConfigAttributes(), testMap);
+        data.setDynamicSettingsMap(testMap);
+        assertEquals(data.getDynamicSettingsMap(), testMap);
+        data.setDropDownMap(testMap);
+        assertEquals(data.getDropDownMap(), testMap);
+        data.setActionPerformer(testVal);
+        assertEquals(data.getActionPerformer(), testVal);
+        data.setActionAttribute(testVal);
+        assertEquals(data.getActionAttribute(), testVal);
+        data.setDynamicRuleAlgorithmLabels(testList);
+        assertEquals(data.getDynamicRuleAlgorithmLabels(), testList);
+        data.setDynamicRuleAlgorithmCombo(testList);
+        assertEquals(data.getDynamicRuleAlgorithmCombo(), testList);
+        data.setDynamicRuleAlgorithmField1(testList);
+        assertEquals(data.getDynamicRuleAlgorithmField1(), testList);
+        data.setDynamicRuleAlgorithmField2(testList);
+        assertEquals(data.getDynamicRuleAlgorithmField2(), testList);
+        data.setDynamicVariableList(testObjectList);
+        assertEquals(data.getDynamicVariableList(), testObjectList);
+        data.setDataTypeList(testList);
+        assertEquals(data.getDataTypeList(), testList);
+        data.setActionAttributeValue(testVal);
+        assertEquals(data.getActionAttributeValue(), testVal);
+        data.setRuleProvider(testVal);
+        assertEquals(data.getRuleProvider(), testVal);
+        data.setActionBody(testVal);
+        assertEquals(data.getActionBody(), testVal);
+        data.setActionDictHeader(testVal);
+        assertEquals(data.getActionDictHeader(), testVal);
+        data.setActionDictType(testVal);
+        assertEquals(data.getActionDictType(), testVal);
+        data.setActionDictUrl(testVal);
+        assertEquals(data.getActionDictUrl(), testVal);
+        data.setActionDictMethod(testVal);
+        assertEquals(data.getActionDictMethod(), testVal);
+        data.setYamlparams(testYaml);
+        assertEquals(data.getYamlparams(), testYaml);
+        data.setJsonBodyData(testVal);
+        assertEquals(data.getJsonBodyData(), testVal);
+    }
 }
index ec86996..bdbe144 100644 (file)
@@ -36,46 +36,46 @@ import org.mockito.Mockito;
 import org.onap.policy.pap.xacml.rest.elk.client.PolicyElasticSearchController;
 
 public class PolicyElasticSearchControllerTest {
-       
-       private PolicyElasticSearchController conroller;
-       private HttpServletRequest request = null;
-       private HttpServletResponse response = null;
-       
-       @Before
-       public void setup(){
-               conroller = new PolicyElasticSearchController();
-               request = Mockito.mock(HttpServletRequest.class);
-               response = Mockito.mock(HttpServletResponse.class);
-       }
-       
-       @Test
-       public void testSearchDictionary(){
-               List<String> jsonString = new ArrayList<>();
-               jsonString.add("{\"type\":\"attribute\",\"data\":{\"xacmlId\":\"Test\"}}");
-               jsonString.add("{\"type\":\"onapName\",\"data\":{\"onapName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"actionPolicy\",\"data\":{\"attributeName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"brmsParam\",\"data\":{\"ruleName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"pepOptions\",\"data\":{\"pepName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"clSite\",\"data\":{\"siteName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"clService\",\"data\":{\"serviceName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"clVarbind\",\"data\":{\"varbindName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"clVnf\",\"data\":{\"vnftype\":\"Test\"}}");
-               jsonString.add("{\"type\":\"clVSCL\",\"data\":{\"vsclaction\":\"Test\"}}");
-               jsonString.add("{\"type\":\"decision\",\"data\":{\"xacmlId\":\"Test\"}}");
-               jsonString.add("{\"type\":\"fwTerm\",\"data\":{\"termName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"msDCAEUUID\",\"data\":{\"name\":\"Test\"}}");
-               jsonString.add("{\"type\":\"msLocation\",\"data\":{\"name\":\"Test\"}}");
-               jsonString.add("{\"type\":\"msModels\",\"data\":{\"modelName\":\"Test\"}}");
-               jsonString.add("{\"type\":\"psGroupPolicy\",\"data\":{\"name\":\"Test\"}}");
-               jsonString.add("{\"type\":\"safeRisk\",\"data\":{\"name\":\"Test\"}}");
-               jsonString.add("{\"type\":\"safePolicyWarning\",\"data\":{\"name\":\"Test\"}}");
-               for(int i = 0; i < jsonString.size(); i++){
-                       try(BufferedReader br = new BufferedReader(new StringReader(jsonString.get(i)))) {
-                               when(request.getReader()).thenReturn(br);
-                               conroller.searchDictionary(request, response);
-                       } catch (Exception e) {
-                               assertEquals(NullPointerException.class, e.getClass());
-                       } 
-               }
-       }
+
+    private PolicyElasticSearchController conroller;
+    private HttpServletRequest request = null;
+    private HttpServletResponse response = null;
+
+    @Before
+    public void setup(){
+        conroller = new PolicyElasticSearchController();
+        request = Mockito.mock(HttpServletRequest.class);
+        response = Mockito.mock(HttpServletResponse.class);
+    }
+
+    @Test
+    public void testSearchDictionary(){
+        List<String> jsonString = new ArrayList<>();
+        jsonString.add("{\"type\":\"attribute\",\"data\":{\"xacmlId\":\"Test\"}}");
+        jsonString.add("{\"type\":\"onapName\",\"data\":{\"onapName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"actionPolicy\",\"data\":{\"attributeName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"brmsParam\",\"data\":{\"ruleName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"pepOptions\",\"data\":{\"pepName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"clSite\",\"data\":{\"siteName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"clService\",\"data\":{\"serviceName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"clVarbind\",\"data\":{\"varbindName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"clVnf\",\"data\":{\"vnftype\":\"Test\"}}");
+        jsonString.add("{\"type\":\"clVSCL\",\"data\":{\"vsclaction\":\"Test\"}}");
+        jsonString.add("{\"type\":\"decision\",\"data\":{\"xacmlId\":\"Test\"}}");
+        jsonString.add("{\"type\":\"fwTerm\",\"data\":{\"termName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"msDCAEUUID\",\"data\":{\"name\":\"Test\"}}");
+        jsonString.add("{\"type\":\"msLocation\",\"data\":{\"name\":\"Test\"}}");
+        jsonString.add("{\"type\":\"msModels\",\"data\":{\"modelName\":\"Test\"}}");
+        jsonString.add("{\"type\":\"psGroupPolicy\",\"data\":{\"name\":\"Test\"}}");
+        jsonString.add("{\"type\":\"safeRisk\",\"data\":{\"name\":\"Test\"}}");
+        jsonString.add("{\"type\":\"safePolicyWarning\",\"data\":{\"name\":\"Test\"}}");
+        for(int i = 0; i < jsonString.size(); i++){
+            try(BufferedReader br = new BufferedReader(new StringReader(jsonString.get(i)))) {
+                when(request.getReader()).thenReturn(br);
+                conroller.searchDictionary(request, response);
+            } catch (Exception e) {
+                assertEquals(NullPointerException.class, e.getClass());
+            }
+        }
+    }
 }
index b648a31..7df2953 100644 (file)
@@ -25,19 +25,19 @@ import org.junit.Test;
 import org.onap.policy.pap.xacml.rest.elk.client.PolicyLocator;
 
 public class PolicyLocatorTest {
-       @Test
-       public void testLocator() {
-               String policyType = "type";
-               String policyName = "name";
+    @Test
+    public void testLocator() {
+        String policyType = "type";
+        String policyName = "name";
         String owner = "owner";
         String scope = "scope";
         String policyId = "id";
         String version = "1.0";
-               String testString = "[owner|scope|type|name|id|v1.0|]";
+        String testString = "[owner|scope|type|name|id|v1.0|]";
 
-               PolicyLocator locator = new PolicyLocator(policyType, policyName, owner, 
-                       scope, policyId, version);
-               String locatorString = locator.toString();
-               assertEquals(locatorString, testString);
-       }
+        PolicyLocator locator = new PolicyLocator(policyType, policyName, owner,
+            scope, policyId, version);
+        String locatorString = locator.toString();
+        assertEquals(locatorString, testString);
+    }
 }
index 3941593..84f36aa 100644 (file)
@@ -47,68 +47,68 @@ import javax.persistence.EntityManager;
 
 @RunWith(PowerMockRunner.class)
 public class DeleteHandlerTest {
-       @Test
-       public void testGets() {
-               DeleteHandler handler = new DeleteHandler();
-               assertNotNull(handler);
-               assertEquals(handler.preSafetyCheck(null), true);
-               assertNull(handler.getDeletedGroup());
-       }
-       
-       @Test
-       public void testGetInstance() {
-               DeleteHandler handler = DeleteHandler.getInstance();
-               assertNotNull(handler);
-       }
-       
-       @PrepareForTest({DeleteHandler.class, XACMLPapServlet.class})
-       @Test
-       public void testDeletes() throws Exception {
-               // Mock request
-               DeleteHandler handler = new DeleteHandler();
-               MockHttpServletRequest request = new MockHttpServletRequest();
-               request.setBodyContent("{\n\"PAPPolicyType\": \"StdPAPPolicy\"\n}\n");
-               
-               // Mock servlet
-               PAPPolicyEngine engine = Mockito.mock(StdEngine.class);
-               PowerMockito.mockStatic(XACMLPapServlet.class);
-               when(XACMLPapServlet.getPAPEngine()).thenReturn(engine);
-               when(engine.getGroup(any())).thenReturn(null);
-               
-               // Mock elastic search
-               PolicyElasticSearchController controller = Mockito.mock(PolicyElasticSearchController.class);
-               PowerMockito.whenNew(PolicyElasticSearchController.class).withNoArguments().thenReturn(controller);
-               
-               // Mock entity manager
-               EntityManager em = Mockito.mock(EntityManager.class);
-               
-               // Test deletion from PAP
-               MockHttpServletResponse response = new MockHttpServletResponse();
-               try {
-                       handler.doAPIDeleteFromPAP(request, response);
-               }
-               catch (Exception ex) {
-                       fail("Not expecting an exception: " + ex);
-               }
-               
-               // Test deletion from PDP
-               ONAPLoggingContext loggingContext = Mockito.mock(ONAPLoggingContext.class);
-               try {
-                       handler.doAPIDeleteFromPDP(request, response, loggingContext);
-               }
-               catch (Exception ex) {
-                       fail("Not expecting an exception: " + ex);
-               }
-               
-               // Test delete entity
-               PolicyEntity policyEntity = new PolicyEntity();
-               policyEntity.setPolicyName("testVal");
-               String result = DeleteHandler.deletePolicyEntityData(em, policyEntity);
-               assertEquals(result, "success");
-               
-               // Test check entity
-               Connection con = null;
-               List<?> peResult = Collections.emptyList();
-               assertEquals(DeleteHandler.checkPolicyGroupEntity(con, peResult), false);
-       }
+    @Test
+    public void testGets() {
+        DeleteHandler handler = new DeleteHandler();
+        assertNotNull(handler);
+        assertEquals(handler.preSafetyCheck(null), true);
+        assertNull(handler.getDeletedGroup());
+    }
+
+    @Test
+    public void testGetInstance() {
+        DeleteHandler handler = DeleteHandler.getInstance();
+        assertNotNull(handler);
+    }
+
+    @PrepareForTest({DeleteHandler.class, XACMLPapServlet.class})
+    @Test
+    public void testDeletes() throws Exception {
+        // Mock request
+        DeleteHandler handler = new DeleteHandler();
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setBodyContent("{\n\"PAPPolicyType\": \"StdPAPPolicy\"\n}\n");
+
+        // Mock servlet
+        PAPPolicyEngine engine = Mockito.mock(StdEngine.class);
+        PowerMockito.mockStatic(XACMLPapServlet.class);
+        when(XACMLPapServlet.getPAPEngine()).thenReturn(engine);
+        when(engine.getGroup(any())).thenReturn(null);
+
+        // Mock elastic search
+        PolicyElasticSearchController controller = Mockito.mock(PolicyElasticSearchController.class);
+        PowerMockito.whenNew(PolicyElasticSearchController.class).withNoArguments().thenReturn(controller);
+
+        // Mock entity manager
+        EntityManager em = Mockito.mock(EntityManager.class);
+
+        // Test deletion from PAP
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        try {
+            handler.doAPIDeleteFromPAP(request, response);
+        }
+        catch (Exception ex) {
+            fail("Not expecting an exception: " + ex);
+        }
+
+        // Test deletion from PDP
+        ONAPLoggingContext loggingContext = Mockito.mock(ONAPLoggingContext.class);
+        try {
+            handler.doAPIDeleteFromPDP(request, response, loggingContext);
+        }
+        catch (Exception ex) {
+            fail("Not expecting an exception: " + ex);
+        }
+
+        // Test delete entity
+        PolicyEntity policyEntity = new PolicyEntity();
+        policyEntity.setPolicyName("testVal");
+        String result = DeleteHandler.deletePolicyEntityData(em, policyEntity);
+        assertEquals(result, "success");
+
+        // Test check entity
+        Connection con = null;
+        List<?> peResult = Collections.emptyList();
+        assertEquals(DeleteHandler.checkPolicyGroupEntity(con, peResult), false);
+    }
 }
index 81fe8a7..6971ed7 100644 (file)
@@ -42,44 +42,44 @@ import javax.persistence.Query;
 
 @RunWith(PowerMockRunner.class)
 public class PushPolicyHandlerTest {
-       @PrepareForTest({XACMLPapServlet.class})
-       @Test
-       public void testGetsAndChecks() {
-               // Mock servlet, entity mgr, transaction, and query
-               EntityManager em = Mockito.mock(EntityManager.class);
-               EntityManagerFactory emf = Mockito.mock(EntityManagerFactory.class);
-               PowerMockito.mockStatic(XACMLPapServlet.class);
-               PowerMockito.when(XACMLPapServlet.getEmf()).thenReturn(emf);
-               Mockito.when(emf.createEntityManager()).thenReturn(em);
-               EntityTransaction transaction = Mockito.mock(EntityTransaction.class);
-               Mockito.when(em.getTransaction()).thenReturn(transaction);
-               Query query = Mockito.mock(Query.class);
-               Mockito.when(em.createQuery(Mockito.anyString())).thenReturn(query);
-               
-               // Test constructor
-               PushPolicyHandler handler = new PushPolicyHandler();
-               assertNotNull(handler);
+    @PrepareForTest({XACMLPapServlet.class})
+    @Test
+    public void testGetsAndChecks() {
+        // Mock servlet, entity mgr, transaction, and query
+        EntityManager em = Mockito.mock(EntityManager.class);
+        EntityManagerFactory emf = Mockito.mock(EntityManagerFactory.class);
+        PowerMockito.mockStatic(XACMLPapServlet.class);
+        PowerMockito.when(XACMLPapServlet.getEmf()).thenReturn(emf);
+        Mockito.when(emf.createEntityManager()).thenReturn(em);
+        EntityTransaction transaction = Mockito.mock(EntityTransaction.class);
+        Mockito.when(em.getTransaction()).thenReturn(transaction);
+        Query query = Mockito.mock(Query.class);
+        Mockito.when(em.createQuery(Mockito.anyString())).thenReturn(query);
 
-               // Test gets
-               MockHttpServletRequest request = new MockHttpServletRequest();
-               MockHttpServletResponse response = new MockHttpServletResponse();
-               handler.getActiveVersion(request, response);
-               assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
-               request.setupAddParameter("gitPath", "testPath");
-               handler.getSelectedURI(request, response);
-               assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
-               
-               // Test check
-               StdPDPPolicy policy = new StdPDPPolicy();
-               OnapPDPGroup onapPolicy = new StdPDPGroup();
-               String configHome = "testVal";
-               assertEquals(handler.preSafetyCheck(policy, configHome), true);
-               assertEquals(handler.preSafetyCheck(onapPolicy, configHome), true);
-       }
-       
-       @Test
-       public void testGetInstance() {
-               PushPolicyHandler handler = PushPolicyHandler.getInstance();
-               assertNotNull(handler);
-       }
+        // Test constructor
+        PushPolicyHandler handler = new PushPolicyHandler();
+        assertNotNull(handler);
+
+        // Test gets
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        handler.getActiveVersion(request, response);
+        assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
+        request.setupAddParameter("gitPath", "testPath");
+        handler.getSelectedURI(request, response);
+        assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
+
+        // Test check
+        StdPDPPolicy policy = new StdPDPPolicy();
+        OnapPDPGroup onapPolicy = new StdPDPGroup();
+        String configHome = "testVal";
+        assertEquals(handler.preSafetyCheck(policy, configHome), true);
+        assertEquals(handler.preSafetyCheck(onapPolicy, configHome), true);
+    }
+
+    @Test
+    public void testGetInstance() {
+        PushPolicyHandler handler = PushPolicyHandler.getInstance();
+        assertNotNull(handler);
+    }
 }
index 8b4c73a..e7de8d0 100644 (file)
@@ -45,18 +45,18 @@ import org.onap.policy.common.logging.flexlogger.Logger;
 import java.util.Properties;
 
 public class PolicyEntityTest {
-       
-       private static Logger logger = FlexLogger.getLogger(PolicyEntityTest.class);
-       
+
+    private static Logger logger = FlexLogger.getLogger(PolicyEntityTest.class);
+
     @Test
     public void testAllOps(){
-       Properties properties = new Properties();
-       properties.put(XACMLRestProperties.PROP_PAP_DB_DRIVER,"org.h2.Driver");
-       properties.put(XACMLRestProperties.PROP_PAP_DB_URL, "jdbc:h2:file:./sql/xacmlTest");
-       properties.put(XACMLRestProperties.PROP_PAP_DB_USER, "sa");
-       properties.put(XACMLRestProperties.PROP_PAP_DB_PASSWORD, "");
-       EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPapPU", properties);
-       EntityManager em = emf.createEntityManager();
+        Properties properties = new Properties();
+        properties.put(XACMLRestProperties.PROP_PAP_DB_DRIVER,"org.h2.Driver");
+        properties.put(XACMLRestProperties.PROP_PAP_DB_URL, "jdbc:h2:file:./sql/xacmlTest");
+        properties.put(XACMLRestProperties.PROP_PAP_DB_USER, "sa");
+        properties.put(XACMLRestProperties.PROP_PAP_DB_PASSWORD, "");
+        EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPapPU", properties);
+        EntityManager em = emf.createEntityManager();
         // Start a transaction
         EntityTransaction et = em.getTransaction();
 
@@ -101,19 +101,19 @@ public class PolicyEntityTest {
         
         
         logger.debug("\n\n********PolicyEntityTest: Local PolicyEntity and Configuration objects before persist*********"
-                       + "\npolicyId1 = " + policyId1
-                       + "\npolicyName1 = " + policyName1
-                       + "\nversion1 = " + version1
-                       + "\npolicyData1 = " + policyData1
-                       + "\nconfigDataStr1 = " + configDataStr1
-                       + "\nactionBodyStr1 = " + actionBodyStr1
-                       + "\nscope = " + p1.getScope()
-                       + "\ncreatedBy1 = " + createdBy1
-                       + "\ncreatedDateStr1 = " + createdDateStr1
-                       + "\ndescription = " + description
-                       + "\nmodifiedBy1 = " + modifiedBy1
-                       + "\nmodifiedDateStr1 = " + modifiedDateStr1
-                       + "\ndeleted = " + p1.isDeleted());
+                + "\npolicyId1 = " + policyId1
+                + "\npolicyName1 = " + policyName1
+                + "\nversion1 = " + version1
+                + "\npolicyData1 = " + policyData1
+                + "\nconfigDataStr1 = " + configDataStr1
+                + "\nactionBodyStr1 = " + actionBodyStr1
+                + "\nscope = " + p1.getScope()
+                + "\ncreatedBy1 = " + createdBy1
+                + "\ncreatedDateStr1 = " + createdDateStr1
+                + "\ndescription = " + description
+                + "\nmodifiedBy1 = " + modifiedBy1
+                + "\nmodifiedDateStr1 = " + modifiedDateStr1
+                + "\ndeleted = " + p1.isDeleted());
         
         //Set policyID
         p1.setPolicyName("testPID2");
@@ -171,19 +171,19 @@ public class PolicyEntityTest {
         modifiedDateStr1 = (modifiedDate1 != null ? modifiedDate1.toString() : "modifiedDate is null");
         
         logger.debug("\n\n********PolicyEntityTest: Local PolicyEntity and Configuration objects after persist*********"
-                       + "\npolicyId1 = " + policyId1
-                       + "\npolicyName1 = " + policyName1
-                       + "\nversion1 = " + version1
-                       + "\npolicyData1 = " + policyData1
-                       + "\nconfigDataStr1 = " + configDataStr1
-                       + "\nactionBodyStr1 = " + actionBodyStr1
-                       + "\nscopeId = " + p1.getScope()
-                       + "\ncreatedBy1 = " + createdBy1
-                       + "\ncreatedDateStr1 = " + createdDateStr1
-                       + "\ndescription = " + description
-                       + "\nmodifiedBy1 = " + modifiedBy1
-                       + "\nmodifiedDateStr1 = " + modifiedDateStr1
-                       + "\ndeleted = " + p1.isDeleted());
+                + "\npolicyId1 = " + policyId1
+                + "\npolicyName1 = " + policyName1
+                + "\nversion1 = " + version1
+                + "\npolicyData1 = " + policyData1
+                + "\nconfigDataStr1 = " + configDataStr1
+                + "\nactionBodyStr1 = " + actionBodyStr1
+                + "\nscopeId = " + p1.getScope()
+                + "\ncreatedBy1 = " + createdBy1
+                + "\ncreatedDateStr1 = " + createdDateStr1
+                + "\ndescription = " + description
+                + "\nmodifiedBy1 = " + modifiedBy1
+                + "\nmodifiedDateStr1 = " + modifiedDateStr1
+                + "\ndeleted = " + p1.isDeleted());
 
         //Now lets fully configure the configurationData and actionBody
         
@@ -193,7 +193,7 @@ public class PolicyEntityTest {
       ActionBodyEntity a1 = new ActionBodyEntity();
       
         //persist the configuration Data
-       em.persist(c1);        
+        em.persist(c1);
         
         c1.setConfigType("OTHER");
         
@@ -241,28 +241,28 @@ public class PolicyEntityTest {
         Date cdModifiedDate = c1.getModifiedDate();
         
         logger.debug("\n\n********PolicyEntityTest: Local Configuration object after setting values *********"
-                       + "\nconfigurationDataId = " + configurationDataId
-                       + "\ncdVersion = " + cdVersion
-                       + "\ncdConfigType = " + cdConfigType
-                       + "\ncdConfigBody = " + cdConfigBody
-                       + "\ncdCreatedBy = " + cdCreatedBy
-                       + "\ncdCreatedDate = " + cdCreatedDate
-                       + "\ncdDescription = " + cdDescription
-                       + "\ncdModifiedBy = " + cdModifiedBy
-                       + "\ncdModifiedDate = " + cdModifiedDate
-                       + "\ndeleted = " + c1.isDeleted());        
+                + "\nconfigurationDataId = " + configurationDataId
+                + "\ncdVersion = " + cdVersion
+                + "\ncdConfigType = " + cdConfigType
+                + "\ncdConfigBody = " + cdConfigBody
+                + "\ncdCreatedBy = " + cdCreatedBy
+                + "\ncdCreatedDate = " + cdCreatedDate
+                + "\ncdDescription = " + cdDescription
+                + "\ncdModifiedBy = " + cdModifiedBy
+                + "\ncdModifiedDate = " + cdModifiedDate
+                + "\ndeleted = " + c1.isDeleted());
         
 
         
         logger.debug("\n\n********PolicyEntityTest: Local Action Body object after setting values *********"
-                       + "\nactionBodyId = " + a1.getActionBodyId()
-                       + "\nactionBodyVersion = " + a1.getVersion()
-                       + "\nactionBody = " + a1.getActionBody()
-                       + "\nactionBodyCeatedBy = " + a1.getCreatedBy()
-                       + "\nactionBodyCreatedDate = " + a1.getCreatedDate()
-                       + "\nactionBodyModifiedBy = " + a1.getModifiedBy()
-                       + "\nactionBodyModifiedDate = " + a1.getModifiedDate()
-                       + "\nactionBodyDeleted = " + a1.isDeleted());        
+                + "\nactionBodyId = " + a1.getActionBodyId()
+                + "\nactionBodyVersion = " + a1.getVersion()
+                + "\nactionBody = " + a1.getActionBody()
+                + "\nactionBodyCeatedBy = " + a1.getCreatedBy()
+                + "\nactionBodyCreatedDate = " + a1.getCreatedDate()
+                + "\nactionBodyModifiedBy = " + a1.getModifiedBy()
+                + "\nactionBodyModifiedDate = " + a1.getModifiedDate()
+                + "\nactionBodyDeleted = " + a1.isDeleted());
 
         p1.setScope("mckiou.kevin.kim");        
         
@@ -282,10 +282,10 @@ public class PolicyEntityTest {
         List psList = queryscope.getResultList();
         PolicyEntity px = null;
         if(!psList.isEmpty()){
-               //ignores multiple results
-               px = (PolicyEntity) psList.get(0);
+            //ignores multiple results
+            px = (PolicyEntity) psList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No PolicyEntity using scope DB entry found");
+            fail("\nPolicyEntityTest: No PolicyEntity using scope DB entry found");
         }
         
         //The scope object on the retrieved policy object should be same as the one we used to find it
@@ -295,29 +295,29 @@ public class PolicyEntityTest {
         //Because getSingleResult() throws an unchecked exception which is an indication of a 
         //programming error, we are not going to use it.
         @SuppressWarnings("rawtypes")
-               List resultList = query.getResultList();
+        List resultList = query.getResultList();
         PolicyEntity p2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             p2 = (PolicyEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No PolicyEntity DB entry found");
+            fail("\nPolicyEntityTest: No PolicyEntity DB entry found");
         }
         
         logger.debug("\n\n********PolicyEntityTest: PolicyEntity object after retrieving from DB BEFORE assigning configurationData*********"
-                       + "\npolicyId2 = " + p2.getPolicyId()
-                       + "\npolicyName2 = " + p2.getPolicyName()
-                       + "\nversion2 = " + p2.getVersion()
-                       + "\npolicyData2 = " + p2.getPolicyData()
-                       + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
-                       + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
-                       + "\nscope2 = " + p2.getScope()
-                       + "\ncreatedBy2 = " + p2.getCreatedBy()
-                       + "\ncreatedDate2 = " + p2.getCreatedDate()
-                       + "\ndescription2 = " + p2.getDescription()
-                       + "\nmodifiedBy2 = " + p2.getModifiedBy()
-                       + "\nmodifiedDate2 = " + p2.getModifiedDate()
-                       + "\ndeleted2 = " + p2.isDeleted());
+                + "\npolicyId2 = " + p2.getPolicyId()
+                + "\npolicyName2 = " + p2.getPolicyName()
+                + "\nversion2 = " + p2.getVersion()
+                + "\npolicyData2 = " + p2.getPolicyData()
+                + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
+                + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
+                + "\nscope2 = " + p2.getScope()
+                + "\ncreatedBy2 = " + p2.getCreatedBy()
+                + "\ncreatedDate2 = " + p2.getCreatedDate()
+                + "\ndescription2 = " + p2.getDescription()
+                + "\nmodifiedBy2 = " + p2.getModifiedBy()
+                + "\nmodifiedDate2 = " + p2.getModifiedDate()
+                + "\ndeleted2 = " + p2.isDeleted());
 
         //Confirm that the retrieved policy object is the same as the persisted object
         assertSame(p1,p2);
@@ -328,26 +328,26 @@ public class PolicyEntityTest {
         query2.setParameter("cid", c1.getConfigurationDataId());
         
         //Get the database version of the Configuration Data
-               resultList = query2.getResultList();
+        resultList = query2.getResultList();
         ConfigurationDataEntity c2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             c2 = (ConfigurationDataEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No ConfigurationDataEntity DB entry found");
+            fail("\nPolicyEntityTest: No ConfigurationDataEntity DB entry found");
         }
         
         logger.debug("\n\n********PolicyEntityTest: Configuration object after retrieving from DB BEFORE assigning to policy*********"
-                       + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
-                       + "\nversion2 = " + c2.getVersion()
-                       + "\nconfigType2 = " + c2.getConfigType()
-                       + "\nconfigBody2 = " + c2.getConfigBody()
-                       + "\ncreatedBy2 = " + c2.getCreatedBy()
-                       + "\ncreatedDate2 = " + c2.getCreatedDate()
-                       + "\ndescription2 = " + c2.getDescription()
-                       + "\nmodifiedBy2 = " + c2.getModifiedBy()
-                       + "\nmodifiedDate2 = " + c2.getModifiedDate()
-                       + "\ndeleted2 = " + c2.isDeleted());
+                + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
+                + "\nversion2 = " + c2.getVersion()
+                + "\nconfigType2 = " + c2.getConfigType()
+                + "\nconfigBody2 = " + c2.getConfigBody()
+                + "\ncreatedBy2 = " + c2.getCreatedBy()
+                + "\ncreatedDate2 = " + c2.getCreatedDate()
+                + "\ndescription2 = " + c2.getDescription()
+                + "\nmodifiedBy2 = " + c2.getModifiedBy()
+                + "\nmodifiedDate2 = " + c2.getModifiedDate()
+                + "\ndeleted2 = " + c2.isDeleted());
         
         //Confirm the retrieved ConfigurationDataEntity object is the same as the persisted
         assertSame(c1,c2);
@@ -361,25 +361,25 @@ public class PolicyEntityTest {
         querya2.setParameter("aid", a1.getActionBodyId());
         
         //Get the database version of the Action Body
-               resultList = querya2.getResultList();
+        resultList = querya2.getResultList();
         ActionBodyEntity a2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             a2 = (ActionBodyEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No ActionBodyEntity DB entry found");
+            fail("\nPolicyEntityTest: No ActionBodyEntity DB entry found");
         }
         
         
         logger.debug("\n\n********PolicyEntityTest: Local Action Body object after retrieving from DB BEFORE assigning to policy *********"
-                       + "\nactionBodyId2 = " + a2.getActionBodyId()
-                       + "\nactionBodyVersion2 = " + a2.getVersion()
-                       + "\nactionBody2 = " + a2.getActionBody()
-                       + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
-                       + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
-                       + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
-                       + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
-                       + "\nactionBodyDeleted2 = " + a2.isDeleted());        
+                + "\nactionBodyId2 = " + a2.getActionBodyId()
+                + "\nactionBodyVersion2 = " + a2.getVersion()
+                + "\nactionBody2 = " + a2.getActionBody()
+                + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
+                + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
+                + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
+                + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
+                + "\nactionBodyDeleted2 = " + a2.isDeleted());
 
         
         //Confirm the retrieved ActionBodyEntity object is the same as the persisted
@@ -398,67 +398,67 @@ public class PolicyEntityTest {
             // ignores multiple results
             p2 = (PolicyEntity) resultList.get(0);
         }else{
-               fail("PolicyEntityTest: No PolicyEntity DB entry found");
+            fail("PolicyEntityTest: No PolicyEntity DB entry found");
         }
         
         logger.debug("\n\n********PolicyEntityTest: PolicyEntity object after retrieving from DB AFTER assigning configurationData*********"
-                       + "\npolicyId2 = " + p2.getPolicyId()
-                       + "\npolicyName2 = " + p2.getPolicyName()
-                       + "\nversion2 = " + p2.getVersion()
-                       + "\npolicyData2 = " + p2.getPolicyData()
-                       + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
-                       + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
-                       + "\nscope2 = " + p2.getScope()
-                       + "\ncreatedBy2 = " + p2.getCreatedBy()
-                       + "\ncreatedDate2 = " + p2.getCreatedDate()
-                       + "\ndescription2 = " + p2.getDescription()
-                       + "\nmodifiedBy2 = " + p2.getModifiedBy()
-                       + "\nmodifiedDate2 = " + p2.getModifiedDate()
-                       + "\ndeleted2 = " + p2.isDeleted());
+                + "\npolicyId2 = " + p2.getPolicyId()
+                + "\npolicyName2 = " + p2.getPolicyName()
+                + "\nversion2 = " + p2.getVersion()
+                + "\npolicyData2 = " + p2.getPolicyData()
+                + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
+                + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
+                + "\nscope2 = " + p2.getScope()
+                + "\ncreatedBy2 = " + p2.getCreatedBy()
+                + "\ncreatedDate2 = " + p2.getCreatedDate()
+                + "\ndescription2 = " + p2.getDescription()
+                + "\nmodifiedBy2 = " + p2.getModifiedBy()
+                + "\nmodifiedDate2 = " + p2.getModifiedDate()
+                + "\ndeleted2 = " + p2.isDeleted());
 
         //And now the ConfigurationDataEntity object
-               resultList = query2.getResultList();
+        resultList = query2.getResultList();
         c2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             c2 = (ConfigurationDataEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No ConfigurationDataEntity DB entry found");
+            fail("\nPolicyEntityTest: No ConfigurationDataEntity DB entry found");
         }
         
         logger.debug("\n\n********PolicyEntityTest: Configuration object after retrieving from DB AFTER assigning to policy*********"
-                       + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
-                       + "\nversion2 = " + c2.getVersion()
-                       + "\nconfigType2 = " + c2.getConfigType()
-                       + "\nconfigBody2 = " + c2.getConfigBody()
-                       + "\ncreatedBy2 = " + c2.getCreatedBy()
-                       + "\ncreatedDate2 = " + c2.getCreatedDate()
-                       + "\ndescription2 = " + c2.getDescription()
-                       + "\nmodifiedBy = " + c2.getModifiedBy()
-                       + "\nmodifiedDate = " + c2.getModifiedDate()
-                       + "\ndeleted2 = " + c2.isDeleted());
+                + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
+                + "\nversion2 = " + c2.getVersion()
+                + "\nconfigType2 = " + c2.getConfigType()
+                + "\nconfigBody2 = " + c2.getConfigBody()
+                + "\ncreatedBy2 = " + c2.getCreatedBy()
+                + "\ncreatedDate2 = " + c2.getCreatedDate()
+                + "\ndescription2 = " + c2.getDescription()
+                + "\nmodifiedBy = " + c2.getModifiedBy()
+                + "\nmodifiedDate = " + c2.getModifiedDate()
+                + "\ndeleted2 = " + c2.isDeleted());
         
         
         //Get the database version of the Action Body
-               resultList = querya2.getResultList();
+        resultList = querya2.getResultList();
         a2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             a2 = (ActionBodyEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No ActionBodyEntity DB entry found");
+            fail("\nPolicyEntityTest: No ActionBodyEntity DB entry found");
         }
         
         
         logger.debug("\n\n********PolicyEntityTest: Local Action Body object after retrieving from DB AFTER assigning to policy *********"
-                       + "\nactionBodyId2 = " + a2.getActionBodyId()
-                       + "\nactionBodyVersion2 = " + a2.getVersion()
-                       + "\nactionBody2 = " + a2.getActionBody()
-                       + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
-                       + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
-                       + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
-                       + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
-                       + "\nactionBodyDeleted2 = " + a2.isDeleted());        
+                + "\nactionBodyId2 = " + a2.getActionBodyId()
+                + "\nactionBodyVersion2 = " + a2.getVersion()
+                + "\nactionBody2 = " + a2.getActionBody()
+                + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
+                + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
+                + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
+                + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
+                + "\nactionBodyDeleted2 = " + a2.isDeleted());
 
         
         //****Now lets see if the orphanRemoval=true does anything useful***
@@ -473,30 +473,30 @@ public class PolicyEntityTest {
         
         //Attempt to retrieve the configuration data object from the db. It should not be there
         //Reusing the previous query
-               resultList = query2.getResultList();
+        resultList = query2.getResultList();
         c2 = null;
         if(resultList.isEmpty()){
-               logger.debug("\n\n********PolicyEntityTest: orphanRemoval=true******"
-                               + "\n Success!! No ConfigurationDataEntity DB entry found");
+            logger.debug("\n\n********PolicyEntityTest: orphanRemoval=true******"
+                    + "\n Success!! No ConfigurationDataEntity DB entry found");
             
         }else{
-               c2 = (ConfigurationDataEntity) resultList.get(0);
-               fail("\nPolicyEntityTest: ConfigurationDataEntity DB entry found - and none should exist"
-                               + "\nconfigurationDataId = " + c2.getConfigurationDataId());
+            c2 = (ConfigurationDataEntity) resultList.get(0);
+            fail("\nPolicyEntityTest: ConfigurationDataEntity DB entry found - and none should exist"
+                    + "\nconfigurationDataId = " + c2.getConfigurationDataId());
         }
         
         //Attempt to retrieve the actionBody data object from the db. It should not be there
         //Reusing the previous query
-               resultList = querya2.getResultList();
+        resultList = querya2.getResultList();
         a2 = null;
         if(resultList.isEmpty()){
-               logger.debug("\n\n********PolicyEntityTest: orphanRemoval=true******"
-                               + "\n Success!! No ActionBodyEntity DB entry found");
+            logger.debug("\n\n********PolicyEntityTest: orphanRemoval=true******"
+                    + "\n Success!! No ActionBodyEntity DB entry found");
             
         }else{
-               a2 = (ActionBodyEntity) resultList.get(0);
-               fail("\nPolicyEntityTest: ActionBodyEntity DB entry found - and none should exist"
-                               + "\nactionBodyId = " + a2.getActionBodyId());
+            a2 = (ActionBodyEntity) resultList.get(0);
+            fail("\nPolicyEntityTest: ActionBodyEntity DB entry found - and none should exist"
+                    + "\nactionBodyId = " + a2.getActionBodyId());
         }
         
         //Now lets put the configurationData and actionBody back into the policy object and see what appears
@@ -512,86 +512,86 @@ public class PolicyEntityTest {
         em.flush();
         
         //retrieve the policy object
-               resultList = query.getResultList();
+        resultList = query.getResultList();
         p2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             p2 = (PolicyEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest: No PolicyEntity DB entry found");
+            fail("\nPolicyEntityTest: No PolicyEntity DB entry found");
         }
         
         //output what we policy object found
         logger.debug("\n\n********PolicyEntityTest: PolicyEntity object after again adding ConfigurationDataEntity and retrieving from DB*********"
-                       + "\npolicyId2 = " + p2.getPolicyId()
-                       + "\npolicyName2 = " + p2.getPolicyName()
-                       + "\nversion2 = " + p2.getVersion()
-                       + "\npolicyData2 = " + p2.getPolicyData()
-                       + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
-                       + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
-                       +  "\nscope2 = " + p2.getScope()
-                       + "\ncreatedBy2 = " + p2.getCreatedBy()
-                       + "\ncreatedDate2 = " + p2.getCreatedDate()
-                       + "\ndescription2 = " + p2.getDescription()
-                       + "\nmodifiedBy2 = " + p2.getModifiedBy()
-                       + "\nmodifiedDate2 = " + p2.getModifiedDate()
-                       + "\ndeleted2 = " + p2.isDeleted());
+                + "\npolicyId2 = " + p2.getPolicyId()
+                + "\npolicyName2 = " + p2.getPolicyName()
+                + "\nversion2 = " + p2.getVersion()
+                + "\npolicyData2 = " + p2.getPolicyData()
+                + "\nconfigurationData2 = " + (p2.getConfigurationData()!=null ? "configurationDataId = " + p2.getConfigurationData().getConfigurationDataId() : "configurationData is null")
+                + "\nactionBody2 = " + (p2.getActionBodyEntity()!=null ? "actionBodyId = " + p2.getActionBodyEntity().getActionBodyId() : "actionBody is null")
+                +  "\nscope2 = " + p2.getScope()
+                + "\ncreatedBy2 = " + p2.getCreatedBy()
+                + "\ncreatedDate2 = " + p2.getCreatedDate()
+                + "\ndescription2 = " + p2.getDescription()
+                + "\nmodifiedBy2 = " + p2.getModifiedBy()
+                + "\nmodifiedDate2 = " + p2.getModifiedDate()
+                + "\ndeleted2 = " + p2.isDeleted());
 
 
         //now lets see if it put the configurationData c1 back into the table
-               resultList = query2.getResultList();
+        resultList = query2.getResultList();
         c2 = null;
         if(!resultList.isEmpty()){
             // ignores multiple results
             c2 = (ConfigurationDataEntity) resultList.get(0);
         }else{
-               fail("\nPolicyEntityTest - Check re-entry of configurationData into DB"
-                               + "No ConfigurationDataEntity DB entry found");
+            fail("\nPolicyEntityTest - Check re-entry of configurationData into DB"
+                    + "No ConfigurationDataEntity DB entry found");
         }
         
         //output what configurationData object we found
         logger.debug("\n\n********PolicyEntityTest: Configuration object after re-enter into policy object and retrieving from DB *********"
-                       + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
-                       + "\nversion2 = " + c2.getVersion()
-                       + "\nconfigType2 = " + c2.getConfigType()
-                       + "\nconfigBody2 = " + c2.getConfigBody()
-                       + "\ncreatedBy2 = " + c2.getCreatedBy()
-                       + "\ncreatedDate2 = " + c2.getCreatedDate()
-                       + "\ndescription2 = " + c2.getDescription()
-                       + "\nmodifiedBy = " + c2.getModifiedBy()
-                       + "\nmodifiedDate = " + c2.getModifiedDate()
-                       + "\ndeleted2 = " + c2.isDeleted());
+                + "\nconfigurationDataId2 = " + c2.getConfigurationDataId()
+                + "\nversion2 = " + c2.getVersion()
+                + "\nconfigType2 = " + c2.getConfigType()
+                + "\nconfigBody2 = " + c2.getConfigBody()
+                + "\ncreatedBy2 = " + c2.getCreatedBy()
+                + "\ncreatedDate2 = " + c2.getCreatedDate()
+                + "\ndescription2 = " + c2.getDescription()
+                + "\nmodifiedBy = " + c2.getModifiedBy()
+                + "\nmodifiedDate = " + c2.getModifiedDate()
+                + "\ndeleted2 = " + c2.isDeleted());
 
         //now lets see if it put the actionBody a1 back into the table
         //Get the database version of the Action Body
-               resultList = querya2.getResultList();
+        resultList = querya2.getResultList();
          a2 = null;
          if(!resultList.isEmpty()){
              // ignores multiple results
              a2 = (ActionBodyEntity) resultList.get(0);
          }else{
-               fail("\nPolicyEntityTest - Check re-entry of actionBody into DB"
-                               + "No ActionBodyEntity DB entry found");
+            fail("\nPolicyEntityTest - Check re-entry of actionBody into DB"
+                    + "No ActionBodyEntity DB entry found");
          }
          
          logger.debug("\n\n********PolicyEntityTest: Local Action Body object after re-enter into policy object and retrieving from DB *********"
-                       + "\nactionBodyId2 = " + a2.getActionBodyId()
-                       + "\nactionBodyVersion2 = " + a2.getVersion()
-                       + "\nactionBody2 = " + a2.getActionBody()
-                       + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
-                       + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
-                       + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
-                       + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
-                       + "\nactionBodyDeleted2 = " + a2.isDeleted());        
+                + "\nactionBodyId2 = " + a2.getActionBodyId()
+                + "\nactionBodyVersion2 = " + a2.getVersion()
+                + "\nactionBody2 = " + a2.getActionBody()
+                + "\nactionBodyCeatedBy2 = " + a2.getCreatedBy()
+                + "\nactionBodyCreatedDate2 = " + a2.getCreatedDate()
+                + "\nactionBodyModifiedBy2 = " + a2.getModifiedBy()
+                + "\nactionBodyModifiedDate2 = " + a2.getModifiedDate()
+                + "\nactionBodyDeleted2 = " + a2.isDeleted());
 
         //I want to save all the above in the DB
         try{
-               et.commit();
-               logger.debug("\n\n***********PolicyEntityTest: et.commit Succeeded********");
+            et.commit();
+            logger.debug("\n\n***********PolicyEntityTest: et.commit Succeeded********");
         }catch(Exception e){
-               logger.debug("\n\n***********PolicyEntityTest: et.commit Failed********"
-                               + "\nTRANSACTION ROLLBACK "
-                               + "\n   with exception: " + e);
+            logger.debug("\n\n***********PolicyEntityTest: et.commit Failed********"
+                    + "\nTRANSACTION ROLLBACK "
+                    + "\n   with exception: " + e);
         }
 
         // Start a new transaction
@@ -603,58 +603,58 @@ public class PolicyEntityTest {
         PolicyEntity p3 = new PolicyEntity();
         em.persist(p3);
 
-       
-       //first let's assure that you can save with the same name but a different scope
-       p3.setPolicyName(p1.getPolicyName());
-       p3.setScope("mckiou.kevin.kory");
-       em.flush();
-       logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
-                       + "\nSuccess!  PolicyEntity uniqueness constraint allowed "
-                       + "\n   policyId1 " + p1.getPolicyId() 
-                       + "\n   policyName1 " + p1.getPolicyName() 
-                       + "\n   scope1 = " + p1.getScope()
-                       + "\n   policyId3 " + p3.getPolicyId() 
-                       + "\n   policyName3 " + p3.getPolicyName() 
-                       + "\n   scope3 = " + p3.getScope());
-
-       //Assert that the policyIds are NOT the same to show that the automatic sequencing is working
-       assert(p1.getPolicyId() != p3.getPolicyId());
-
-       try{
-               //Now set the scope the same to verify the uniqueness constraint will be enforced
-               p3.setScope(p1.getScope());
-               
-               em.flush();
-               logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
-                               + "\nFailed! PolicyEntity Uniqueness constraint FAILED and DID allow "
-                               + "\n   policyId1 " + p1.getPolicyId() 
-                               + "\n   policyName1 " + p1.getPolicyName() 
-                               + "\n   scope1 = " + p1.getScope()
-                               + "\n   policyId3 " + p3.getPolicyId() 
-                               + "\n   policyName3 " + p3.getPolicyName() 
-                               + "\n   scope3 = " + p3.getScope());;
+
+        //first let's assure that you can save with the same name but a different scope
+        p3.setPolicyName(p1.getPolicyName());
+        p3.setScope("mckiou.kevin.kory");
+        em.flush();
+        logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
+                + "\nSuccess!  PolicyEntity uniqueness constraint allowed "
+                + "\n   policyId1 " + p1.getPolicyId()
+                + "\n   policyName1 " + p1.getPolicyName()
+                + "\n   scope1 = " + p1.getScope()
+                + "\n   policyId3 " + p3.getPolicyId()
+                + "\n   policyName3 " + p3.getPolicyName()
+                + "\n   scope3 = " + p3.getScope());
+
+        //Assert that the policyIds are NOT the same to show that the automatic sequencing is working
+        assert(p1.getPolicyId() != p3.getPolicyId());
+
+        try{
+            //Now set the scope the same to verify the uniqueness constraint will be enforced
+            p3.setScope(p1.getScope());
+
+            em.flush();
+            logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
+                    + "\nFailed! PolicyEntity Uniqueness constraint FAILED and DID allow "
+                    + "\n   policyId1 " + p1.getPolicyId()
+                    + "\n   policyName1 " + p1.getPolicyName()
+                    + "\n   scope1 = " + p1.getScope()
+                    + "\n   policyId3 " + p3.getPolicyId()
+                    + "\n   policyName3 " + p3.getPolicyName()
+                    + "\n   scope3 = " + p3.getScope());;
         }
         catch(Exception e){
-               //Success
-               logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
-                               + "\nSuccess!  PolicyEntity Uniqueness constraint SUCCEEDED and did NOT allow "
-                               + "\n   policyId1 " + p1.getPolicyId() 
-                               + "\n   policyName1 " + p1.getPolicyName() 
-                               + "\n   scope1 = " + p1.getScope()
-                               + "\n   policyId3 " + p3.getPolicyId() 
-                               + "\n   policyName3 " + p3.getPolicyName() 
-                               + "\n   scope3 = " + p3.getScope()
-                               + "\n   with excpetion: " + e);
+            //Success
+            logger.debug("\n\n***********PolicyEntityTest: PolicyEntity Unique test for policyName and scope********"
+                    + "\nSuccess!  PolicyEntity Uniqueness constraint SUCCEEDED and did NOT allow "
+                    + "\n   policyId1 " + p1.getPolicyId()
+                    + "\n   policyName1 " + p1.getPolicyName()
+                    + "\n   scope1 = " + p1.getScope()
+                    + "\n   policyId3 " + p3.getPolicyId()
+                    + "\n   policyName3 " + p3.getPolicyName()
+                    + "\n   scope3 = " + p3.getScope()
+                    + "\n   with excpetion: " + e);
         }
 
-       
+
         try{
-               et2.commit();
-               logger.debug("\n\n***********PolicyEntityTest: et2.commit Succeeded********");
+            et2.commit();
+            logger.debug("\n\n***********PolicyEntityTest: et2.commit Succeeded********");
         }catch(Exception e){
-               logger.debug("\n\n***********PolicyEntityTest: et2.commit Failed********"
-                               + "\nTRANSACTION ROLLBACK "
-                               + "\n   with exception: " + e);
+            logger.debug("\n\n***********PolicyEntityTest: et2.commit Failed********"
+                    + "\nTRANSACTION ROLLBACK "
+                    + "\n   with exception: " + e);
         }
         
         //****************Test the PolicyDBDaoEntity************************
@@ -685,63 +685,63 @@ public class PolicyEntityTest {
         
         //Print them to the log before flushing
         logger.debug("\n\n***********PolicyEntityTest: PolicyDBDaoEntity objects before flush********"
-                       + "\n   policyDBDaoUrl-1 = " + pe1.getPolicyDBDaoUrl()
-                       + "\n   description-1 = " + pe1.getDescription()
-                       + "\n   createdDate-1 = " + pe1.getCreatedDate()
-                       + "\n   modifiedDate-1 " + pe1.getModifiedDate()
-                       + "\n*****************************************"
-                       + "\n   policyDBDaoUrl-2 = " + pe2.getPolicyDBDaoUrl()
-                       + "\n   description-2 = " + pe2.getDescription()
-                       + "\n   createdDate-2 = " + pe2.getCreatedDate()
-                       + "\n   modifiedDate-2 " + pe2.getModifiedDate()
-                       );
+                + "\n   policyDBDaoUrl-1 = " + pe1.getPolicyDBDaoUrl()
+                + "\n   description-1 = " + pe1.getDescription()
+                + "\n   createdDate-1 = " + pe1.getCreatedDate()
+                + "\n   modifiedDate-1 " + pe1.getModifiedDate()
+                + "\n*****************************************"
+                + "\n   policyDBDaoUrl-2 = " + pe2.getPolicyDBDaoUrl()
+                + "\n   description-2 = " + pe2.getDescription()
+                + "\n   createdDate-2 = " + pe2.getCreatedDate()
+                + "\n   modifiedDate-2 " + pe2.getModifiedDate()
+                );
         
         //push it to the DB
         em.flush();
         
         //Now let's retrieve them from the DB using the named query
         
-               resultList = em.createNamedQuery("PolicyDBDaoEntity.findAll").getResultList();
+        resultList = em.createNamedQuery("PolicyDBDaoEntity.findAll").getResultList();
+
+        PolicyDBDaoEntity pex = null;
+        PolicyDBDaoEntity pey = null;
 
-               PolicyDBDaoEntity pex = null;
-               PolicyDBDaoEntity pey = null;
-               
         if(!resultList.isEmpty()){
-               if (resultList.size() != 2){
-                       fail("\nPolicyEntityTest: Number of PolicyDBDaoEntity entries = " + resultList.size() + " instead of 2");
-               }
-               for(Object policyDBDaoEntity: resultList){
-                       PolicyDBDaoEntity pdbdao = (PolicyDBDaoEntity)policyDBDaoEntity;
-                       if(pdbdao.getPolicyDBDaoUrl().equals("http://123.45.2.456:2345")){
-                               pex = pdbdao;
-                       }else if(pdbdao.getPolicyDBDaoUrl().equals("http://789.01.2.345:2345")){
-                               pey = pdbdao;
-                       }
-               }
-               
+            if (resultList.size() != 2){
+                fail("\nPolicyEntityTest: Number of PolicyDBDaoEntity entries = " + resultList.size() + " instead of 2");
+            }
+            for(Object policyDBDaoEntity: resultList){
+                PolicyDBDaoEntity pdbdao = (PolicyDBDaoEntity)policyDBDaoEntity;
+                if(pdbdao.getPolicyDBDaoUrl().equals("http://123.45.2.456:2345")){
+                    pex = pdbdao;
+                }else if(pdbdao.getPolicyDBDaoUrl().equals("http://789.01.2.345:2345")){
+                    pey = pdbdao;
+                }
+            }
+
             //Print them to the log before flushing
             logger.debug("\n\n***********PolicyEntityTest: PolicyDBDaoEntity objects retrieved from DB********"
-                               + "\n   policyDBDaoUrl-x = " + pex.getPolicyDBDaoUrl()
-                               + "\n   description-x = " + pex.getDescription()
-                               + "\n   createdDate-x = " + pex.getCreatedDate()
-                               + "\n   modifiedDate-x " + pex.getModifiedDate()
-                               + "\n*****************************************"
-                               + "\n   policyDBDaoUrl-y = " + pey.getPolicyDBDaoUrl()
-                               + "\n   description-y = " + pey.getDescription()
-                               + "\n   createdDate-y = " + pey.getCreatedDate()
-                               + "\n   modifiedDate-y " + pey.getModifiedDate()
-                       );
-               //Verify the retrieved objects are the same as the ones we stored in the DB
-               if(pex.getPolicyDBDaoUrl().equals("http://123.45.2.456:2345")){
-                       assertSame(pe1,pex);
-                       assertSame(pe2,pey);
-               }else{
-                       assertSame(pe2,pex);
-                       assertSame(pe1,pey);
-               }
+                    + "\n   policyDBDaoUrl-x = " + pex.getPolicyDBDaoUrl()
+                    + "\n   description-x = " + pex.getDescription()
+                    + "\n   createdDate-x = " + pex.getCreatedDate()
+                    + "\n   modifiedDate-x " + pex.getModifiedDate()
+                    + "\n*****************************************"
+                    + "\n   policyDBDaoUrl-y = " + pey.getPolicyDBDaoUrl()
+                    + "\n   description-y = " + pey.getDescription()
+                    + "\n   createdDate-y = " + pey.getCreatedDate()
+                    + "\n   modifiedDate-y " + pey.getModifiedDate()
+                    );
+            //Verify the retrieved objects are the same as the ones we stored in the DB
+            if(pex.getPolicyDBDaoUrl().equals("http://123.45.2.456:2345")){
+                assertSame(pe1,pex);
+                assertSame(pe2,pey);
+            }else{
+                assertSame(pe2,pex);
+                assertSame(pe1,pey);
+            }
             
         }else{
-               fail("\nPolicyEntityTest: No PolicyDBDaoEntity DB entry found");
+            fail("\nPolicyEntityTest: No PolicyDBDaoEntity DB entry found");
         }
        
         //Now let's see if we can do an update on the PolicyDBDaoEntity which we retrieved.
@@ -751,32 +751,32 @@ public class PolicyEntityTest {
         
         //retrieve it
         Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyDBDaoEntity p WHERE p.description=:desc");
-               resultList = createPolicyQuery.setParameter("desc", "This is pex").getResultList();
-               
-               PolicyDBDaoEntity pez = null;
+        resultList = createPolicyQuery.setParameter("desc", "This is pex").getResultList();
+
+        PolicyDBDaoEntity pez = null;
         
         if(!resultList.isEmpty()){
-               if (resultList.size() != 1){
-                       fail("\nPolicyEntityTest: Update Test - Number of PolicyDBDaoEntity entries = " + resultList.size() + " instead of 1");
-               }
-               pez = (PolicyDBDaoEntity) resultList.get(0);
-               
+            if (resultList.size() != 1){
+                fail("\nPolicyEntityTest: Update Test - Number of PolicyDBDaoEntity entries = " + resultList.size() + " instead of 1");
+            }
+            pez = (PolicyDBDaoEntity) resultList.get(0);
+
             //Print them to the log before flushing
             logger.debug("\n\n***********PolicyEntityTest: Update Test - PolicyDBDaoEntity objects retrieved from DB********"
-                               + "\n   policyDBDaoUrl-x = " + pex.getPolicyDBDaoUrl()
-                               + "\n   description-x = " + pex.getDescription()
-                               + "\n   createdDate-x = " + pex.getCreatedDate()
-                               + "\n   modifiedDate-x " + pex.getModifiedDate()
-                               + "\n*****************************************"
-                               + "\n   policyDBDaoUrl-z = " + pez.getPolicyDBDaoUrl()
-                               + "\n   description-z = " + pez.getDescription()
-                               + "\n   createdDate-z = " + pez.getCreatedDate()
-                               + "\n   modifiedDate-z " + pez.getModifiedDate()
-                       );
-               //Verify the retrieved objects are the same as the ones we stored in the DB
-                       assertSame(pex,pez);
+                    + "\n   policyDBDaoUrl-x = " + pex.getPolicyDBDaoUrl()
+                    + "\n   description-x = " + pex.getDescription()
+                    + "\n   createdDate-x = " + pex.getCreatedDate()
+                    + "\n   modifiedDate-x " + pex.getModifiedDate()
+                    + "\n*****************************************"
+                    + "\n   policyDBDaoUrl-z = " + pez.getPolicyDBDaoUrl()
+                    + "\n   description-z = " + pez.getDescription()
+                    + "\n   createdDate-z = " + pez.getCreatedDate()
+                    + "\n   modifiedDate-z " + pez.getModifiedDate()
+                    );
+            //Verify the retrieved objects are the same as the ones we stored in the DB
+            assertSame(pex,pez);
         }else{
-               fail("\nPolicyEntityTest: Update Test - No PolicyDBDaoEntity DB updated entry found");
+            fail("\nPolicyEntityTest: Update Test - No PolicyDBDaoEntity DB updated entry found");
         }
         
         //Clean up the DB
@@ -787,12 +787,12 @@ public class PolicyEntityTest {
         
         //Wrap up the transaction
         try{
-               et3.commit();
-               logger.debug("\n\n***********PolicyEntityTest: et3.commit Succeeded********");
+            et3.commit();
+            logger.debug("\n\n***********PolicyEntityTest: et3.commit Succeeded********");
         }catch(Exception e){
-               logger.debug("\n\n***********PolicyEntityTest: et3.commit Failed********"
-                               + "\nTRANSACTION ROLLBACK "
-                               + "\n   with exception: " + e);
+            logger.debug("\n\n***********PolicyEntityTest: et3.commit Failed********"
+                    + "\nTRANSACTION ROLLBACK "
+                    + "\n   with exception: " + e);
         }
          
         
index 34a2663..162f4a9 100644 (file)
@@ -27,18 +27,18 @@ import org.onap.policy.xacml.std.pap.StdPDPPolicy;
 import com.att.research.xacml.api.pap.PDPPolicy;
 
 public class RemoveGroupPolicyTest {
-       @Test
-       public void testRemove() {
-               // Test constructor
-               StdPDPGroup group = new StdPDPGroup();
-               RemoveGroupPolicy remove = new RemoveGroupPolicy(group);
-               assertEquals(remove.isRemoved(), false);
-               assertEquals(remove.getUpdatedObject(), null);
-               
-               // Test remove
-               PDPPolicy policy = new StdPDPPolicy();
-               remove.prepareToRemove(policy);
-               remove.doSave();
-               assertEquals(remove.isRemoved(), true);
-       }
+    @Test
+    public void testRemove() {
+        // Test constructor
+        StdPDPGroup group = new StdPDPGroup();
+        RemoveGroupPolicy remove = new RemoveGroupPolicy(group);
+        assertEquals(remove.isRemoved(), false);
+        assertEquals(remove.getUpdatedObject(), null);
+
+        // Test remove
+        PDPPolicy policy = new StdPDPPolicy();
+        remove.prepareToRemove(policy);
+        remove.doSave();
+        assertEquals(remove.isRemoved(), true);
+    }
 }
index fed2ac9..ba400df 100644 (file)
@@ -28,12 +28,12 @@ import com.mockrunner.mock.web.MockHttpServletRequest;
 import com.mockrunner.mock.web.MockHttpServletResponse;
 
 public class ImportServiceTest {
-       @Test
-       public void testNegativeCases() {
-               ImportService service = new ImportService();
-               HttpServletRequest request = new MockHttpServletRequest();
-               HttpServletResponse response = new MockHttpServletResponse();
-               service.doImportMicroServicePut(request, response);
-               assertEquals(response.getHeader("error"), "missing");
-       }
+    @Test
+    public void testNegativeCases() {
+        ImportService service = new ImportService();
+        HttpServletRequest request = new MockHttpServletRequest();
+        HttpServletResponse response = new MockHttpServletResponse();
+        service.doImportMicroServicePut(request, response);
+        assertEquals(response.getHeader("error"), "missing");
+    }
 }
index 0c85fe1..8c976d9 100644 (file)
@@ -34,16 +34,16 @@ import com.mockrunner.mock.web.MockHttpServletResponse;
 
 @RunWith(PowerMockRunner.class)
 public class MetricServiceTest {
-       @PrepareForTest({XACMLPapServlet.class})
-       @Test
-       public void testNegativeGet() {
-               // Mock pap servlet
-               PowerMockito.mockStatic(XACMLPapServlet.class);
-               when(XACMLPapServlet.getPAPEngine()).thenReturn(null);
-               when(XACMLPapServlet.getEmf()).thenReturn(null);
+    @PrepareForTest({XACMLPapServlet.class})
+    @Test
+    public void testNegativeGet() {
+        // Mock pap servlet
+        PowerMockito.mockStatic(XACMLPapServlet.class);
+        when(XACMLPapServlet.getPAPEngine()).thenReturn(null);
+        when(XACMLPapServlet.getEmf()).thenReturn(null);
 
-               MockHttpServletResponse response = new MockHttpServletResponse();
-               MetricService.doGetPolicyMetrics(response);
-               assertEquals(response.getStatusCode(), HttpServletResponse.SC_BAD_REQUEST);
-       }
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        MetricService.doGetPolicyMetrics(response);
+        assertEquals(response.getStatusCode(), HttpServletResponse.SC_BAD_REQUEST);
+    }
 }
index 180c13f..cbe9ff2 100644 (file)
@@ -26,27 +26,27 @@ import org.junit.Test;
 import org.onap.policy.pap.xacml.restAuth.AuthenticationService;
 
 public class AuthenticationServiceTest {
-       private final String testCred = "testpap:alpha123";
-       private final String testCredEncoded = new String(Base64.getEncoder().encode(testCred.getBytes()));
-       private final String basicCred = "Basic " + testCredEncoded;
-       
-       @Test
-       public void testAuth() throws UnsupportedEncodingException {
-               String systemKey = "xacml.properties";
+    private final String testCred = "testpap:alpha123";
+    private final String testCredEncoded = new String(Base64.getEncoder().encode(testCred.getBytes()));
+    private final String basicCred = "Basic " + testCredEncoded;
 
-               // Set the system property temporarily
-               String oldProperty = System.getProperty(systemKey);
-               System.setProperty(systemKey, "xacml.pap.properties");
-               
-               AuthenticationService service = new AuthenticationService();
-               assertEquals(service.authenticate(basicCred), true);
-               
-               // Restore the original system property
-               if (oldProperty != null) {
-                       System.setProperty(systemKey, oldProperty);
-               }
-               else {
-                       System.clearProperty(systemKey);
-               }
-       }
+    @Test
+    public void testAuth() throws UnsupportedEncodingException {
+        String systemKey = "xacml.properties";
+
+        // Set the system property temporarily
+        String oldProperty = System.getProperty(systemKey);
+        System.setProperty(systemKey, "xacml.pap.properties");
+
+        AuthenticationService service = new AuthenticationService();
+        assertEquals(service.authenticate(basicCred), true);
+
+        // Restore the original system property
+        if (oldProperty != null) {
+            System.setProperty(systemKey, oldProperty);
+        }
+        else {
+            System.clearProperty(systemKey);
+        }
+    }
 }
index 2d72c8a..f1554e8 100644 (file)
@@ -38,84 +38,84 @@ import com.mockrunner.mock.web.MockHttpServletRequest;
 import com.mockrunner.mock.web.MockHttpServletResponse;
 
 public class PAPAuthenticationFilterTest {
-       
-       private HttpServletRequest request = null;
-       private HttpServletResponse response = null;
-       private String oldProperty;
-       private String systemKey = "xacml.properties";
-       private FilterChain filter;
-       private PAPAuthenticationFilter papFilter;
-       
-       @Before
-       public void setUp(){
-               // Set the system property temporarily
-               oldProperty = System.getProperty(systemKey);
-               System.setProperty(systemKey, "xacml.pap.properties");  
-               
-               request = Mockito.mock(HttpServletRequest.class);
-               response = Mockito.mock(HttpServletResponse.class);
-               filter = Mockito.mock(FilterChain.class);
-               papFilter = new PAPAuthenticationFilter();
-       }
-       
-       @Test
-       public void testAuth() throws IOException, ServletException {
-               PAPAuthenticationFilter filter = new PAPAuthenticationFilter();
-               MockHttpServletRequest request = new MockHttpServletRequest();
-               request.setRequestURI("/foo");
-               MockHttpServletResponse response = new MockHttpServletResponse();
-               FilterChain filterChain = null;
-               
-               // Negative test the filter
-               filter.doFilter(request, response, filterChain);
-               assertEquals(response.getStatusCode(), 401);
-               
-               // Test base methods
-               try {
-                       filter.destroy();
-                       filter.init(null);
-               }
-               catch (Exception ex) {
-                       fail("Not expecting any exceptions.");
-               }
-       }
-       
-       @Test
-       public void testDoFilter() {
-               Mockito.when(request.getRequestURI()).thenReturn("/pap/");
-               Mockito.when(request.getHeader("Authorization")).thenReturn("Basic dGVzdHBhcDphbHBoYTEyMw==");
-               callDoFilter();
-               Mockito.when(request.getRequestURI()).thenReturn("/pap/onap/");
-               callDoFilter();
-       }
-       
-       public void callDoFilter(){
-               try {
-                       papFilter.doFilter(request, response, filter);
-               } catch (Exception e) {
-                       assertEquals(NullPointerException.class, e.getClass());
-               } 
-       }
-       
-       @Test
-       public void testOnPassingInvalidParamters(){
-               Mockito.when(request.getRequestURI()).thenReturn("/pap/");
-               Mockito.when(request.getHeader("Authorization")).thenReturn("Basic dGVzdHBhcDphbHBoYTE789==");
-               try {
-                       papFilter.doFilter(request, response, filter);
-                       assertEquals(0, response.getStatus());
-               } catch (Exception e) {
-                       fail();
-               }
-       }
-       
-       @After
-       public void reset(){
-               // Restore the original system property
-               if (oldProperty != null) {
-                       System.setProperty(systemKey, oldProperty);
-               } else {
-                       System.clearProperty(systemKey);
-               }
-       }
+
+    private HttpServletRequest request = null;
+    private HttpServletResponse response = null;
+    private String oldProperty;
+    private String systemKey = "xacml.properties";
+    private FilterChain filter;
+    private PAPAuthenticationFilter papFilter;
+
+    @Before
+    public void setUp(){
+        // Set the system property temporarily
+        oldProperty = System.getProperty(systemKey);
+        System.setProperty(systemKey, "xacml.pap.properties");
+
+        request = Mockito.mock(HttpServletRequest.class);
+        response = Mockito.mock(HttpServletResponse.class);
+        filter = Mockito.mock(FilterChain.class);
+        papFilter = new PAPAuthenticationFilter();
+    }
+
+    @Test
+    public void testAuth() throws IOException, ServletException {
+        PAPAuthenticationFilter filter = new PAPAuthenticationFilter();
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setRequestURI("/foo");
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        FilterChain filterChain = null;
+
+        // Negative test the filter
+        filter.doFilter(request, response, filterChain);
+        assertEquals(response.getStatusCode(), 401);
+
+        // Test base methods
+        try {
+            filter.destroy();
+            filter.init(null);
+        }
+        catch (Exception ex) {
+            fail("Not expecting any exceptions.");
+        }
+    }
+
+    @Test
+    public void testDoFilter() {
+        Mockito.when(request.getRequestURI()).thenReturn("/pap/");
+        Mockito.when(request.getHeader("Authorization")).thenReturn("Basic dGVzdHBhcDphbHBoYTEyMw==");
+        callDoFilter();
+        Mockito.when(request.getRequestURI()).thenReturn("/pap/onap/");
+        callDoFilter();
+    }
+
+    public void callDoFilter(){
+        try {
+            papFilter.doFilter(request, response, filter);
+        } catch (Exception e) {
+            assertEquals(NullPointerException.class, e.getClass());
+        }
+    }
+
+    @Test
+    public void testOnPassingInvalidParamters(){
+        Mockito.when(request.getRequestURI()).thenReturn("/pap/");
+        Mockito.when(request.getHeader("Authorization")).thenReturn("Basic dGVzdHBhcDphbHBoYTE789==");
+        try {
+            papFilter.doFilter(request, response, filter);
+            assertEquals(0, response.getStatus());
+        } catch (Exception e) {
+            fail();
+        }
+    }
+
+    @After
+    public void reset(){
+        // Restore the original system property
+        if (oldProperty != null) {
+            System.setProperty(systemKey, oldProperty);
+        } else {
+            System.clearProperty(systemKey);
+        }
+    }
 }