* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ *
*/
package org.onap.clamp.clds.client.req.policy;
@Component
public class PolicyClient {
+ protected PolicyEngine policyEngine;
protected static final String LOG_POLICY_PREFIX = "Response is ";
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
} else {
policyName = prop.getCurrentPolicyScopeAndFullPolicyName(policyNamePrefix);
}
- logger.info("policyName=" + policyName);
+ logger.info("Search in Policy Engine for policyName=" + policyName);
configRequestParameters.setPolicyName(policyName);
try {
Collection<PolicyConfig> response = getPolicyEngine().getConfig(configRequestParameters);
for (PolicyConfig policyConfig : response) {
- Integer version = Integer.valueOf(policyConfig.getPolicyVersion());
- versions.add(version);
+ if (policyConfig.getPolicyVersion() != null) {
+ Integer version = Integer.valueOf(policyConfig.getPolicyVersion());
+ versions.add(version);
+ } else {
+ logger.warn("Policy version was null, unable to convert it to Integer");
+ }
}
Collections.sort(versions);
logger.info("Policy versions.size()=" + versions.size());
*
* @return A new policy engine
*/
- private PolicyEngine getPolicyEngine() {
- PolicyEngine policyEngine;
+ private synchronized PolicyEngine getPolicyEngine() {
try {
- policyEngine = new PolicyEngine(policyConfiguration.getProperties());
+ if (policyEngine == null) {
+ policyEngine = new PolicyEngine(policyConfiguration.getProperties());
+ }
} catch (PolicyEngineException e) {
throw new PolicyClientException("Exception when creating a new policy engine", e);
}