--- /dev/null
+/*\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