Index: C:/Naidu/Projects/eclipse/policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/external/InternalClient.java =================================================================== --- C:/Naidu/Projects/eclipse/policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/external/InternalClient.java (revision 656122) +++ C:/Naidu/Projects/eclipse/policy_workspace/apache/imperius-splcore/src/main/java/org/apache/imperius/spl/external/InternalClient.java (working copy) @@ -26,7 +26,6 @@ package org.apache.imperius.spl.external; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -35,13 +34,10 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.imperius.spl.external.*; import org.apache.imperius.spl.manager.PolicyManager; import org.apache.imperius.spl.parser.exceptions.SPLException; import org.apache.imperius.spl.parser.statements.impl.PolicyInfo; import org.apache.imperius.spl.parser.util.DataCollectorFactory; -import org.apache.imperius.spl.parser.util.TypeInfo; -//import org.pegasus.jmpi.CIMObjectPath; import org.apache.imperius.util.SPLLogger; public class InternalClient @@ -62,6 +58,45 @@ private static final String sourceClass="InternalClient"; + public int invokePolicy(String policyName, Map instanceMap) + { + int returnValue = 0; + logger.entering(sourceClass,Thread.currentThread().getName()+" "+"InvokePolicy"); + try + { + PolicyInfo policyInfo = pm.getPolicyInfo(policyName); + if(policyInfo == null) + { + throw new SPLException("policy with this name "+policyName+" is not found in repository"); + } + + if(instanceMap != null && instanceMap.size() > 0) + { + Integer retVal = (Integer) pm.evaluatePolicy(policyName,instanceMap); + if (logger.isLoggable(Level.FINE)) + logger.fine(Thread.currentThread().getName()+" return value is = "+retVal); + logger.exiting(sourceClass,Thread.currentThread().getName()+" "+"invokePolicy"); + + if (retVal.intValue() == POLICY_EVALUATION_FAILED) + { + logger.severe("POLICY_EVALUATION_FAILED "+policyName+" "+retVal); + returnValue++; + } + if(logger.isLoggable(Level.FINE)) + logger.fine(Thread.currentThread().getName()+" Internal client return value="+returnValue); + } + return 0; + } + catch(SPLException e) + { + logger.severe(e.getMessage()); + } + logger.exiting(sourceClass,Thread.currentThread().getName()+" "+"InvokeMethod"); + if(logger.isLoggable(Level.FINE)) + logger.fine(Thread.currentThread().getName()+" Internal client return value is -1"); + + return -1; + } public int invokePolicy(String policyName, List paramList, boolean boo) {