2 * Copyright (c) 2016 Cisco and/or its affiliates.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package io.fd.honeycomb.vpp.distro
19 import com.google.inject.AbstractModule
20 import com.google.inject.Singleton
21 import com.google.inject.multibindings.Multibinder
22 import groovy.util.logging.Slf4j
23 import io.fd.honeycomb.translate.read.ReaderFactory
24 import net.jmob.guice.conf.core.ConfigurationModule
25 import org.openvpp.jvpp.JVppRegistry
26 import org.openvpp.jvpp.core.future.FutureJVppCore
29 public final class VppCommonModule extends AbstractModule {
31 protected void configure() {
32 install(ConfigurationModule.create())
33 // Inject non-dependency configuration
34 requestInjection(VppConfigAttributes)
36 bind(JVppRegistry).toProvider(JVppRegistryProvider).in(Singleton)
37 bind(FutureJVppCore).toProvider(JVppCoreProvider).in(Singleton)
39 // Naming contexts reader exposing context storage over REST/HONEYCOMB_NETCONF
40 Multibinder.newSetBinder(binder(), ReaderFactory.class).with {
41 addBinding().toProvider(ContextsReaderFactoryProvider).in(Singleton)