Only ReaderRegistry and WriterRegistry instances are needed by other components.
Change-Id: Icc026154e80be4ca9424c79754f342e93fda0735
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
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;
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);
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;
@Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
private DataTree dataTree;
@Inject
- private ModifiableWriterRegistryBuilder registry;
+ private WriterRegistry registry;
@Inject
@Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
private DataBroker contextBroker;
@Override
protected ModifiableDataTreeDelegator create() {
return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
- ((WriterRegistryBuilder) registry).build(), contextBroker);
+ registry, contextBroker);
}
}
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();
}
}
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();
}
}