/*
* 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.activemq.artemis.core.remoting.impl.netty;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import io.netty.util.Version;
import org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
public class TransportConstants {
public static final String SSL_ENABLED_PROP_NAME = "sslEnabled";
public static final String HTTP_ENABLED_PROP_NAME = "httpEnabled";
public static final String HTTP_CLIENT_IDLE_PROP_NAME = "httpClientIdleTime";
public static final String HTTP_CLIENT_IDLE_SCAN_PERIOD = "httpClientIdleScanPeriod";
public static final String HTTP_RESPONSE_TIME_PROP_NAME = "httpResponseTime";
public static final String HTTP_SERVER_SCAN_PERIOD_PROP_NAME = "httpServerScanPeriod";
public static final String HTTP_REQUIRES_SESSION_ID = "httpRequiresSessionId";
public static final String HTTP_UPGRADE_ENABLED_PROP_NAME = "httpUpgradeEnabled";
public static final String HTTP_UPGRADE_ENDPOINT_PROP_NAME = "httpUpgradeEndpoint";
public static final String USE_SERVLET_PROP_NAME = "useServlet";
public static final String SERVLET_PATH = "servletPath";
public static final String USE_NIO_PROP_NAME = "useNio";
public static final String USE_EPOLL_PROP_NAME = "useEpoll";
@Deprecated
/**
* @deprecated Use USE_GLOBAL_WORKER_POOL_PROP_NAME
*/
public static final String USE_NIO_GLOBAL_WORKER_POOL_PROP_NAME = "useNioGlobalWorkerPool";
public static final String USE_GLOBAL_WORKER_POOL_PROP_NAME = "useGlobalWorkerPool";
public static final String USE_INVM_PROP_NAME = "useInvm";
public static final String ACTIVEMQ_SERVER_NAME = "activemqServerName";
/**
* @deprecated use PROTOCOLS_PROP_NAME
*/
@Deprecated
public static final String PROTOCOL_PROP_NAME = "protocol";
public static final String PROTOCOLS_PROP_NAME = "protocols";
public static final String HOST_PROP_NAME = "host";
public static final String PORT_PROP_NAME = "port";
public static final String LOCAL_ADDRESS_PROP_NAME = "localAddress";
public static final String LOCAL_PORT_PROP_NAME = "localPort";
public static final String KEYSTORE_PROVIDER_PROP_NAME = "keyStoreProvider";
public static final String KEYSTORE_PATH_PROP_NAME = "keyStorePath";
public static final String KEYSTORE_PASSWORD_PROP_NAME = "keyStorePassword";
public static final String TRUSTSTORE_PROVIDER_PROP_NAME = "trustStoreProvider";
public static final String TRUSTSTORE_PATH_PROP_NAME = "trustStorePath";
public static final String TRUSTSTORE_PASSWORD_PROP_NAME = "trustStorePassword";
public static final String ENABLED_CIPHER_SUITES_PROP_NAME = "enabledCipherSuites";
public static final String ENABLED_PROTOCOLS_PROP_NAME = "enabledProtocols";
public static final String NEED_CLIENT_AUTH_PROP_NAME = "needClientAuth";
public static final String VERIFY_HOST_PROP_NAME = "verifyHost";
public static final String BACKLOG_PROP_NAME = "backlog";
public static final String USE_DEFAULT_SSL_CONTEXT_PROP_NAME = "useDefaultSslContext";
public static final String NETTY_VERSION;
/**
* Disable Nagle's algorithm.<br>
* Valid for (client) Sockets.
*
* @see <a
* href="http://design.jboss.org/jbossorg/branding/Javadocs/doc/api/org/jboss/netty/channel/socket/SocketChannelConfig.html#setTcpNoDelay%28boolean%29">
* Netty note on this option</a>
* @see <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/net/socketOpt.html">Oracle
* doc on tcpNoDelay</a>
*/
public static final String TCP_NODELAY_PROPNAME = "tcpNoDelay";
public static final String TCP_SENDBUFFER_SIZE_PROPNAME = "tcpSendBufferSize";
public static final String TCP_RECEIVEBUFFER_SIZE_PROPNAME = "tcpReceiveBufferSize";
@Deprecated
/**
* @deprecated Use REMOTING_THREADS_PROPNAME
*/
public static final String NIO_REMOTING_THREADS_PROPNAME = "nioRemotingThreads";
public static final String WRITE_BUFFER_LOW_WATER_MARK_PROPNAME = "writeBufferLowWaterMark";
public static final String WRITE_BUFFER_HIGH_WATER_MARK_PROPNAME = "writeBufferHighWaterMark";
public static final String REMOTING_THREADS_PROPNAME = "RemotingThreads";
public static final String BATCH_DELAY = "batchDelay";
public static final String DIRECT_DELIVER = "directDeliver";
public static final String CLUSTER_CONNECTION = "clusterConnection";
public static final String STOMP_CONSUMERS_CREDIT = "stompConsumerCredits";
public static final int STOMP_DEFAULT_CONSUMERS_CREDIT = 10 * 1024; // 10K
public static final boolean DEFAULT_SSL_ENABLED = false;
public static final boolean DEFAULT_USE_GLOBAL_WORKER_POOL = true;
public static final boolean DEFAULT_USE_EPOLL = true;
public static final boolean DEFAULT_USE_INVM = false;
public static final boolean DEFAULT_USE_SERVLET = false;
public static final String DEFAULT_HOST = "localhost";
public static final int DEFAULT_PORT = 61616;
public static final String DEFAULT_LOCAL_ADDRESS = null;
public static final int DEFAULT_LOCAL_PORT = 0;
public static final int DEFAULT_STOMP_PORT = 61613;
public static final String DEFAULT_KEYSTORE_PROVIDER = "JKS";
public static final String DEFAULT_KEYSTORE_PATH = null;
public static final String DEFAULT_KEYSTORE_PASSWORD = null;
public static final String DEFAULT_TRUSTSTORE_PROVIDER = "JKS";
public static final String DEFAULT_TRUSTSTORE_PATH = null;
public static final String DEFAULT_TRUSTSTORE_PASSWORD = null;
public static final String DEFAULT_ENABLED_CIPHER_SUITES = null;
public static final String DEFAULT_ENABLED_PROTOCOLS = null;
public static final boolean DEFAULT_NEED_CLIENT_AUTH = false;
public static final boolean DEFAULT_VERIFY_HOST = false;
public static final boolean DEFAULT_USE_DEFAULT_SSL_CONTEXT = false;
public static final boolean DEFAULT_TCP_NODELAY = true;
public static final int DEFAULT_TCP_SENDBUFFER_SIZE = 1024 * 1024;
public static final int DEFAULT_TCP_RECEIVEBUFFER_SIZE = 1024 * 1024;
public static final int DEFAULT_WRITE_BUFFER_LOW_WATER_MARK = 32 * 1024;
public static final int DEFAULT_WRITE_BUFFER_HIGH_WATER_MARK = 128 * 1024;
public static final boolean DEFAULT_HTTP_ENABLED = false;
public static final long DEFAULT_HTTP_CLIENT_IDLE_TIME = 500;
public static final long DEFAULT_HTTP_CLIENT_SCAN_PERIOD = 500;
public static final long DEFAULT_HTTP_RESPONSE_TIME = 10000;
public static final long DEFAULT_HTTP_SERVER_SCAN_PERIOD = 5000;
public static final boolean DEFAULT_HTTP_REQUIRES_SESSION_ID = false;
public static final boolean DEFAULT_HTTP_UPGRADE_ENABLED = false;
public static final String DEFAULT_SERVLET_PATH = "/messaging/ActiveMQServlet";
public static final long DEFAULT_BATCH_DELAY = 0;
public static final boolean DEFAULT_DIRECT_DELIVER = true;
public static final Set<String> ALLOWABLE_CONNECTOR_KEYS;
public static final Set<String> ALLOWABLE_ACCEPTOR_KEYS;
public static final String CONNECTION_TTL = "connectionTtl";
public static final String CONNECTION_TTL_MAX = "connectionTtlMax";
public static final String CONNECTION_TTL_MIN = "connectionTtlMin";
public static final String HEART_BEAT_TO_CONNECTION_TTL_MODIFIER = "heartBeatToConnectionTtlModifier";
public static final String STOMP_ENABLE_MESSAGE_ID = "stomp-enable-message-id";
public static final String STOMP_MIN_LARGE_MESSAGE_SIZE = "stomp-min-large-message-size";
public static final String NETTY_CONNECT_TIMEOUT = "connect-timeout-millis";
public static final int DEFAULT_NETTY_CONNECT_TIMEOUT = -1;
public static final String CONNECTIONS_ALLOWED = "connectionsAllowed";
public static final long DEFAULT_CONNECTIONS_ALLOWED = -1L;
static {
Set<String> allowableAcceptorKeys = new HashSet<>();
allowableAcceptorKeys.add(TransportConstants.SSL_ENABLED_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.HTTP_RESPONSE_TIME_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.HTTP_SERVER_SCAN_PERIOD_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.USE_NIO_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.USE_EPOLL_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.USE_INVM_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.PROTOCOL_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.PROTOCOLS_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.HOST_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.PORT_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.KEYSTORE_PROVIDER_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.KEYSTORE_PATH_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.KEYSTORE_PASSWORD_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.TRUSTSTORE_PROVIDER_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.TRUSTSTORE_PATH_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.ENABLED_CIPHER_SUITES_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.ENABLED_PROTOCOLS_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.NEED_CLIENT_AUTH_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.VERIFY_HOST_PROP_NAME);
allowableAcceptorKeys.add(TransportConstants.TCP_NODELAY_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.WRITE_BUFFER_HIGH_WATER_MARK_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.WRITE_BUFFER_LOW_WATER_MARK_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.NIO_REMOTING_THREADS_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.REMOTING_THREADS_PROPNAME);
allowableAcceptorKeys.add(TransportConstants.BATCH_DELAY);
allowableAcceptorKeys.add(TransportConstants.DIRECT_DELIVER);
allowableAcceptorKeys.add(TransportConstants.CLUSTER_CONNECTION);
allowableAcceptorKeys.add(TransportConstants.STOMP_CONSUMERS_CREDIT);
allowableAcceptorKeys.add(TransportConstants.STOMP_MIN_LARGE_MESSAGE_SIZE);
allowableAcceptorKeys.add(TransportConstants.CONNECTION_TTL);
allowableAcceptorKeys.add(TransportConstants.CONNECTION_TTL_MAX);
allowableAcceptorKeys.add(TransportConstants.CONNECTION_TTL_MIN);
allowableAcceptorKeys.add(TransportConstants.HEART_BEAT_TO_CONNECTION_TTL_MODIFIER);
allowableAcceptorKeys.add(TransportConstants.STOMP_ENABLE_MESSAGE_ID);
allowableAcceptorKeys.add(TransportConstants.CONNECTIONS_ALLOWED);
allowableAcceptorKeys.add(ActiveMQDefaultConfiguration.getPropMaskPassword());
allowableAcceptorKeys.add(ActiveMQDefaultConfiguration.getPropPasswordCodec());
allowableAcceptorKeys.add(TransportConstants.BACKLOG_PROP_NAME);
ALLOWABLE_ACCEPTOR_KEYS = Collections.unmodifiableSet(allowableAcceptorKeys);
Set<String> allowableConnectorKeys = new HashSet<>();
allowableConnectorKeys.add(TransportConstants.ACTIVEMQ_SERVER_NAME);
allowableConnectorKeys.add(TransportConstants.SSL_ENABLED_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.HTTP_ENABLED_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.HTTP_CLIENT_IDLE_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.HTTP_CLIENT_IDLE_SCAN_PERIOD);
allowableConnectorKeys.add(TransportConstants.HTTP_REQUIRES_SESSION_ID);
allowableConnectorKeys.add(TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.HTTP_UPGRADE_ENDPOINT_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.USE_SERVLET_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.SERVLET_PATH);
allowableConnectorKeys.add(TransportConstants.USE_NIO_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.USE_NIO_GLOBAL_WORKER_POOL_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.USE_EPOLL_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.USE_GLOBAL_WORKER_POOL_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.HOST_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.PORT_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.LOCAL_ADDRESS_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.LOCAL_PORT_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.KEYSTORE_PROVIDER_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.KEYSTORE_PATH_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.KEYSTORE_PASSWORD_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.TRUSTSTORE_PROVIDER_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.TRUSTSTORE_PATH_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.ENABLED_CIPHER_SUITES_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.ENABLED_PROTOCOLS_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.VERIFY_HOST_PROP_NAME);
allowableConnectorKeys.add(TransportConstants.TCP_NODELAY_PROPNAME);
allowableConnectorKeys.add(TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME);
allowableConnectorKeys.add(TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME);
allowableConnectorKeys.add(TransportConstants.WRITE_BUFFER_HIGH_WATER_MARK_PROPNAME);
allowableConnectorKeys.add(TransportConstants.WRITE_BUFFER_LOW_WATER_MARK_PROPNAME);
allowableConnectorKeys.add(TransportConstants.NIO_REMOTING_THREADS_PROPNAME);
allowableConnectorKeys.add(TransportConstants.REMOTING_THREADS_PROPNAME);
allowableConnectorKeys.add(TransportConstants.BATCH_DELAY);
allowableConnectorKeys.add(ActiveMQDefaultConfiguration.getPropMaskPassword());
allowableConnectorKeys.add(ActiveMQDefaultConfiguration.getPropPasswordCodec());
allowableConnectorKeys.add(TransportConstants.NETTY_CONNECT_TIMEOUT);
allowableConnectorKeys.add(TransportConstants.USE_DEFAULT_SSL_CONTEXT_PROP_NAME);
ALLOWABLE_CONNECTOR_KEYS = Collections.unmodifiableSet(allowableConnectorKeys);
String version;
Version v = Version.identify().get("netty-transport");
if (v == null) {
version = "unknown";
} else {
version = v.artifactVersion();
}
NETTY_VERSION = version;
}
}