Fix checkstyle violations in sal-dom-broker-config and sal-binding-config
[controller.git] / opendaylight / md-sal / sal-dom-broker-config / src / main / java / org / opendaylight / controller / config / yang / md / sal / dom / impl / SchemaServiceImplSingletonModule.java
index fb4043053beb72443db5a056b52e736d58c8727e..e5d1e514df3d2f01d21a3ac9cb87bc9a8ff476df 100644 (file)
@@ -7,16 +7,14 @@
  */
 package org.opendaylight.controller.config.yang.md.sal.dom.impl;
 
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.ListenableFuture;
+import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
 import org.opendaylight.controller.sal.core.api.model.YangTextSourceProvider;
-import org.opendaylight.controller.sal.dom.broker.GlobalBundleScanningSchemaServiceImpl;
-import org.opendaylight.yangtools.concepts.Delegator;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
 import org.osgi.framework.BundleContext;
@@ -24,11 +22,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * Deprecated.
+ *
  * @deprecated Replaced by blueprint wiring
  */
 @Deprecated
-public final class SchemaServiceImplSingletonModule extends
-org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractSchemaServiceImplSingletonModule {
+public final class SchemaServiceImplSingletonModule extends AbstractSchemaServiceImplSingletonModule {
 
     private static final Logger LOG = LoggerFactory.getLogger(SchemaServiceImplSingletonModule.class);
 
@@ -64,57 +63,56 @@ org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractSchemaServiceImp
     }
 
     @Override
-    public java.lang.AutoCloseable createInstance() {
-        return new GlobalSchemaServiceProxy(GlobalBundleScanningSchemaServiceImpl.getInstance());
-    }
-
-    private static class GlobalSchemaServiceProxy implements AutoCloseable, SchemaService, YangTextSourceProvider,
-            Delegator<SchemaService> {
-        private final GlobalBundleScanningSchemaServiceImpl delegate;
-
-        public GlobalSchemaServiceProxy(GlobalBundleScanningSchemaServiceImpl service) {
-            this.delegate = service;
-        }
-
-        @Override
-        public void close() {
-            // Intentional noop as the life-cycle is controlled via blueprint.
-        }
-
-        @Override
-        public void addModule(final Module arg0) {
-            delegate.addModule(arg0);
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return delegate.getGlobalContext();
+    public AutoCloseable createInstance() {
+        final WaitingServiceTracker<SchemaService> schemaServiceTracker =
+                WaitingServiceTracker.create(SchemaService.class, bundleContext);
+        final SchemaService schemaService = schemaServiceTracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
+
+        final WaitingServiceTracker<YangTextSourceProvider> sourceProviderTracker =
+                WaitingServiceTracker.create(YangTextSourceProvider.class, bundleContext);
+        final YangTextSourceProvider sourceProvider =
+                sourceProviderTracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
+
+        class GlobalSchemaServiceProxy implements AutoCloseable, SchemaService, YangTextSourceProvider {
+            @Override
+            public void close() {
+                schemaServiceTracker.close();
+                sourceProviderTracker.close();
+            }
+
+            @Override
+            public void addModule(final Module arg0) {
+                schemaService.addModule(arg0);
+            }
+
+            @Override
+            public SchemaContext getGlobalContext() {
+                return schemaService.getGlobalContext();
+            }
+
+            @Override
+            public SchemaContext getSessionContext() {
+                return schemaService.getSessionContext();
+            }
+
+            @Override
+            public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
+                    final SchemaContextListener arg0) {
+                return schemaService.registerSchemaContextListener(arg0);
+            }
+
+            @Override
+            public void removeModule(final Module arg0) {
+                schemaService.removeModule(arg0);
+            }
+
+            @Override
+            public ListenableFuture<? extends YangTextSchemaSource> getSource(
+                    final SourceIdentifier sourceIdentifier) {
+                return sourceProvider.getSource(sourceIdentifier);
+            }
         }
 
-        @Override
-        public SchemaContext getSessionContext() {
-            return delegate.getSessionContext();
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(final SchemaContextListener arg0) {
-            return delegate.registerSchemaContextListener(arg0);
-        }
-
-        @Override
-        public void removeModule(final Module arg0) {
-            delegate.removeModule(arg0);
-        }
-
-        @Override
-        public SchemaService getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        public CheckedFuture<? extends YangTextSchemaSource, SchemaSourceException> getSource(
-                SourceIdentifier sourceIdentifier) {
-            return delegate.getSource(sourceIdentifier);
-        }
+        return new GlobalSchemaServiceProxy();
     }
 }