aboutsummaryrefslogtreecommitdiffstats
path: root/PolicyEngineAPI/src
diff options
context:
space:
mode:
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2018-03-06 14:44:41 +0100
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2018-03-06 16:17:04 +0100
commit8a4b697dc3d0a5556bdb4135dea0d43d0b4bfd0f (patch)
treebe39eb83a6d8413cd25749fa580be194c5f55084 /PolicyEngineAPI/src
parent0ca791ec99d07b563cc28949d205c29b663437c1 (diff)
Add new constructor
Add a new constructor to PolicyEngine to support Properties parameters instead of a file. Issue-ID: CLAMP-136 Change-Id: Id82a736cac8ac5603ff3627a9ce2ac5af4197a45 Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
Diffstat (limited to 'PolicyEngineAPI/src')
-rw-r--r--PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java43
-rw-r--r--PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java39
-rw-r--r--PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java17
3 files changed, 73 insertions, 26 deletions
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java b/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
index 0d224cee0..b8b077c99 100644
--- a/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
+++ b/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* PolicyEngineAPI
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@ package org.onap.policy.api;
import java.util.Collection;
import java.util.Map;
+import java.util.Properties;
import java.util.UUID;
import javax.json.JsonObject;
@@ -36,11 +37,20 @@ import org.onap.policy.std.StdPolicyEngine;
* @version 2.0
*/
public class PolicyEngine{
- private String propertyFilePath = null;
private final StdPolicyEngine stdPolicyEngine;
private NotificationScheme scheme = null;
private NotificationHandler handler = null;
+ /**
+ * PolicyEngine Constructor with <code>Properties</code> structure
+ *
+ * @param properties the <code>Properties</code> structure containing the Policy engine parameters
+ * @throws PolicyEngineException PolicyEngine Exception
+ */
+ public PolicyEngine(final Properties properties) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(properties, (String)null);
+ }
+
/**
* PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
*
@@ -48,22 +58,31 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath, (String)null);
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname, (String)null);
}
/**
- * PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
+ * PolicyEngine Constructor with <code>Properties</code> structure
*
- * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname
+ * @param properties the <code>Properties</code> structure containing the Policy engine parameters
* @param clientKey depicts String format of Password/ Client_Key.
* @throws PolicyEngineException PolicyEngine Exception
*/
- public PolicyEngine(final String propertiesFilePathname, final String clientKey) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath, clientKey);
+ public PolicyEngine(final Properties properties, final String clientKey) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(properties, clientKey);
}
+ /**
+ * PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
+ *
+ * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname
+ * @param clientKey depicts String format of Password/ Client_Key.
+ * @throws PolicyEngineException PolicyEngine Exception
+ */
+ public PolicyEngine(final String propertiesFilePathname, final String clientKey) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname, clientKey);
+ }
+
/**
* PolicyEngine Constructor with <code>String</code> format of PropertiesFilePathname and <code>NotificationScheme</code>
*
@@ -72,9 +91,8 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname, final NotificationScheme scheme) throws PolicyEngineException{
- this.propertyFilePath = propertiesFilePathname;
this.scheme = scheme;
- this.stdPolicyEngine = new StdPolicyEngine(this.propertyFilePath, this.scheme);
+ this.stdPolicyEngine = new StdPolicyEngine(propertiesFilePathname, this.scheme);
}
/**
@@ -86,10 +104,9 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname, final NotificationScheme scheme, final NotificationHandler handler) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
this.scheme = scheme;
this.handler = handler;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath,this.scheme,this.handler);
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname,this.scheme,this.handler);
}
/**
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
index 3d3eceead..2349c2e2f 100644
--- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
+++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* PolicyEngineAPI
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -175,6 +175,13 @@ public class StdPolicyEngine {
public StdPolicyEngine(final String propertyFilePath, final String clientKey) throws PolicyEngineException {
setProperty(propertyFilePath, clientKey);
}
+
+ /*
+ * Taking the Property structure even if it null.
+ */
+ public StdPolicyEngine(final Properties properties, final String clientKey) throws PolicyEngineException {
+ setProperty(properties, clientKey);
+ }
/*
* Taking the Notification Constructor.
@@ -840,14 +847,22 @@ public class StdPolicyEngine {
throw new PolicyEngineException(
XACMLErrorConstants.ERROR_DATA_ISSUE + "Error NO PropertyFile Path provided");
}
-
final Properties prop = getProperties(propertyFilePath);
+ setProperty(prop,clientKey);
+ }
+
+ private void setProperty(final Properties properties, String clientKey) throws PolicyEngineException {
+ if (properties == null) {
+ throw new PolicyEngineException(
+ XACMLErrorConstants.ERROR_DATA_ISSUE + "NO properties provided, the value is NULL");
+ }
+
// UEB and DMAAP Settings
- final String notificationTypeValue = prop.getProperty(NOTIFICATION_TYPE_PROP_NAME);
- final String serverList = prop.getProperty(NOTIFICATION_SERVERS_PROP_NAME);
- topic = prop.getProperty(NOTIFICATION_TOPIC_PROP_NAME);
- apiKey = prop.getProperty(UEB_API_KEY_PROP_NAME);
- apiSecret = prop.getProperty(UEB_API_SECRET_PROP_NAME);
+ final String notificationTypeValue = properties.getProperty(NOTIFICATION_TYPE_PROP_NAME);
+ final String serverList = properties.getProperty(NOTIFICATION_SERVERS_PROP_NAME);
+ topic = properties.getProperty(NOTIFICATION_TOPIC_PROP_NAME);
+ apiKey = properties.getProperty(UEB_API_KEY_PROP_NAME);
+ apiSecret = properties.getProperty(UEB_API_SECRET_PROP_NAME);
setNotificationType(notificationTypeValue, DEFAULT_NOTIFICATION);
@@ -867,9 +882,9 @@ public class StdPolicyEngine {
}
// Client ID Authorization Settings.
- final String clientID = prop.getProperty(CLIENT_ID_PROP_NAME);
+ final String clientID = properties.getProperty(CLIENT_ID_PROP_NAME);
if (clientKey == null) {
- clientKey = getClientKeyFromProperties(prop);
+ clientKey = getClientKeyFromProperties(properties);
}
if (clientID == null || clientKey == null || clientID.isEmpty() || clientKey.isEmpty()) {
LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS
@@ -880,12 +895,12 @@ public class StdPolicyEngine {
setClientId(clientID.trim());
setClientKey(clientKey.trim());
}
- setEnvironment(prop);
+ setEnvironment(properties);
// Initializing the values.
init();
- readPdpProperites(prop);
+ readPdpProperites(properties);
// Get JUNIT property from properties file when running tests
- checkJunit(prop);
+ checkJunit(properties);
}
private void readPdpProperites(final Properties prop) throws PolicyEngineException {
diff --git a/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java b/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
index d4c1012cf..1218f1914 100644
--- a/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
+++ b/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
@@ -142,6 +142,16 @@ public class StdPolicyEngineTest {
assertEquals(Arrays.asList(UEB, DMAAP), policyEngine.getNotificationType());
assertEquals(Arrays.asList(SERVER_NAME, SERVER_NAME), policyEngine.getNotificationURLList());
}
+
+ @Test
+ public void testStdPolicyEngineWithPropertiesInitialize_noException() throws Exception {
+ final StdPolicyEngine policyEngine = new StdPolicyEngine(getDefaultProperties(), (String) null);
+ policyEngine.setScheme(NotificationScheme.MANUAL_NOTIFICATIONS);
+ assertEquals("TEST", StdPolicyEngine.getEnvironment());
+ assertEquals("http://localhost:8092/pdp/", StdPolicyEngine.getPDPURL());
+ assertEquals(Arrays.asList(UEB, DMAAP), policyEngine.getNotificationType());
+ assertEquals(Arrays.asList(SERVER_NAME, SERVER_NAME), policyEngine.getNotificationURLList());
+ }
@Test
public void testStdPolicyEngineInitializeWithSingleServerName_noException() throws Exception {
@@ -194,7 +204,12 @@ public class StdPolicyEngineTest {
@Test(expected = PolicyEngineException.class)
public void testStdPolicyEngineInitialize_NullArguments_Exception() throws Exception {
- new StdPolicyEngine(null, (String) null);
+ new StdPolicyEngine((String)null, (String) null);
+ }
+
+ @Test(expected = PolicyEngineException.class)
+ public void testStdPolicyEngineWithPropertiesInitialize_NullArguments_Exception() throws Exception {
+ new StdPolicyEngine((Properties)null, (String) null);
}
@Test(expected = PolicyEngineException.class)