/* * 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.northbound.restconf; import java.util.Optional; import net.jmob.guice.conf.core.BindConfig; import net.jmob.guice.conf.core.InjectConfig; import net.jmob.guice.conf.core.Syntax; //TODO - HONEYCOMB-377 - do not include module to active modules if disabled @BindConfig(value = "restconf", syntax = Syntax.JSON) public class RestconfConfiguration { @InjectConfig("restconf-http-enabled") public String restconfHttp; @InjectConfig("restconf-binding-address") public Optional restconfBindingAddress; @InjectConfig("restconf-port") public Optional restconfPort; @InjectConfig("restconf-https-enabled") public String restconfHttps; @InjectConfig("restconf-https-binding-address") public Optional restconfHttpsBindingAddress; @InjectConfig("restconf-https-port") public Optional restconfHttpsPort; /** * Restconf keystore file name. It will be loaded from the classpath so must be present in one of the folders * packaged with the distribution e.g. cert/ */ @InjectConfig("restconf-keystore") public Optional restconfKeystore = Optional.of("/honeycomb-keystore"); @InjectConfig("restconf-keystore-password") public Optional keystorePassword; @InjectConfig("restconf-keystore-manager-password") public Optional keystoreManagerPassword; /** * Restconf truststore file name. It will be loaded from the classpath so must be present in one of the folders * packaged with the distribution e.g. cert/ */ @InjectConfig("restconf-truststore") public Optional restconfTruststore; @InjectConfig("restconf-truststore-password") public Optional truststorePassword; @InjectConfig("restconf-websocket-port") public Optional restconfWebsocketPort = Optional.of(7779); @InjectConfig("restconf-root-path") public Optional restconfRootPath = Optional.of("/restconf"); @InjectConfig("restconf-pool-max-size") public Optional restPoolMaxSize = Optional.of(10); @InjectConfig("restconf-pool-min-size") public Optional restPoolMinSize = Optional.of(1); @InjectConfig("restconf-acceptors-size") public Optional acceptorsSize = Optional.of(1); @InjectConfig("restconf-selectors-size") public Optional selectorsSize = Optional.of(1); @InjectConfig("restconf-https-acceptors-size") public Optional httpsAcceptorsSize = Optional.of(1); @InjectConfig("restconf-https-selectors-size") public Optional httpsSelectorsSize = Optional.of(1); public boolean isRestconfHttpEnabled() { return Boolean.valueOf(restconfHttp); } public boolean isRestconfHttpsEnabled() { return Boolean.valueOf(restconfHttps); } public boolean isRestconfEnabled() { return isRestconfHttpEnabled() || isRestconfHttpsEnabled(); } @Override public String toString() { return "RestconfConfiguration{" + "restconfHttp='" + restconfHttp + '\'' + ", restconfBindingAddress=" + restconfBindingAddress + ", restconfPort=" + restconfPort + ", restconfHttps='" + restconfHttps + '\'' + ", restconfHttpsBindingAddress=" + restconfHttpsBindingAddress + ", restconfHttpsPort=" + restconfHttpsPort + ", restconfKeystore=" + restconfKeystore + ", keystorePassword=" + keystorePassword + ", keystoreManagerPassword=" + keystoreManagerPassword + ", restconfTruststore=" + restconfTruststore + ", truststorePassword=" + truststorePassword + ", restconfWebsocketPort=" + restconfWebsocketPort + ", restconfRootPath=" + restconfRootPath + ", restPoolMaxSize=" + restPoolMaxSize + ", restPoolMinSize=" + restPoolMinSize + ", acceptorsSize=" + acceptorsSize + ", selectorsSize=" + selectorsSize + ", httpsAcceptorsSize=" + httpsAcceptorsSize + ", httpsSelectorsSize=" + httpsSelectorsSize + '}'; } }