- 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 CheckedFuture<? extends YangTextSchemaSource, SchemaSourceException> getSource(
+ SourceIdentifier sourceIdentifier) {
+ return sourceProvider.getSource(sourceIdentifier);
+ }