summaryrefslogtreecommitdiffstats
path: root/infra/northbound/restconf
diff options
context:
space:
mode:
Diffstat (limited to 'infra/northbound/restconf')
-rw-r--r--infra/northbound/restconf/pom.xml1
-rw-r--r--infra/northbound/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java35
2 files changed, 29 insertions, 7 deletions
diff --git a/infra/northbound/restconf/pom.xml b/infra/northbound/restconf/pom.xml
index f5753d00c..ecff57459 100644
--- a/infra/northbound/restconf/pom.xml
+++ b/infra/northbound/restconf/pom.xml
@@ -54,7 +54,6 @@
<artifactId>binding-init</artifactId>
<version>${project.version}</version>
</dependency>
-
<dependency>
<groupId>io.fd.honeycomb</groupId>
<artifactId>minimal-distribution-core</artifactId>
diff --git a/infra/northbound/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java b/infra/northbound/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java
index d519a931d..ff338f1d9 100644
--- a/infra/northbound/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java
+++ b/infra/northbound/restconf/src/main/java/io/fd/honeycomb/northbound/restconf/RestconfProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
+ * Copyright (c) 2016, 2017 Cisco and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,15 @@
package io.fd.honeycomb.northbound.restconf;
import com.google.inject.Inject;
+import com.google.inject.name.Named;
import io.fd.honeycomb.binding.init.ProviderTrait;
-import org.opendaylight.controller.sal.core.api.Broker;
+import io.fd.honeycomb.data.init.ShutdownHandler;
+import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule;
+import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
+import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
+import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
+import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter;
+import org.opendaylight.controller.sal.core.api.model.SchemaService;
import org.opendaylight.netconf.sal.rest.api.RestConnector;
import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
@@ -28,13 +35,29 @@ final class RestconfProvider extends ProviderTrait<RestConnector> {
@Inject
private RestconfConfiguration cfg;
@Inject
- private Broker domBroker;
+ @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
+ private DOMDataBroker domDataBroker;
+ @Inject
+ private SchemaService schemaService;
+ @Inject
+ private DOMRpcService rpcService;
+ @Inject
+ private DOMNotificationRouter notificationService;
+ @Inject
+ private ShutdownHandler shutdownHandler;
+ @Inject
+ private DOMMountPointService mountPointService;
@Override
protected RestconfProviderImpl create() {
- RestconfProviderImpl instance = new RestconfProviderImpl();
- instance.setWebsocketPort(new PortNumber(cfg.restconfWebsocketPort.get()));
- domBroker.registerProvider(instance);
+ final RestconfProviderImpl instance = new RestconfProviderImpl(domDataBroker, schemaService, rpcService,
+ notificationService, mountPointService, new PortNumber(cfg.restconfWebsocketPort.get()));
+
+ // Required to properly initialize restconf (broker, schema ctx, etc.).
+ // Without that restconf would fail with 503 (service not available).
+ instance.start();
+
+ shutdownHandler.register(instance.getClass().getCanonicalName(), instance);
return instance;
}
}