2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
8 package org.opendaylight.controller.sal.demo;
\r
10 import java.io.BufferedReader;
\r
11 import java.io.IOException;
\r
12 import java.io.InputStreamReader;
\r
14 import org.opendaylight.controller.sal.core.impl.BrokerImpl;
\r
15 import org.opendaylight.controller.sal.core.impl.NotificationModule;
\r
18 import org.slf4j.Logger;
\r
19 import org.slf4j.LoggerFactory;
\r
21 public class SALDemo {
\r
22 protected static final Logger logger = LoggerFactory
\r
23 .getLogger(SALDemo.class);
\r
25 static BrokerImpl broker;
\r
26 static DemoProviderImpl provider;
\r
27 static DemoConsumerImpl consumer1;
\r
28 static DemoConsumerImpl consumer2;
\r
30 public static void main(String[] args) {
\r
33 initializeProvider();
\r
36 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
\r
41 System.out.print("\nEnter your choice (0 - list): ");
\r
43 int choice = Integer.parseInt(s.trim());
\r
53 registerConsumer1();
\r
56 registerConsumer2();
\r
65 unregisterConsumer1();
\r
68 unregisterConsumer2();
\r
71 unregisterProvider();
\r
76 System.out.println("Please enter valid input.");
\r
79 } catch (Exception e) {
\r
81 .println("Operation failed. Reason exception raised: "
\r
82 + e.getClass().getSimpleName());
\r
83 System.out.println(" Message: " + e.getMessage());
\r
87 } catch (IOException e) {
\r
93 private static void registerConsumer1() {
\r
94 broker.registerConsumer(consumer1);
\r
97 private static void registerConsumer2() {
\r
98 broker.registerConsumer(consumer2);
\r
101 private static void sendAlert(BufferedReader in) throws IOException {
\r
102 System.out.print("Please enter notification content:");
\r
103 String content = in.readLine();
\r
104 provider.sendAlertNotification(content);
\r
107 private static void sendChange(BufferedReader in) throws IOException {
\r
108 System.out.print("Please enter notification content:");
\r
109 String content = in.readLine();
\r
110 provider.sendChangeNotification(content);
\r
113 private static void unregisterConsumer1() {
\r
114 consumer1.closeSession();
\r
117 private static void unregisterConsumer2() {
\r
118 consumer2.closeSession();
\r
121 private static void unregisterProvider() {
\r
122 provider.closeSession();
\r
125 private static void displayHelp() {
\r
126 System.out.println("Usage: ");
\r
127 System.out.println(" 0) Display Help");
\r
128 System.out.println(" 1) Register Provider");
\r
129 System.out.println(" 2) Register Consumer 1 (listening on alert)");
\r
131 .println(" 3) Register Consumer 2 (listening on alert,change)");
\r
132 System.out.println(" 4) Send Alert Notification");
\r
133 System.out.println(" 5) Send Change Notification");
\r
134 System.out.println(" 6) Unregister Consumer 1");
\r
135 System.out.println(" 7) Unregister Consumer 2");
\r
136 System.out.println(" 8) Unregister Provider");
\r
137 System.out.println(" 9) Exit");
\r
141 private static void initializeProvider() {
\r
142 provider = new DemoProviderImpl();
\r
145 private static void initialize() {
\r
146 System.out.println("Initializing broker");
\r
147 broker = new BrokerImpl();
\r
148 NotificationModule notifyModule = new NotificationModule();
\r
149 broker.addModule(notifyModule);
\r
151 consumer1 = new DemoConsumerImpl("Consumer 1");
\r
152 consumer2 = new DemoConsumerImpl("Consumer 2");
\r
153 consumer2.setChangeAware(true);
\r
156 private static void registerProvider() {
\r
157 broker.registerProvider(provider);
\r