[Policy-52, Policy-92, Policy-93] Policy Enhancements and bugfixes
[policy/engine.git] / ECOMP-PAP-REST / src / main / java / org / openecomp / policy / pap / xacml / rest / components / Policy.java
index 743883b..bdd3612 100644 (file)
@@ -105,6 +105,7 @@ public abstract class Policy {
        public static final String FUNCTION_BOOLEAN_ONE_AND_ONLY = "urn:oasis:names:tc:xacml:1.0:function:boolean-one-and-only";
        public static final String FUNCTION_STRING_EQUAL = "urn:oasis:names:tc:xacml:1.0:function:string-equal";
        public static final String FUNCTION_STRING_REGEX_MATCH = "org.openecomp.function.regex-match";
+       public static final String FUNCTION_STRING_REGEXP_MATCH = "urn:oasis:names:tc:xacml:1.0:function:string-regexp-match";
        public static final String FUNCTION_STRING_EQUAL_IGNORE = "urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case";
        public static final String INTEGER_DATATYPE = "http://www.w3.org/2001/XMLSchema#integer";
        public static final String BOOLEAN_DATATYPE = "http://www.w3.org/2001/XMLSchema#boolean";
@@ -118,7 +119,7 @@ public abstract class Policy {
        public static String ACTION_HOME = null;
        public static String CONFIG_URL = null;
 
-       protected Map<String, String> performer = new HashMap<String, String>();
+       protected Map<String, String> performer = new HashMap<>();
 
        private static String actionHome = null;
        private static String configHome = null;
@@ -210,13 +211,19 @@ public abstract class Policy {
 
        // Validation for json.
        protected static boolean isJSONValid(String data) {
+               JsonReader jsonReader = null;
                try {
                        new JSONObject(data);
                        InputStream stream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
-                       JsonReader jsonReader = Json.createReader(stream);
-                       System.out.println("Json Value is: " + jsonReader.read().toString() );
+                       jsonReader = Json.createReader(stream);
+                       LOGGER.info("Json Value is: " + jsonReader.read().toString() );
                } catch (Exception e) {
+                       LOGGER.error("Exception Occured while reading json"+e);
                        return false;
+               }finally{
+                       if(jsonReader != null){
+                               jsonReader.close();
+                       }
                }
                return true;
        }
@@ -287,7 +294,7 @@ public abstract class Policy {
 
        //create policy once all the validations are completed
        protected Map<String, String> createPolicy(final Path policyPath, final Object policyData) {
-               Map<String, String> success = new HashMap<String, String>(); 
+               Map<String, String> success = new HashMap<>(); 
                //
                // Is the root a PolicySet or Policy?
                //
@@ -298,8 +305,9 @@ public abstract class Policy {
                        //
                        //Does not need to be XACMLPolicyWriterWithPapNotify since it is already in the PAP
                        //and this transaction is intercepted up stream.
-                       InputStream inputStream = XACMLPolicyWriter.getXmlAsInputStream((PolicyType) policyData);
+                       InputStream inputStream = null;
                        try {
+                               inputStream = XACMLPolicyWriter.getXmlAsInputStream((PolicyType) policyData);
                                PolicyDef policyDef = DOMPolicyDef.load(inputStream);
                                if (policyDef == null) {
                                        success.put("validation", "PolicyDef Validation Failed");
@@ -307,7 +315,15 @@ public abstract class Policy {
                                        success.put("success", "success");
                                }
                        } catch (Exception e) {
+                               LOGGER.error("PolicyDef Validation failed"+e);
                                success.put("error", "Validation Failed");
+                       }finally{
+                               try {
+                                       if(inputStream != null)
+                                               inputStream.close();
+                               } catch (IOException e) {
+                                       LOGGER.error("Exception Occured while closing the input stream"+e);
+                               }
                        }
                } else {
                        PolicyLogger.error("Unknown data type sent back.");
@@ -369,16 +385,7 @@ public abstract class Policy {
                        configHome = webappsPathConfig.toString();
                }
        }
-
-       protected String getParentPathSubScopeDir() {
-               final Path gitPath = Paths.get(policyAdapter.getUserGitPath().toString());
-               String policyDir = policyAdapter.getParentPath().toString();
-               int startIndex = policyDir.indexOf(gitPath.toString()) + gitPath.toString().length() + 1;
-               policyDir = policyDir.substring(startIndex, policyDir.length());
-               return policyDir;
-       }
-
-
+       
        public boolean validateConfigForm() {
                return true;
        }