Moved MD SAL from sal/yang-prototype to md-sal
[controller.git] / opendaylight / md-sal / sal-dom-demo / src / main / java / org / opendaylight / controller / sal / demo / SALDemo.java
diff --git a/opendaylight/md-sal/sal-dom-demo/src/main/java/org/opendaylight/controller/sal/demo/SALDemo.java b/opendaylight/md-sal/sal-dom-demo/src/main/java/org/opendaylight/controller/sal/demo/SALDemo.java
new file mode 100644 (file)
index 0000000..9e50059
--- /dev/null
@@ -0,0 +1,159 @@
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.sal.demo;\r
+\r
+import java.io.BufferedReader;\r
+import java.io.IOException;\r
+import java.io.InputStreamReader;\r
+\r
+import org.opendaylight.controller.sal.core.impl.BrokerImpl;\r
+import org.opendaylight.controller.sal.core.impl.NotificationModule;\r
+\r
+\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+public class SALDemo {\r
+    protected static final Logger logger = LoggerFactory\r
+        .getLogger(SALDemo.class);\r
+\r
+    static BrokerImpl broker;\r
+    static DemoProviderImpl provider;\r
+    static DemoConsumerImpl consumer1;\r
+    static DemoConsumerImpl consumer2;\r
+\r
+    public static void main(String[] args) {\r
+\r
+        initialize();\r
+        initializeProvider();\r
+        displayHelp();\r
+\r
+        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));\r
+        String s;\r
+        try {\r
+            while (true) {\r
+\r
+                System.out.print("\nEnter your choice (0 - list): ");\r
+                s = in.readLine();\r
+                int choice = Integer.parseInt(s.trim());\r
+                try {\r
+                    switch (choice) {\r
+                    case 0:\r
+                        displayHelp();\r
+                        break;\r
+                    case 1:\r
+                        registerProvider();\r
+                        break;\r
+                    case 2:\r
+                        registerConsumer1();\r
+                        break;\r
+                    case 3:\r
+                        registerConsumer2();\r
+                        break;\r
+                    case 4:\r
+                        sendAlert(in);\r
+                        break;\r
+                    case 5:\r
+                        sendChange(in);\r
+                        break;\r
+                    case 6:\r
+                        unregisterConsumer1();\r
+                        break;\r
+                    case 7:\r
+                        unregisterConsumer2();\r
+                        break;\r
+                    case 8:\r
+                        unregisterProvider();\r
+                        break;\r
+                    case 9:\r
+                        return;\r
+                    default:\r
+                        System.out.println("Please enter valid input.");\r
+                        break;\r
+                    }\r
+                } catch (Exception e) {\r
+                    System.out\r
+                            .println("Operation failed. Reason exception raised: "\r
+                                    + e.getClass().getSimpleName());\r
+                    System.out.println("   Message: " + e.getMessage());\r
+                }\r
+\r
+            }\r
+        } catch (IOException e) {\r
+\r
+            logger.error("",e);\r
+        }\r
+    }\r
+\r
+    private static void registerConsumer1() {\r
+        broker.registerConsumer(consumer1);\r
+    }\r
+\r
+    private static void registerConsumer2() {\r
+        broker.registerConsumer(consumer2);\r
+    }\r
+\r
+    private static void sendAlert(BufferedReader in) throws IOException {\r
+        System.out.print("Please enter notification content:");\r
+        String content = in.readLine();\r
+        provider.sendAlertNotification(content);\r
+    }\r
+\r
+    private static void sendChange(BufferedReader in) throws IOException {\r
+        System.out.print("Please enter notification content:");\r
+        String content = in.readLine();\r
+        provider.sendChangeNotification(content);\r
+    }\r
+\r
+    private static void unregisterConsumer1() {\r
+        consumer1.closeSession();\r
+    }\r
+\r
+    private static void unregisterConsumer2() {\r
+        consumer2.closeSession();\r
+    }\r
+\r
+    private static void unregisterProvider() {\r
+        provider.closeSession();\r
+    }\r
+\r
+    private static void displayHelp() {\r
+        System.out.println("Usage: ");\r
+        System.out.println("  0) Display Help");\r
+        System.out.println("  1) Register Provider");\r
+        System.out.println("  2) Register Consumer 1 (listening on alert)");\r
+        System.out\r
+                .println("  3) Register Consumer 2 (listening on alert,change)");\r
+        System.out.println("  4) Send Alert Notification");\r
+        System.out.println("  5) Send Change Notification");\r
+        System.out.println("  6) Unregister Consumer 1");\r
+        System.out.println("  7) Unregister Consumer 2");\r
+        System.out.println("  8) Unregister Provider");\r
+        System.out.println("  9) Exit");\r
+\r
+    }\r
+\r
+    private static void initializeProvider() {\r
+        provider = new DemoProviderImpl();\r
+    }\r
+\r
+    private static void initialize() {\r
+        System.out.println("Initializing broker");\r
+        broker = new BrokerImpl();\r
+        NotificationModule notifyModule = new NotificationModule();\r
+        broker.addModule(notifyModule);\r
+\r
+        consumer1 = new DemoConsumerImpl("Consumer 1");\r
+        consumer2 = new DemoConsumerImpl("Consumer 2");\r
+        consumer2.setChangeAware(true);\r
+    }\r
+\r
+    private static void registerProvider() {\r
+        broker.registerProvider(provider);\r
+    }\r
+}\r