+ private static final Logger LOGGER = FlexLogger.getLogger(MainClient.class);
+
+ /**
+ * main.
+ *
+ * @param args String[] args
+ */
+ public static void main(String[] args) {
+ PolicyEngine policyEngine;
+ try {
+ policyEngine = new PolicyEngine("config.properties");
+ Map<String, String> configAttributes = new HashMap<>();
+ configAttributes.put("java", "java");
+ configAttributes.put("peach", "Tar");
+ configAttributes.put("true", "false");
+ configAttributes.put("small", "testPass");
+ Map<String, String> eventAttributes = new HashMap<>();
+ eventAttributes.put("true", "true");
+ eventAttributes.put("cpu", "91");
+ Map<String, String> decisionAttributes = new HashMap<>();
+ decisionAttributes.put("Key", "Value");
+
+ // Config Example
+ try {
+ @SuppressWarnings("deprecation")
+ Collection<PolicyConfig> policyConfigs = policyEngine.getConfigByPolicyName(".*");
+ if (policyConfigs != null && !policyConfigs.isEmpty()) {
+ for (PolicyConfig policyConfig : policyConfigs) {
+ System.out.println("\nConfig Message: " + policyConfig.getPolicyConfigMessage());
+ System.out.println("Config Status: " + policyConfig.getPolicyConfigStatus());
+ System.out.println("Policy Name: " + policyConfig.getPolicyName());
+ System.out.println("policy Version: " + policyConfig.getPolicyVersion());
+ }
+ }
+ } catch (PolicyConfigException e) {
+ LOGGER.error("Exception Occured" + e);
+ }
+
+ // Manual Notifications..
+ policyEngine.setScheme(NotificationScheme.MANUAL_ALL_NOTIFICATIONS);
+ if (policyEngine.getNotification() != null) {
+ System.out.println(policyEngine.getNotification().getNotificationType());
+ for (LoadedPolicy updated : policyEngine.getNotification().getLoadedPolicies()) {
+ System.out.println(updated.getPolicyName());
+ System.out.println(updated.getVersionNo());
+ System.out.println(updated.getMatches());
+ }
+ for (RemovedPolicy removed : policyEngine.getNotification().getRemovedPolicies()) {
+ System.out.println(removed.getPolicyName());
+ System.out.println(removed.getVersionNo());
+ }
+ }
+ // Auto Notifications..
+ Handler handler = new Handler();
+ policyEngine.setNotification(NotificationScheme.AUTO_ALL_NOTIFICATIONS, handler);
+ //
+ System.out.println("Enter a any key to exit");
+ try {
+ System.in.read();
+ } catch (IOException e) {
+ System.err.println("Exception Occured" + e);
+ }
+
+ } catch (PolicyEngineException e1) {
+ System.err.println("Exception Occured" + e1);
+ }
+ }
+
+ /**
+ * printDocument.
+ *
+ * @param doc Document
+ * @param out OutputStream
+ * @throws IOException IOException
+ * @throws TransformerException TransformerException
+ */
+ public static void printDocument(Document doc, OutputStream out)
+ throws IOException, TransformerException {
+ TransformerFactory tf = TransformerFactory.newInstance();
+ Transformer transformer = tf.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
+
+ transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out, "UTF-8")));
+ }