summaryrefslogtreecommitdiffstats
path: root/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer
diff options
context:
space:
mode:
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer')
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java48
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java101
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java54
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java50
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java78
5 files changed, 0 insertions, 331 deletions
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java
deleted file mode 100644
index e0c38f38b..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.PrivateModule;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
-import io.fd.honeycomb.data.ModifiableDataManager;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider;
-import io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-
-public final class InitializerPipelineModule extends PrivateModule {
-
- public static final String HONEYCOMB_INITIALIZER = "honeycomb-initializer";
-
- protected void configure() {
- // Create data tree manager on top of non-persisting config data tree
- bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegInitProvider.class).in(Singleton.class);
- // Wrap as DOMDataBroker
- bind(DOMDataBroker.class).toProvider(HoneycombDOMDataBrokerProvider.class).in(Singleton.class);
- // Wrap as BA data broker
- bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
- .toProvider(BindingDataBrokerProvider.class).in(Singleton.class);
- expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
-
- // Create initializer registry so that plugins can provide their initializers
- bind(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER))
- .toProvider(InitializerRegistryAdapterProvider.class).in(Singleton.class);
- expose(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER));
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java
deleted file mode 100644
index 85fb7772c..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.ModificationCache;
-import io.fd.honeycomb.translate.read.ReadContext;
-import io.fd.honeycomb.translate.read.registry.InitRegistry;
-import javax.annotation.Nonnull;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class InitializerRegistryAdapter implements InitializerRegistry {
-
- private static final Logger LOG = LoggerFactory.getLogger(InitializerRegistryAdapter.class);
-
- private final DataTreeInitializer configInitializer;
- private final DataTreeInitializer contextInitializer;
- private final InitRegistry initRegistry;
- private final DataBroker dataBroker;
- private final MappingContext realtimeMappingContext;
-
- InitializerRegistryAdapter(final DataTreeInitializer configInitializer,
- final DataTreeInitializer contextInitializer,
- final InitRegistry initRegistry,
- final DataBroker noopConfigDataBroker,
- final MappingContext realtimeMappingContext) {
- this.configInitializer = configInitializer;
- this.contextInitializer = contextInitializer;
- this.initRegistry = initRegistry;
- this.dataBroker = noopConfigDataBroker;
- this.realtimeMappingContext = realtimeMappingContext;
- }
-
- @Override
- public void initialize() throws DataTreeInitializer.InitializeException {
- LOG.info("Config initialization started");
-
- try {
- // Initialize contexts first so that other initializers can find any relevant mapping before initializing
- // configuration to what is already in VPP
- contextInitializer.initialize();
- LOG.info("Persisted context restored successfully");
- // Initialize all registered initializers
- initRegistry.initAll(dataBroker, new InitReadContext(realtimeMappingContext));
- LOG.info("Configuration initialized successfully");
- // Initialize stored configuration on top
- configInitializer.initialize();
- LOG.info("Persisted configuration restored successfully");
- } catch (Exception e) {
- LOG.warn("Failed to initialize config", e);
- }
-
- LOG.info("Honeycomb initialized");
- }
-
- private static final class InitReadContext implements ReadContext {
-
- private final ModificationCache modificationCache;
- private final MappingContext realtimeMappingContext;
-
- InitReadContext(final MappingContext realtimeMappingContext) {
- modificationCache = new ModificationCache();
- this.realtimeMappingContext = realtimeMappingContext;
- }
-
- @Nonnull
- @Override
- public ModificationCache getModificationCache() {
- return modificationCache;
- }
-
- @Nonnull
- @Override
- public MappingContext getMappingContext() {
- return realtimeMappingContext;
- }
-
- @Override
- public void close() {
- modificationCache.close();
- }
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java
deleted file mode 100644
index f66284b19..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import static io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule.HONEYCOMB_CONTEXT;
-import static io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule.HONEYCOMB_INITIALIZER;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.data.init.InitializerRegistry;
-import io.fd.honeycomb.infra.distro.ProviderTrait;
-import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule;
-import io.fd.honeycomb.translate.MappingContext;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-
-public final class InitializerRegistryAdapterProvider extends ProviderTrait<InitializerRegistry> {
-
- @Inject
- @Named(HONEYCOMB_CONTEXT)
- private DataTreeInitializer contextInitializer;
- @Inject
- @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG)
- private DataTreeInitializer configInitializer;
- @Inject
- private ReaderRegistry initRegistry;
- @Inject
- @Named(HONEYCOMB_INITIALIZER)
- private DataBroker noopConfigDataBroker;
- @Inject
- @Named(HONEYCOMB_CONTEXT)
- private MappingContext realtimeMappingContext;
-
- @Override
- protected InitializerRegistryAdapter create() {
- return new InitializerRegistryAdapter(configInitializer, contextInitializer, initRegistry,
- noopConfigDataBroker, realtimeMappingContext);
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java
deleted file mode 100644
index 3579ff11d..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-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.ConfigAndOperationalPipelineModule;
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
-import io.fd.honeycomb.translate.util.write.NoopWriterRegistry;
-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;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
-
-public final class ModifiableDTDelegInitProvider extends ProviderTrait<ModifiableDataManager> {
-
- @Inject
- private BindingToNormalizedNodeCodec serializer;
- @Inject
- @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST)
- private DataTree dataTree;
- @Inject
- @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
- private DataBroker contextBroker;
- @Inject
- private SchemaService schemaService;
-
- @Override
- public ModifiableDataTreeDelegator create() {
- return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(),
- new NoopWriterRegistry(), contextBroker);
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java
deleted file mode 100644
index 58d63cfb3..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.fd.honeycomb.infra.distro.initializer;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.data.init.RestoringInitializer;
-import io.fd.honeycomb.infra.distro.ProviderTrait;
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
-import java.nio.file.Paths;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.opendaylight.controller.sal.core.api.model.SchemaService;
-
-public abstract class PersistedFileInitializerProvider extends ProviderTrait<RestoringInitializer> {
-
- @Inject
- private SchemaService schemaService;
- @Inject
- protected HoneycombConfiguration cfgAttributes;
- @Inject
- private DOMDataBroker domDataBroker;
-
- @Override
- public RestoringInitializer create() {
- return new RestoringInitializer(schemaService, Paths.get(getPersistPath()), domDataBroker,
- RestoringInitializer.RestorationType.valueOf(getRestorationType()), getDataStoreType());
- }
-
- public abstract String getPersistPath();
-
- public abstract LogicalDatastoreType getDataStoreType();
-
- public abstract String getRestorationType();
-
- public static class PersistedContextInitializerProvider extends PersistedFileInitializerProvider {
- public String getPersistPath() {
- return cfgAttributes.peristContextPath;
- }
-
- public LogicalDatastoreType getDataStoreType() {
- return LogicalDatastoreType.OPERATIONAL;
- }
-
- public String getRestorationType() {
- return cfgAttributes.persistedContextRestorationType;
- }
-
- }
-
- public static class PersistedConfigInitializerProvider extends PersistedFileInitializerProvider {
- public String getPersistPath() {
- return cfgAttributes.peristConfigPath;
- }
-
- public LogicalDatastoreType getDataStoreType() {
- return LogicalDatastoreType.CONFIGURATION;
- }
-
- public String getRestorationType() {
- return cfgAttributes.persistedConfigRestorationType;
- }
-
- }
-}