
com.undefinedlabs.scope.settings.ScopeSettings Maven / Gradle / Ivy
package com.undefinedlabs.scope.settings;
import com.undefinedlabs.scope.logger.ScopeLogger;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
public class ScopeSettings {
public static final String SCOPE_AGENT_IS_EXECUTING = "SCOPE_AGENT_IS_EXECUTING";
public static final int HTTP_MAX_PAYLOAD_CHARS = 512;
public static final String SCOPE_DSN = "SCOPE_DSN";
public static final String SCOPE_SERVICE = "SCOPE_SERVICE";
public static final String SCOPE_REPOSITORY = "SCOPE_REPOSITORY";
public static final String SCOPE_COMMIT_SHA = "SCOPE_COMMIT_SHA";
public static final String SCOPE_SOURCE_ROOT = "SCOPE_SOURCE_ROOT";
public static final String SCOPE_BRANCH = "SCOPE_BRANCH";
public static final String SCOPE_DIFF = "SCOPE_DIFF";
public static final String SCOPE_INSTRUMENTATION_ENABLED = "SCOPE_INSTRUMENTATION_ENABLED";
public static final String SCOPE_TRACER_GLOBAL = "SCOPE_TRACER_GLOBAL";
public static final String SCOPE_TESTING_MODE = "SCOPE_TESTING_MODE";
public static final String SCOPE_REPORTER_HEALTH_CHECK_INTERVAL =
"SCOPE_REPORTER_HEALTH_CHECK_INTERVAL";
public static final String CI_IS_CI = "CI_IS_CI";
public static final String CI_PROVIDER = "CI_PROVIDER";
public static final String CI_BUILD_ID = "CI_BUILD_ID";
public static final String CI_BUILD_NUMBER = "CI_BUILD_NUMBER";
public static final String CI_BUILD_URL = "CI_BUILD_URL";
public static final String SCOPE_TRACER_DISPATCHER_SPANS_MAX_BUFFER_SIZE =
"SCOPE_TRACER_DISPATCHER_SPANS_MAX_BUFFER_SIZE";
public static final String SCOPE_TRACER_DISPATCHER_EVENTS_MAX_BUFFER_SIZE =
"SCOPE_TRACER_DISPATCHER_EVENTS_MAX_BUFFER_SIZE";
public static final String SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY =
"SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY";
public static final String SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY_IN_TESTMODE =
"SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY_IN_TESTMODE";
public static final String SCOPE_TRACER_DISPATCHER_CONCURRENCY_LEVEL =
"SCOPE_TRACER_DISPATCHER_CONCURRENCY_LEVEL";
public static final String SCOPE_TRACER_DISPATCHER_CLOSE_TIMEOUT =
"SCOPE_TRACER_DISPATCHER_CLOSE_TIMEOUT";
public static final String SCOPE_CODE_PATH_ENABLED = "SCOPE_CODE_PATH_ENABLED";
public static final String SCOPE_CODE_PATH_BASE_PACKAGES = "SCOPE_CODE_PATH_BASE_PACKAGES";
public static final String SCOPE_LOGGER_LEVEL = "SCOPE_LOGGER_LEVEL";
public static final String SCOPE_LOGGER_ROOT = "SCOPE_LOGGER_ROOT";
public static final String SCOPE_INSTRUMENTATION_DB_STATEMENT_VALUES =
"SCOPE_INSTRUMENTATION_DB_STATEMENT_VALUES";
public static final String SCOPE_INSTRUMENTATION_DB_STACKTRACE =
"SCOPE_INSTRUMENTATION_DB_STACKTRACE";
public static final String SCOPE_INSTRUMENTATION_HTTP_PAYLOADS =
"SCOPE_INSTRUMENTATION_HTTP_PAYLOADS";
public static final String SCOPE_INSTRUMENTATION_HTTP_HEADERS =
"SCOPE_INSTRUMENTATION_HTTP_HEADERS";
public static final String SCOPE_INSTRUMENTATION_HTTP_STACKTRACE =
"SCOPE_INSTRUMENTATION_HTTP_STACKTRACE";
public static final String SCOPE_METADATA = "SCOPE_METADATA";
public static final String SCOPE_CONFIGURATION = "SCOPE_CONFIGURATION";
public static final String SCOPE_CONFIG_FILE = "SCOPE_CONFIG_FILE";
public static final String SCOPE_RUNNER_ENABLED = "SCOPE_RUNNER_ENABLED";
public static final String SCOPE_RUNNER_INCLUDE_BRANCHES = "SCOPE_RUNNER_INCLUDE_BRANCHES";
public static final String SCOPE_RUNNER_EXCLUDE_BRANCHES = "SCOPE_RUNNER_EXCLUDE_BRANCHES";
public static final String SCOPE_RUNNER_SEND_SPANS = "SCOPE_RUNNER_SEND_SPANS";
public static final String SCOPE_TRACER_DISPATCHER_CONNECTIONS_POOL_SIZE =
"SCOPE_TRACER_DISPATCHER_CONNECTIONS_POOL_SIZE";
public static final String SCOPE_TRACER_DISPATCHER_CONNECTIONS_KEEP_ALIVE_DURATION =
"SCOPE_TRACER_DISPATCHER_CONNECTIONS_KEEP_LIVE_DURATION";
public static final String SCOPE_DEPENDENCIES = "SCOPE_DEPENDENCIES";
private final Map settings;
public ScopeSettings(final Map settings) {
this.settings = settings != null ? settings : new HashMap();
}
public Object getSetting(final String key) {
return settings.get(key);
}
public void printSettings(final ScopeLogger logger) {
logger.info(printableScopeDsn((String) getSetting(SCOPE_DSN)));
logger.info(printableSetting(SCOPE_SERVICE));
logger.info(printableSetting(SCOPE_REPOSITORY));
logger.info(printableSetting(SCOPE_COMMIT_SHA));
logger.info(printableSetting(SCOPE_SOURCE_ROOT));
logger.info(printableSetting(SCOPE_BRANCH));
logger.info(printableSetting(SCOPE_DIFF));
logger.info(printableSetting(SCOPE_INSTRUMENTATION_ENABLED));
logger.info(printableSetting(SCOPE_TRACER_GLOBAL));
logger.info(printableSetting(SCOPE_TESTING_MODE));
logger.info(printableSetting(SCOPE_REPORTER_HEALTH_CHECK_INTERVAL));
logger.info(printableSetting(CI_IS_CI));
logger.info(printableSetting(CI_PROVIDER));
logger.info(printableSetting(CI_BUILD_ID));
logger.info(printableSetting(CI_BUILD_NUMBER));
logger.info(printableSetting(CI_BUILD_URL));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_SPANS_MAX_BUFFER_SIZE));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_EVENTS_MAX_BUFFER_SIZE));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FREQUENCY_IN_TESTMODE));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_CONCURRENCY_LEVEL));
logger.info(printableSetting(SCOPE_TRACER_DISPATCHER_CLOSE_TIMEOUT));
logger.info(printableSetting(SCOPE_CODE_PATH_ENABLED));
logger.info(printableSetting(SCOPE_CODE_PATH_BASE_PACKAGES));
logger.info(printableSetting(SCOPE_LOGGER_LEVEL));
logger.info(printableSetting(SCOPE_LOGGER_ROOT));
logger.info(printableSetting(SCOPE_INSTRUMENTATION_DB_STATEMENT_VALUES));
logger.info(printableSetting(SCOPE_INSTRUMENTATION_HTTP_PAYLOADS));
logger.info(printableSetting(SCOPE_INSTRUMENTATION_HTTP_HEADERS));
logger.info(printableSetting(SCOPE_RUNNER_ENABLED));
logger.info(printableSetting(SCOPE_RUNNER_INCLUDE_BRANCHES));
logger.info(printableSetting(SCOPE_RUNNER_EXCLUDE_BRANCHES));
}
private String printableSetting(final String key) {
return "--- ".concat(key).concat(": ").concat(String.valueOf(getSetting(key)));
}
private String printableScopeDsn(final String scopeDsn) {
final StringBuilder sb = new StringBuilder();
sb.append("--- ").append(SCOPE_DSN).append(": ");
if (StringUtils.isEmpty(scopeDsn)) {
return sb.append("null").toString();
}
try {
final URL scopeDsnUrl = new URL(scopeDsn);
sb.append(scopeDsnUrl.getProtocol()).append("://");
sb.append(StringUtils.isNotEmpty(scopeDsnUrl.getUserInfo()) ? "@" : "");
sb.append(scopeDsnUrl.getHost());
sb.append(scopeDsnUrl.getPort() != -1 ? ":" + scopeDsnUrl.getPort() : "");
sb.append(StringUtils.isNotEmpty(scopeDsnUrl.getPath()) ? scopeDsnUrl.getPath() : "");
sb.append(StringUtils.isNotEmpty(scopeDsnUrl.getQuery()) ? scopeDsnUrl.getQuery() : "");
return sb.toString();
} catch (final MalformedURLException e) {
return "--- ".concat(SCOPE_DSN).concat(": , ").concat(e.getMessage());
}
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final ScopeSettings that = (ScopeSettings) o;
return new EqualsBuilder().append(settings, that.settings).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37).append(settings).toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this).append("settings", settings).toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy