2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight;
10 import org.opendaylight.controller.config.yang.md.sal.rest.connector.RestConnectorRuntimeRegistration;
11 import org.opendaylight.controller.config.yang.md.sal.rest.connector.RestConnectorRuntimeRegistrator;
12 import org.opendaylight.controller.sal.core.api.Broker;
13 import org.opendaylight.netconf.sal.rest.api.RestConnector;
14 import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl;
15 import org.opendaylight.restconf.RestConnectorProvider;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
19 * Wrapping providers from restconf draft02 and draft15.
22 public class RestconfWrapperProviders implements AutoCloseable, RestConnector {
25 private final RestconfProviderImpl providerDraft02;
27 private final RestConnectorProvider providerDraft15;
30 * Init both providers:
32 * <li>draft02 - {@link RestconfProviderImpl}
33 * <li>draft15 - {@link RestConnectorProvider}
37 * - port for web sockets in provider for draft02
39 public RestconfWrapperProviders(final PortNumber port) {
40 // Init draft02 provider
41 this.providerDraft02 = new RestconfProviderImpl();
42 this.providerDraft02.setWebsocketPort(port);
44 this.providerDraft15 = new RestConnectorProvider();
48 * Register both providers, which will use the SAL layer:
50 * <li>draft02 - {@link RestconfProviderImpl}
51 * <li>draft15 - {@link RestConnectorProvider}
57 public void registerProviders(final Broker broker) {
58 // Register draft02 provider
59 broker.registerProvider(this.providerDraft02);
61 // Register draft15 provider
62 broker.registerProvider(this.providerDraft15);
66 * Register runtime beans from restconf draft02 {@link RestconfProviderImpl}
68 * @param runtimeRegistration
69 * - for register runtime beans
70 * @return {@link RestConnectorRuntimeRegistration}
72 public RestConnectorRuntimeRegistration runtimeRegistration(
73 final RestConnectorRuntimeRegistrator runtimeRegistration) {
74 return runtimeRegistration.register(this.providerDraft02);
78 public void close() throws Exception {
79 this.providerDraft02.close();
80 this.providerDraft15.close();