blob: eb8643cb2bfee039ec30fb81909d8626cb2e4187 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dubbo.common.constants;
import org.apache.dubbo.common.URL;
import java.net.NetworkInterface;
import java.util.Properties;
import java.util.concurrent.ExecutorService;
import java.util.regex.Pattern;
public interface CommonConstants {
String DUBBO = "dubbo";
String TRIPLE = "tri";
String PROVIDER = "provider";
String CONSUMER = "consumer";
String APPLICATION_KEY = "application";
String APPLICATION_VERSION_KEY = "application.version";
String APPLICATION_PROTOCOL_KEY = "application-protocol";
String METADATA_SERVICE_PORT_KEY = "metadata-service-port";
String METADATA_SERVICE_PROTOCOL_KEY = "metadata-service-protocol";
String LIVENESS_PROBE_KEY = "liveness-probe";
String READINESS_PROBE_KEY = "readiness-probe";
String STARTUP_PROBE = "startup-probe";
String REMOTE_APPLICATION_KEY = "remote.application";
String ENABLED_KEY = "enabled";
String DISABLED_KEY = "disabled";
String DUBBO_PROPERTIES_KEY = "dubbo.properties.file";
String DEFAULT_DUBBO_PROPERTIES = "dubbo.properties";
String DUBBO_MIGRATION_KEY = "dubbo.migration.file";
String DUBBO_MIGRATION_FILE_ENABLE = "dubbo.migration-file.enable";
String DEFAULT_DUBBO_MIGRATION_FILE = "dubbo-migration.yaml";
String ANY_VALUE = "*";
/**
* @since 2.7.8
*/
char COMMA_SEPARATOR_CHAR = ',';
String COMMA_SEPARATOR = ",";
String DOT_SEPARATOR = ".";
Pattern COMMA_SPLIT_PATTERN = Pattern.compile("\\s*[,]+\\s*");
String PATH_SEPARATOR = "/";
String PROTOCOL_SEPARATOR = "://";
String PROTOCOL_SEPARATOR_ENCODED = URL.encode(PROTOCOL_SEPARATOR);
String REGISTRY_SEPARATOR = "|";
Pattern REGISTRY_SPLIT_PATTERN = Pattern.compile("\\s*[|;]+\\s*");
Pattern D_REGISTRY_SPLIT_PATTERN = Pattern.compile("\\s*[|]+\\s*");
String SEMICOLON_SEPARATOR = ";";
Pattern SEMICOLON_SPLIT_PATTERN = Pattern.compile("\\s*[;]+\\s*");
Pattern EQUAL_SPLIT_PATTERN = Pattern.compile("\\s*[=]+\\s*");
String DEFAULT_PROXY = "javassist";
String DEFAULT_DIRECTORY = "dubbo";
String PROTOCOL_KEY = "protocol";
String DEFAULT_PROTOCOL = "dubbo";
String DEFAULT_THREAD_NAME = "Dubbo";
int DEFAULT_CORE_THREADS = 0;
int DEFAULT_THREADS = 200;
String EXECUTOR_SERVICE_COMPONENT_KEY = ExecutorService.class.getName();
String INTERNAL_EXECUTOR_SERVICE_COMPONENT_KEY = "INTERNAL_SERVICE_EXECUTOR";
String THREADPOOL_KEY = "threadpool";
String THREAD_NAME_KEY = "threadname";
String CORE_THREADS_KEY = "corethreads";
String THREADS_KEY = "threads";
String QUEUES_KEY = "queues";
String ALIVE_KEY = "alive";
String DEFAULT_THREADPOOL = "limited";
String DEFAULT_CLIENT_THREADPOOL = "cached";
String IO_THREADS_KEY = "iothreads";
String KEEP_ALIVE_KEY = "keep.alive";
int DEFAULT_QUEUES = 0;
int DEFAULT_ALIVE = 60 * 1000;
String TIMEOUT_KEY = "timeout";
int DEFAULT_TIMEOUT = 1000;
String SESSION_KEY = "session";
// used by invocation attachments to transfer timeout from Consumer to Provider.
// works as a replacement of TIMEOUT_KEY on wire, which seems to be totally useless in previous releases).
String TIMEOUT_ATTACHMENT_KEY = "_TO";
String TIMEOUT_ATTACHMENT_KEY_LOWER = "_to";
String TIME_COUNTDOWN_KEY = "timeout-countdown";
String ENABLE_TIMEOUT_COUNTDOWN_KEY = "enable-timeout-countdown";
String REMOVE_VALUE_PREFIX = "-";
String PROPERTIES_CHAR_SEPARATOR = "-";
String UNDERLINE_SEPARATOR = "_";
String SEPARATOR_REGEX = "_|-";
String GROUP_CHAR_SEPARATOR = ":";
String HIDE_KEY_PREFIX = ".";
String DOT_REGEX = "\\.";
String DEFAULT_KEY_PREFIX = "default.";
String DEFAULT_KEY = "default";
String PREFERRED_KEY = "preferred";
/**
* Default timeout value in milliseconds for server shutdown
*/
int DEFAULT_SERVER_SHUTDOWN_TIMEOUT = 10000;
String SIDE_KEY = "side";
String PROVIDER_SIDE = "provider";
String CONSUMER_SIDE = "consumer";
String ANYHOST_KEY = "anyhost";
String ANYHOST_VALUE = "0.0.0.0";
String LOCALHOST_KEY = "localhost";
String LOCALHOST_VALUE = "127.0.0.1";
String METHODS_KEY = "methods";
String METHOD_KEY = "method";
String PID_KEY = "pid";
String TIMESTAMP_KEY = "timestamp";
String GROUP_KEY = "group";
String PATH_KEY = "path";
String INTERFACE_KEY = "interface";
String FILE_KEY = "file";
String FILTER_KEY = "filter";
String DUMP_DIRECTORY = "dump.directory";
String CLASSIFIER_KEY = "classifier";
String VERSION_KEY = "version";
String REVISION_KEY = "revision";
String METADATA_KEY = "metadata-type";
String REPORT_METADATA_KEY = "report-metadata";
String REPORT_DEFINITION_KEY = "report-definition";
String DEFAULT_METADATA_STORAGE_TYPE = "local";
String REMOTE_METADATA_STORAGE_TYPE = "remote";
String GENERIC_KEY = "generic";
/**
* The composite metadata storage type includes {@link #DEFAULT_METADATA_STORAGE_TYPE "local"} and
* {@link #REMOTE_METADATA_STORAGE_TYPE "remote"}.
*
* @since 2.7.8
*/
String COMPOSITE_METADATA_STORAGE_TYPE = "composite";
/**
* Consumer side 's proxy class
*/
String PROXY_CLASS_REF = "refClass";
/**
* generic call
*/
String $INVOKE = "$invoke";
String $INVOKE_ASYNC = "$invokeAsync";
String GENERIC_PARAMETER_DESC = "Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Object;";
/**
* echo call
*/
String $ECHO = "$echo";
/**
* package version in the manifest
*/
String RELEASE_KEY = "release";
String PROTOBUF_MESSAGE_CLASS_NAME = "com.google.protobuf.Message";
int MAX_PROXY_COUNT = 65535;
String MONITOR_KEY = "monitor";
String CLUSTER_KEY = "cluster";
String USERNAME_KEY = "username";
String PASSWORD_KEY = "password";
String HOST_KEY = "host";
String PORT_KEY = "port";
String DUBBO_IP_TO_BIND = "DUBBO_IP_TO_BIND";
/**
* broadcast cluster.
*/
String BROADCAST_CLUSTER = "broadcast";
/**
* The property name for {@link NetworkInterface#getDisplayName() the name of network interface} that
* the Dubbo application prefers
*
* @since 2.7.6
*/
String DUBBO_PREFERRED_NETWORK_INTERFACE = "dubbo.network.interface.preferred";
@Deprecated
String SHUTDOWN_WAIT_SECONDS_KEY = "dubbo.service.shutdown.wait.seconds";
String SHUTDOWN_WAIT_KEY = "dubbo.service.shutdown.wait";
String DUBBO_PROTOCOL = "dubbo";
String DUBBO_LABELS = "dubbo.labels";
String DUBBO_ENV_KEYS = "dubbo.env.keys";
String CONFIG_CONFIGFILE_KEY = "config-file";
String CONFIG_ENABLE_KEY = "highest-priority";
String CONFIG_NAMESPACE_KEY = "namespace";
String CHECK_KEY = "check";
String BACKLOG_KEY = "backlog";
String HEARTBEAT_EVENT = null;
String MOCK_HEARTBEAT_EVENT = "H";
String READONLY_EVENT = "R";
String REFERENCE_FILTER_KEY = "reference.filter";
String HEADER_FILTER_KEY = "header.filter";
String INVOCATION_INTERCEPTOR_KEY = "invocation.interceptor";
String INVOKER_LISTENER_KEY = "invoker.listener";
String REGISTRY_PROTOCOL_LISTENER_KEY = "registry.protocol.listener";
String DUBBO_VERSION_KEY = "dubbo";
String TAG_KEY = "dubbo.tag";
/**
* To decide whether to make connection when the client is created
*/
String LAZY_CONNECT_KEY = "lazy";
String STUB_EVENT_KEY = "dubbo.stub.event";
String REFERENCE_INTERCEPTOR_KEY = "reference.interceptor";
String SERVICE_FILTER_KEY = "service.filter";
String EXPORTER_LISTENER_KEY = "exporter.listener";
/**
* After simplify the registry, should add some parameter individually for provider.
*
* @since 2.7.0
*/
String EXTRA_KEYS_KEY = "extra-keys";
String GENERIC_SERIALIZATION_NATIVE_JAVA = "nativejava";
String GENERIC_SERIALIZATION_GSON = "gson";
String GENERIC_SERIALIZATION_DEFAULT = "true";
String GENERIC_SERIALIZATION_BEAN = "bean";
String GENERIC_RAW_RETURN = "raw.return";
String GENERIC_SERIALIZATION_PROTOBUF = "protobuf-json";
String GENERIC_WITH_CLZ_KEY = "generic.include.class";
/**
* Whether to cache locally, default is true
*/
String REGISTRY_LOCAL_FILE_CACHE_ENABLED = "file.cache";
/**
* The limit of callback service instances for one interface on every client
*/
String CALLBACK_INSTANCES_LIMIT_KEY = "callbacks";
/**
* The default limit number for callback service instances
*
* @see #CALLBACK_INSTANCES_LIMIT_KEY
*/
int DEFAULT_CALLBACK_INSTANCES = 1;
String LOADBALANCE_KEY = "loadbalance";
String DEFAULT_LOADBALANCE = "random";
String RETRIES_KEY = "retries";
String FORKS_KEY = "forks";
int DEFAULT_RETRIES = 2;
int DEFAULT_FAILBACK_TIMES = 3;
String INTERFACES = "interfaces";
String SSL_ENABLED_KEY = "ssl-enabled";
String SERVICE_PATH_PREFIX = "service.path.prefix";
String PROTOCOL_SERVER_SERVLET = "servlet";
String PROTOCOL_SERVER = "server";
/**
* The parameter key for the class path of the ServiceNameMapping {@link Properties} file
*
* @since 2.7.8
*/
String SERVICE_NAME_MAPPING_PROPERTIES_FILE_KEY = "service-name-mapping.properties-path";
/**
* The default class path of the ServiceNameMapping {@link Properties} file
*
* @since 2.7.8
*/
String DEFAULT_SERVICE_NAME_MAPPING_PROPERTIES_PATH = "META-INF/dubbo/service-name-mapping.properties";
String CLASS_DESERIALIZE_BLOCK_ALL = "dubbo.security.serialize.blockAllClassExceptAllow";
String CLASS_DESERIALIZE_ALLOWED_LIST = "dubbo.security.serialize.allowedClassList";
String CLASS_DESERIALIZE_BLOCKED_LIST = "dubbo.security.serialize.blockedClassList";
String ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE = "dubbo.security.serialize.generic.native-java-enable";
String SERIALIZE_BLOCKED_LIST_FILE_PATH = "security/serialize.blockedlist";
String QOS_LIVE_PROBE_EXTENSION = "dubbo.application.liveness-probe";
String QOS_READY_PROBE_EXTENSION = "dubbo.application.readiness-probe";
String QOS_STARTUP_PROBE_EXTENSION = "dubbo.application.startup-probe";
String REGISTRY_DELAY_NOTIFICATION_KEY = "delay-notification";
String CACHE_CLEAR_TASK_INTERVAL = "dubbo.application.url.cache.task.interval";
String CACHE_CLEAR_WAITING_THRESHOLD = "dubbo.application.url.cache.clear.waiting";
String CLUSTER_INTERCEPTOR_COMPATIBLE_KEY = "dubbo.application.cluster.interceptor.compatible";
String UTF8ENCODE = "UTF-8";
/**
* Pseudo URL prefix for loading from the class path: "classpath:".
*/
String CLASSPATH_URL_PREFIX = "classpath:";
String DEFAULT_VERSION = "0.0.0";
String CLASS_DESERIALIZE_OPEN_CHECK = "dubbo.security.serialize.openCheckClass";
String ROUTER_KEY = "router";
String EXPORT_ASYNC_KEY = "export-async";
String REFER_ASYNC_KEY = "refer-async";
String EXPORT_BACKGROUND_KEY = "export-background";
String REFER_BACKGROUND_KEY = "refer-background";
String EXPORT_THREAD_NUM_KEY = "export-thread-num";
String REFER_THREAD_NUM_KEY = "refer-thread-num";
int DEFAULT_EXPORT_THREAD_NUM = 10;
int DEFAULT_REFER_THREAD_NUM = 10;
int DEFAULT_DELAY_NOTIFICATION_TIME = 5000;
int DEFAULT_DELAY_EXECUTE_TIMES = 10;
/**
* Url merge processor key
*/
String URL_MERGE_PROCESSOR_KEY = "url-merge-processor";
/**
* use native image to compile dubbo's identifier
*/
String NATIVE = "native";
String DUBBO_MONITOR_ADDRESS = "dubbo.monitor.address";
String SERVICE_NAME_MAPPING_KEY = "service-name-mapping";
String SCOPE_MODEL = "scopeModel";
String SERVICE_MODEL = "serviceModel";
/**
* The property name for {@link NetworkInterface#getDisplayName() the name of network interface} that
* the Dubbo application will be ignored
*
* @since 2.7.6
*/
String DUBBO_NETWORK_IGNORED_INTERFACE = "dubbo.network.interface.ignored";
String OS_NAME_KEY = "os.name";
String OS_LINUX_PREFIX = "linux";
String OS_WIN_PREFIX = "win";
String RECONNECT_TASK_TRY_COUNT = "dubbo.reconnect.reconnectTaskTryCount";
int DEFAULT_RECONNECT_TASK_TRY_COUNT = 10;
String RECONNECT_TASK_PERIOD = "dubbo.reconnect.reconnectTaskPeriod";
int DEFAULT_RECONNECT_TASK_PERIOD = 1000;
String RESELECT_COUNT = "dubbo.reselect.count";
int DEFAULT_RESELECT_COUNT = 10;
String ENABLE_CONNECTIVITY_VALIDATION = "dubbo.connectivity.validation";
String DUBBO_INTERNAL_APPLICATION = "DUBBO_INTERNAL_APPLICATION";
String RETRY_TIMES_KEY = "retry-times";
String RETRY_PERIOD_KEY = "retry-period";
String SYNC_REPORT_KEY = "sync-report";
String CYCLE_REPORT_KEY = "cycle-report";
String WORKING_CLASSLOADER_KEY = "WORKING_CLASSLOADER";
String STAGED_CLASSLOADER_KEY = "STAGED_CLASSLOADER";
String PROVIDER_ASYNC_KEY = "PROVIDER_ASYNC";
String REGISTER_IP_KEY = "register.ip";
String CURRENT_CLUSTER_INVOKER_KEY = "currentClusterInvoker";
String ENABLE_ROUTER_SNAPSHOT_PRINT_KEY = "ENABLE_ROUTER_SNAPSHOT_PRINT";
String INJVM_COPY_UTIL_KEY = "injvm-copy-util";
String INJVM_IGNORE_SAME_MODULE_KEY = "injvm.ignore.same-module";
String SET_FUTURE_IN_SYNC_MODE = "future.sync.set";
String CLEAR_FUTURE_AFTER_GET = "future.clear.once";
String NATIVE_STUB = "nativestub";
String METADATA = "metadata";
String IGNORE_LISTEN_SHUTDOWN_HOOK = "dubbo.shutdownHook.listenIgnore";
String OPTIMIZER_KEY = "optimizer";
String PREFER_JSON_FRAMEWORK_NAME = "dubbo.json-framework.prefer";
/**
* @since 3.1.0
*/
String MESH_ENABLE = "mesh-enable";
/**
* @since 3.1.0
*/
Integer DEFAULT_MESH_PORT = 80;
/**
* @since 3.1.0
*/
String SVC = ".svc.";
/**
* Domain name suffix used inside k8s.
*
* @since 3.1.0
*/
String DEFAULT_CLUSTER_DOMAIN = "cluster.local";
}