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