Hide reader and writer registry builders in registry providers. 56/7056/1
authorMarek Gradzki <mgradzki@cisco.com>
Thu, 8 Jun 2017 12:49:22 +0000 (14:49 +0200)
committerMarek Gradzki <mgradzki@cisco.com>
Thu, 8 Jun 2017 12:57:19 +0000 (14:57 +0200)
Only ReaderRegistry and WriterRegistry instances are needed by other components.

Change-Id: Icc026154e80be4ca9424c79754f342e93fda0735
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.java
infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ModifiableDTDelegProvider.java
infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/config/WriterRegistryProvider.java
infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/oper/ReaderRegistryProvider.java

index 8cc9594..55f9d98 100644 (file)
@@ -24,14 +24,12 @@ import io.fd.honeycomb.data.ReadableDataManager;
 import io.fd.honeycomb.data.init.DataTreeInitializer;
 import io.fd.honeycomb.infra.distro.data.config.WriterRegistryProvider;
 import io.fd.honeycomb.infra.distro.data.oper.ReadableDTDelegProvider;
-import io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryBuilderProvider;
 import io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryProvider;
 import io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider;
 import io.fd.honeycomb.rpc.RpcRegistry;
 import io.fd.honeycomb.rpc.RpcRegistryBuilder;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
 import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
+import io.fd.honeycomb.translate.write.registry.WriterRegistry;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
@@ -46,10 +44,8 @@ public class ConfigAndOperationalPipelineModule extends PrivateModule {
 
     protected void configure() {
         // Expose registries for plugin reader/writer factories
-        bind(ModifiableWriterRegistryBuilder.class).toProvider(WriterRegistryProvider.class).in(Singleton.class);
-        expose(ModifiableWriterRegistryBuilder.class);
-        bind(ModifiableReaderRegistryBuilder.class).toProvider(ReaderRegistryBuilderProvider.class).in(Singleton.class);
-        expose(ModifiableReaderRegistryBuilder.class);
+        bind(WriterRegistry.class).toProvider(WriterRegistryProvider.class).in(Singleton.class);
+        expose(WriterRegistry.class);
         bind(ReaderRegistry.class).toProvider(ReaderRegistryProvider.class).in(Singleton.class);
         expose(ReaderRegistry.class);
 
index 6fd7ac9..b49381a 100644 (file)
@@ -22,8 +22,7 @@ import io.fd.honeycomb.data.ModifiableDataManager;
 import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator;
 import io.fd.honeycomb.infra.distro.ProviderTrait;
 import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-import io.fd.honeycomb.translate.write.registry.WriterRegistryBuilder;
+import io.fd.honeycomb.translate.write.registry.WriterRegistry;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
@@ -39,7 +38,7 @@ public final class ModifiableDTDelegProvider extends ProviderTrait<ModifiableDat
     @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
     private DataTree dataTree;
     @Inject
-    private ModifiableWriterRegistryBuilder registry;
+    private WriterRegistry registry;
     @Inject
     @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
     private DataBroker contextBroker;
@@ -47,6 +46,6 @@ public final class ModifiableDTDelegProvider extends ProviderTrait<ModifiableDat
     @Override
     protected ModifiableDataTreeDelegator create() {
         return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
-                ((WriterRegistryBuilder) registry).build(), contextBroker);
+            registry, contextBroker);
     }
 }
index fa0c298..e368266 100644 (file)
@@ -20,21 +20,21 @@ import com.google.inject.Inject;
 import io.fd.honeycomb.infra.distro.ProviderTrait;
 import io.fd.honeycomb.translate.impl.write.registry.FlatWriterRegistryBuilder;
 import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
+import io.fd.honeycomb.translate.write.registry.WriterRegistry;
 import java.util.HashSet;
 import java.util.Set;
 
-public final class WriterRegistryProvider extends ProviderTrait<ModifiableWriterRegistryBuilder> {
+public final class WriterRegistryProvider extends ProviderTrait<WriterRegistry> {
 
     @Inject(optional = true)
     private Set<WriterFactory> writerFactories = new HashSet<>();
 
     @Override
-    protected FlatWriterRegistryBuilder create() {
+    protected WriterRegistry create() {
         final FlatWriterRegistryBuilder builder = new FlatWriterRegistryBuilder();
         writerFactories
                 .stream()
                 .forEach(it -> it.init(builder));
-        return builder;
+        return builder.build();
     }
 }
index 8370da8..86a5ff8 100644 (file)
@@ -18,18 +18,23 @@ package io.fd.honeycomb.infra.distro.data.oper;
 
 import com.google.inject.Inject;
 import io.fd.honeycomb.infra.distro.ProviderTrait;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
+import io.fd.honeycomb.translate.impl.read.registry.CompositeReaderRegistryBuilder;
+import io.fd.honeycomb.translate.read.ReaderFactory;
 import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistryBuilder;
+import java.util.HashSet;
+import java.util.Set;
 
 public final class ReaderRegistryProvider extends ProviderTrait<ReaderRegistry> {
 
-    @Inject
-    private ModifiableReaderRegistryBuilder readerRegistryBuilder;
+    @Inject(optional = true)
+    private Set<ReaderFactory> readerFactories = new HashSet<>();
 
     @Override
     protected ReaderRegistry create() {
-        return ((ReaderRegistryBuilder) readerRegistryBuilder).build();
+        final CompositeReaderRegistryBuilder builder = new CompositeReaderRegistryBuilder();
+        readerFactories.stream()
+            .forEach(it -> it.init(builder));
+        return builder.build();
     }
 
 }