Merge "Prevent ConfigPusher from killing its thread"
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / config / yang / md / sal / dom / impl / DomBrokerImplModule.java
index 9a4fc6ddc1f303ba8521667a0604036d592bb74e..f4d642f82d1e9cf54bd5c89c71f8640dab7bf148 100644 (file)
@@ -1,19 +1,20 @@
-/**
-* Generated file
-
-* Generated from: yang module name: opendaylight-sal-dom-broker-impl  yang module local name: dom-broker-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Wed Nov 20 17:04:41 CET 2013
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 package org.opendaylight.controller.config.yang.md.sal.dom.impl;
 
+import org.opendaylight.controller.config.yang.md.sal.dom.statistics.DomBrokerRuntimeMXBeanImpl;
 import org.opendaylight.controller.sal.core.api.data.DataStore;
 import org.opendaylight.controller.sal.dom.broker.BrokerConfigActivator;
 import org.opendaylight.controller.sal.dom.broker.BrokerImpl;
 import org.osgi.framework.BundleContext;
 
+import static com.google.common.base.Preconditions.*;
+
 /**
 *
 */
@@ -33,15 +34,18 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
     @Override
     public void validate(){
         super.validate();
-        // Add custom validation for module attributes here.
+        checkArgument(getDataStore() != null, "Data Store needs to be provided for DomBroker");
     }
-
+    
     @Override
     public java.lang.AutoCloseable createInstance() {
-        BrokerImpl broker = new BrokerImpl();
-        BrokerConfigActivator activator = new BrokerConfigActivator();
-        DataStore store = getDataStoreDependency();
-        activator.start(broker, store,getBundleContext());
+        final BrokerImpl broker = new BrokerImpl();
+        final BrokerConfigActivator activator = new BrokerConfigActivator();
+        final DataStore store = getDataStoreDependency();
+        activator.start(broker, store, getBundleContext());
+        
+        final DomBrokerImplRuntimeMXBean domBrokerRuntimeMXBean = new DomBrokerRuntimeMXBeanImpl(activator.getDataService());
+        getRootRuntimeBeanRegistratorWrapper().register(domBrokerRuntimeMXBean);
         return broker;
     }