Updated to take care of duplicate loading of config file and fixed tests
diff --git a/.gitignore b/.gitignore
index 2db461e..4ebc016 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 .project
 .classpath
 .settings
+.idea
 *.log
 *.iml
 *.ipr
diff --git a/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/PepUtils.java b/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/PepUtils.java
index 40dbe20..69dc0e1 100644
--- a/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/PepUtils.java
+++ b/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/PepUtils.java
@@ -24,7 +24,9 @@
 import org.apache.commons.logging.LogFactory;
 
 import java.io.*;
+import java.util.HashSet;
 import java.util.Properties;
+import java.util.Set;
 
 /**
  *
@@ -64,7 +66,7 @@
 
         // Try the location as a file first.
         File file = new File(propertyFile);
-        InputStream in;
+        InputStream in = null;
         if (file.exists() && file.canRead()) {
             if (!file.isAbsolute()) {
                 file = file.getAbsoluteFile();
@@ -72,15 +74,23 @@
             try {
                 in = new FileInputStream(file);
             } catch (FileNotFoundException e) {
-                logger.info(propertyFile + " is not a file.");
+                logger.error("Error while accessing file: " + propertyFile);
+                throw new IllegalArgumentException(e);
             }
-        }
-
-        in = PepUtils.class.getResourceAsStream(propertyFile);
-
-        if (in == null) {
-            logger.error("Invalid classpath of file location: " + propertyFile);
-            throw new IllegalArgumentException("Invalid classpath or file location: " + propertyFile);
+        } else {
+            Set<ClassLoader> classLoaders = new HashSet<>();
+            classLoaders.add(PepUtils.class.getClassLoader());
+            classLoaders.add(Thread.currentThread().getContextClassLoader());
+            for(ClassLoader classLoader: classLoaders) {
+                in = classLoader.getResourceAsStream(propertyFile);
+                if(in != null) {
+                    break;
+                }
+            }
+            if(in == null) {
+                logger.error("Invalid classpath or file location: " + propertyFile);
+                throw new IllegalArgumentException("Invalid classpath or file location: " + propertyFile);
+            }
         }
 
         try {
diff --git a/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/StdPepAgentFactory.java b/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/StdPepAgentFactory.java
index e6ad7ba..1806e88 100644
--- a/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/StdPepAgentFactory.java
+++ b/openaz-pep/src/main/java/org/apache/openaz/pepapi/std/StdPepAgentFactory.java
@@ -47,8 +47,7 @@
         this.xacmlProperties = properties;

         this.pepConfig = new StdPepConfig(properties);

         try {

-            // FIXME: Error when invoking newInstance() with properties.

-            pdpEngineFactory = PDPEngineFactory.newInstance();

+            pdpEngineFactory = PDPEngineFactory.newInstance(properties);

         } catch (FactoryException e) {

             throw new PepException(e);

         }

diff --git a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestAPI.java b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestAPI.java
index f60f91e..d6c96b4 100644
--- a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestAPI.java
+++ b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestAPI.java
@@ -35,7 +35,7 @@
 

     @Before

     public void setup() {

-        pepAgentFactory = new StdPepAgentFactory("/properties/testapi.xacml.properties");

+        pepAgentFactory = new StdPepAgentFactory("properties/testapi.xacml.properties");

     }

 

     /**

diff --git a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestDataTypes.java b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestDataTypes.java
index 632a8fe..4276ea6 100644
--- a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestDataTypes.java
+++ b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestDataTypes.java
@@ -40,7 +40,7 @@
          * System.setProperty("xacml.properties" ,

          * getClass().getClassLoader().getResource("properties/testdatatypes.xacml.properties").getPath());

          */

-        pepAgentFactory = new StdPepAgentFactory("/properties/testdatatypes.xacml.properties");

+        pepAgentFactory = new StdPepAgentFactory("properties/testdatatypes.xacml.properties");

     }

 

     /**

diff --git a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestMapper.java b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestMapper.java
index 035d644..72a6f88 100644
--- a/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestMapper.java
+++ b/openaz-pep/src/test/java/org/apache/openaz/pepapi/std/test/TestMapper.java
@@ -43,7 +43,7 @@
 

     @Before

     public void setup() {

-        this.pepAgentFactory = new StdPepAgentFactory("/properties/testmapper.xacml.properties");

+        this.pepAgentFactory = new StdPepAgentFactory("properties/testmapper.xacml.properties");

     }

 

     /**

diff --git a/openaz-pep/src/test/resources/properties/testapi.xacml.properties b/openaz-pep/src/test/resources/properties/testapi.xacml.properties
index 75c84a3..7ba87d7 100755
--- a/openaz-pep/src/test/resources/properties/testapi.xacml.properties
+++ b/openaz-pep/src/test/resources/properties/testapi.xacml.properties
@@ -2,7 +2,7 @@
 # Standard API Factories
 #
 xacml.dataTypeFactory=org.apache.openaz.xacml.std.StdDataTypeFactory
-xacml.pdpEngineFactory=org.apache.openaz.xacmlatt.pdp.ATTPDPEngineFactory
+xacml.pdpEngineFactory=org.apache.openaz.xacml.pdp.OpenAZPDPEngineFactory
 xacml.pepEngineFactory=org.apache.openaz.xacml.std.pep.StdEngineFactory
 xacml.pipFinderFactory=org.apache.openaz.xacml.std.pip.StdPIPFinderFactory
 
diff --git a/openaz-pep/src/test/resources/properties/testdatatypes.xacml.properties b/openaz-pep/src/test/resources/properties/testdatatypes.xacml.properties
index ee83c87..c4e8ef5 100755
--- a/openaz-pep/src/test/resources/properties/testdatatypes.xacml.properties
+++ b/openaz-pep/src/test/resources/properties/testdatatypes.xacml.properties
@@ -2,7 +2,7 @@
 # Standard API Factories
 #
 xacml.dataTypeFactory=org.apache.openaz.xacml.std.StdDataTypeFactory
-xacml.pdpEngineFactory=org.apache.openaz.xacmlatt.pdp.ATTPDPEngineFactory
+xacml.pdpEngineFactory=org.apache.openaz.xacml.pdp.OpenAZPDPEngineFactory
 xacml.pepEngineFactory=org.apache.openaz.xacml.std.pep.StdEngineFactory
 xacml.pipFinderFactory=org.apache.openaz.xacml.std.pip.StdPIPFinderFactory
 
diff --git a/openaz-pep/src/test/resources/properties/testmapper.xacml.properties b/openaz-pep/src/test/resources/properties/testmapper.xacml.properties
index 676b748..22c67a3 100755
--- a/openaz-pep/src/test/resources/properties/testmapper.xacml.properties
+++ b/openaz-pep/src/test/resources/properties/testmapper.xacml.properties
@@ -2,7 +2,7 @@
 # Standard API Factories
 #
 xacml.dataTypeFactory=org.apache.openaz.xacml.std.StdDataTypeFactory
-xacml.pdpEngineFactory=org.apache.openaz.xacmlatt.pdp.ATTPDPEngineFactory
+xacml.pdpEngineFactory=org.apache.openaz.xacml.pdp.OpenAZPDPEngineFactory
 xacml.pepEngineFactory=org.apache.openaz.xacml.std.pep.StdEngineFactory
 xacml.pipFinderFactory=org.apache.openaz.xacml.std.pip.StdPIPFinderFactory