From b65cd89989ead7082089bf6f333e56b03f619606 Mon Sep 17 00:00:00 2001 From: Jan Srnicek Date: Thu, 13 Jul 2017 20:21:01 +0200 Subject: HONEYCOMB-360 - Restconf Northbound Intefaces provider separation - Restconf configuration included under restconf.json Change-Id: I45f503d3ef383bd6e3d356308d3212c7314b7a28 Signed-off-by: Jan Srnicek --- .../benchmark/memory/MemoryFootprintBenchmark.java | 33 ++---------------- .../memory/config/StaticActivationConfig.java | 33 ++++++++++++++++++ .../memory/config/StaticActivationModule.java | 39 ++++++++++++++++++++++ .../config/StaticHoneycombConfiguration.java | 22 ------------ 4 files changed, 74 insertions(+), 53 deletions(-) create mode 100644 infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationConfig.java create mode 100644 infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationModule.java (limited to 'infra/it/memory-benchmark/src/main/java') diff --git a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/MemoryFootprintBenchmark.java b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/MemoryFootprintBenchmark.java index a51819a7c..ea83359c5 100644 --- a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/MemoryFootprintBenchmark.java +++ b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/MemoryFootprintBenchmark.java @@ -18,20 +18,10 @@ package io.fd.honeycomb.benchmark.memory; import com.google.common.collect.ImmutableSet; import com.google.inject.Injector; -import com.google.inject.Module; import io.fd.honeycomb.benchmark.memory.config.BindableCfgAttrsModule; -import io.fd.honeycomb.benchmark.memory.config.StaticHoneycombManagementModule; -import io.fd.honeycomb.benchmark.memory.write.NoopWritersModule; +import io.fd.honeycomb.benchmark.memory.config.StaticActivationModule; import io.fd.honeycomb.infra.distro.Main; 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.NetconfModule; -import io.fd.honeycomb.infra.distro.netconf.NetconfReadersModule; -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 io.fd.honeycomb.management.jmx.JMXBeanProvider; import org.eclipse.jetty.server.Server; import org.slf4j.Logger; @@ -50,23 +40,6 @@ public class MemoryFootprintBenchmark implements JMXBeanProvider, BenchmarkFiles private static final Logger LOG = LoggerFactory.getLogger(MemoryFootprintBenchmark.class); - /** - * All modules from infra to load.Not static to not persist state - */ - private final Set BASE_MODULES = ImmutableSet.of( - new YangBindingProviderModule(), - new SchemaModule(), - new ConfigAndOperationalPipelineModule(), - new ContextPipelineModule(), - new InitializerPipelineModule(), - new NetconfModule(), - new NetconfReadersModule(), - new RestconfModule(), - // to enable jmx - new StaticHoneycombManagementModule(), - //adds noop writers - new NoopWritersModule()); - // configuration class used to run benchmark, allows us to switch between honeycomb with data, or on rest private final HoneycombConfiguration configuration; @@ -94,9 +67,7 @@ public class MemoryFootprintBenchmark implements JMXBeanProvider, BenchmarkFiles */ private Injector startHoneycomb() { LOG.info("Starting embedded server with configuration {}", configuration); - return Main.init(ImmutableSet.builder() - .add(new BindableCfgAttrsModule(configuration)) - .addAll(BASE_MODULES).build()); + return Main.init(new StaticActivationModule(new BindableCfgAttrsModule(configuration))); } /** diff --git a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationConfig.java b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationConfig.java new file mode 100644 index 000000000..3a8ec31b6 --- /dev/null +++ b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationConfig.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2017 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.benchmark.memory.config; + +import io.fd.honeycomb.infra.distro.activation.ActivationConfig; + +// TODO HONEYCOMB-383 - Use config files +// Used to directly point to resource files +public class StaticActivationConfig extends ActivationConfig { + + @Override + public String getModulesResourcePath() { + return "static-modules"; + } + + @Override + public String getYangModulesIndexPath() { + return "static-yang-index"; + } +} diff --git a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationModule.java b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationModule.java new file mode 100644 index 000000000..a849c7ce0 --- /dev/null +++ b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticActivationModule.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2017 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.benchmark.memory.config; + +import io.fd.honeycomb.infra.distro.activation.ActivationConfig; +import io.fd.honeycomb.infra.distro.activation.ActivationModule; +import io.fd.honeycomb.infra.distro.activation.ActiveModuleProvider; +import io.fd.honeycomb.infra.distro.activation.ActiveModules; + +// TODO HONEYCOMB-383 - Use config files +// Used to bind static configuration to DI +public class StaticActivationModule extends ActivationModule { + + private BindableCfgAttrsModule cfgAttrsModule; + + public StaticActivationModule(final BindableCfgAttrsModule cfgAttrsModule) { + this.cfgAttrsModule = cfgAttrsModule; + } + + @Override + protected void configure() { + install(cfgAttrsModule); + bind(ActivationConfig.class).toInstance(new StaticActivationConfig()); + bind(ActiveModules.class).toProvider(ActiveModuleProvider.class).asEagerSingleton(); + } +} diff --git a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticHoneycombConfiguration.java b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticHoneycombConfiguration.java index 6bcf7ef68..03aac84b5 100644 --- a/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticHoneycombConfiguration.java +++ b/infra/it/memory-benchmark/src/main/java/io/fd/honeycomb/benchmark/memory/config/StaticHoneycombConfiguration.java @@ -22,7 +22,6 @@ import java.io.Closeable; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.Optional; /** * Static configuration to prevent injecting of properties from json fles @@ -33,15 +32,9 @@ public class StaticHoneycombConfiguration extends HoneycombConfiguration impleme this.peristConfigPath = persistConfigPath; this.peristContextPath = persistContextPath; - this.username = "admin"; - this.password = "admin"; this.notificationServiceQueueDepth = 1; - this.restconfBindingAddress = Optional.of("/restconf"); - this.restconfPort = Optional.of(8187); - this.restconfBindingAddress = Optional.of("127.0.0.1"); this.persistedConfigRestorationType = "Merge"; this.persistedContextRestorationType = "Merge"; - this.restconfWebsocketPort = Optional.of(7890); } @Override @@ -49,21 +42,6 @@ public class StaticHoneycombConfiguration extends HoneycombConfiguration impleme return false; } - @Override - public boolean isRestconfHttpsEnabled() { - return false; - } - - @Override - public boolean isRestconfHttpEnabled() { - return true; - } - - @Override - public boolean isRestconfEnabled() { - return true; - } - @Override public boolean isNetconfTcpEnabled() { return false; -- cgit 1.2.3-korg