diff options
author | Jan Srnicek <jsrnicek@cisco.com> | 2016-10-13 13:56:47 +0200 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-10-13 13:28:56 +0000 |
commit | 6c3f614edb18bdb8cc6e7b87627f240d97a258c3 (patch) | |
tree | 52b9e116e7984d72a94ddee1c4b70b363e05c6ac /infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java | |
parent | 9d69639d39bd55628cadc445e816fcccf23c1361 (diff) |
HONEYCOMB-207 : Configurable modules list for distributions
Export list of modules for built distribution on compile time according
to distribution.modules property to ***module-config.txt
Load aggregated set of modules on start from all descriptors in /modules
folder
Change-Id: Icdeb23536aee3a243a221d3f2ec5f340d387764e
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java')
-rw-r--r-- | infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java index d3a562d3a..3c62382c2 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java @@ -16,8 +16,11 @@ package io.fd.honeycomb.infra.distro; +import static io.fd.honeycomb.infra.distro.ActiveModuleProvider.STANDARD_MODULES_RELATIVE_PATH; +import static io.fd.honeycomb.infra.distro.ActiveModuleProvider.aggregateResources; +import static io.fd.honeycomb.infra.distro.ActiveModuleProvider.loadActiveModules; + import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; import com.google.inject.ConfigurationException; import com.google.inject.CreationException; import com.google.inject.Guice; @@ -28,20 +31,14 @@ import com.google.inject.ProvisionException; import com.google.inject.name.Names; import io.fd.honeycomb.data.init.DataTreeInitializer; import io.fd.honeycomb.data.init.InitializerRegistry; -import io.fd.honeycomb.infra.distro.cfgattrs.CfgAttrsModule; import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration; -import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule; -import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule; import io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule; import io.fd.honeycomb.infra.distro.netconf.HoneycombNotification2NetconfProvider; import io.fd.honeycomb.infra.distro.netconf.NetconfModule; -import io.fd.honeycomb.infra.distro.netconf.NetconfReadersModule; import io.fd.honeycomb.infra.distro.netconf.NetconfSshServerProvider; import io.fd.honeycomb.infra.distro.netconf.NetconfTcpServerProvider; import io.fd.honeycomb.infra.distro.restconf.RestconfModule; -import io.fd.honeycomb.infra.distro.schema.SchemaModule; -import io.fd.honeycomb.infra.distro.schema.YangBindingProviderModule; -import java.util.List; +import java.util.Set; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; @@ -53,29 +50,18 @@ public final class Main { private static final Logger LOG = LoggerFactory.getLogger(Main.class); - public static final List<Module> BASE_MODULES = ImmutableList.of( - // Infra - new YangBindingProviderModule(), - new SchemaModule(), - new ConfigAndOperationalPipelineModule(), - new ContextPipelineModule(), - new InitializerPipelineModule(), - new NetconfModule(), - new NetconfReadersModule(), - new RestconfModule(), - // Json config attributes - new CfgAttrsModule()); - - private Main() {} + private Main() { + } public static void main(String[] args) { - init(BASE_MODULES); + final ClassLoader classLoader = Main.class.getClassLoader(); + init(loadActiveModules(aggregateResources(STANDARD_MODULES_RELATIVE_PATH, classLoader))); } /** - * Initialize the Honeycomb infrastructure + all wired plugins. + * Initialize the Honeycomb with provided modules */ - public static Injector init(final List<? extends Module> modules) { + public static Injector init(final Set<? extends Module> modules) { try { LOG.info("Starting honeycomb"); Injector injector = Guice.createInjector(modules); |