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
9 package org.opendaylight.controller.config.yang.config.groupbasedpolicy;
11 import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
12 import org.opendaylight.groupbasedpolicy.api.DomainSpecificRegistry;
13 import org.opendaylight.groupbasedpolicy.api.EndpointAugmentorRegistry;
14 import org.opendaylight.groupbasedpolicy.api.NetworkDomainAugmentorRegistry;
15 import org.osgi.framework.BundleContext;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
19 public class DomainSpecificRegistryModule extends org.opendaylight.controller.config.yang.config.groupbasedpolicy.AbstractDomainSpecificRegistryModule {
21 private static final Logger LOG = LoggerFactory.getLogger(DomainSpecificRegistryModule.class);
22 private BundleContext bundleContext;
24 public DomainSpecificRegistryModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
25 super(identifier, dependencyResolver);
28 public DomainSpecificRegistryModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.groupbasedpolicy.DomainSpecificRegistryModule oldModule, java.lang.AutoCloseable oldInstance) {
29 super(identifier, dependencyResolver, oldModule, oldInstance);
33 public void customValidation() {
34 // add custom validation form module attributes here.
38 public java.lang.AutoCloseable createInstance() {
39 final WaitingServiceTracker<DomainSpecificRegistry> tracker = WaitingServiceTracker.create(
40 DomainSpecificRegistry.class, bundleContext);
41 final DomainSpecificRegistry service = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
43 final class Instance implements DomainSpecificRegistry, AutoCloseable {
50 public EndpointAugmentorRegistry getEndpointAugmentorRegistry() {
51 return service.getEndpointAugmentorRegistry();
55 public NetworkDomainAugmentorRegistry getNetworkDomainAugmentorRegistry() {
56 return service.getNetworkDomainAugmentorRegistry();
60 return new Instance();
63 void setBundleContext(BundleContext bundleContext) {
64 this.bundleContext = bundleContext;