/*
* Copyright 2005,2006 WSO2, Inc. http://www.wso2.org
*
* 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 org.apache.synapse.commons.throttle.core;
import javax.xml.namespace.QName;
public final class ThrottleConstants {
private ThrottleConstants() {
}
/* Throttle module name */
public static final String THROTTLE_MODULE_NAME = "wso2throttle";
/* Throttle namespace */
public static final String THROTTLE_NS = "http://www.wso2.org/products/wso2commons/throttle";
public static final String THROTTLE_NS_PREFIX = "throttle";
/* Throttle type according to the caller type eg: ip | domain */
public static final int IP_BASE = 0;
public static final int DOMAIN_BASE = 1;
public static final int ROLE_BASE = 2;
/* Throttle type according to the scope ex : service level;,operation level and module level*/
public static final int GLOBAL_THROTTLE = 0;
public static final int SERVICE_BASED_THROTTLE = 1;
public static final int OPERATION_BASED_THROTTLE = 2;
/* The throttle policy parameters */
/**
* @deprecated
*/
public static final QName THROTTLE_ASSERTION_QNAME =
new QName(THROTTLE_NS, "ThrottleAssertion", THROTTLE_NS_PREFIX);
public static final QName OPERATION_THROTTLE_ASSERTION_QNAME =
new QName(THROTTLE_NS, "OperationThrottleAssertion", THROTTLE_NS_PREFIX);
public static final QName SERVICE_THROTTLE_ASSERTION_QNAME =
new QName(THROTTLE_NS, "ServiceThrottleAssertion", THROTTLE_NS_PREFIX);
public static final QName MODULE_THROTTLE_ASSERTION_QNAME =
new QName(THROTTLE_NS, "ModuleThrottleAssertion", THROTTLE_NS_PREFIX);
public static final QName MEDIATOR_THROTTLE_ASSERTION_QNAME =
new QName(THROTTLE_NS, "MediatorThrottleAssertion", THROTTLE_NS_PREFIX);
public static final QName THROTTLE_TYPE_ATTRIBUTE_QNAME =
new QName(THROTTLE_NS, "type", THROTTLE_NS_PREFIX);
public static final String KEY_OF_DEFAULT_CONFIGURATION_FOR_OTHER = "other";
/**
* @deprecated
*/
public static final String ISALLOW_PARAMETER_NAME = "IsAllow";
public static final String ALLOW_PARAMETER_NAME = "Allow";
public static final String CONTROL_PARAMETER_NAME = "Control";
public static final String DENY_PARAMETER_NAME = "Deny";
public static final String DEFAULT_THROTTLE_CONTEXT_ID = "ThrottleContextID";
public static final String UNIT_TIME_PARAMETER_NAME = "UnitTime";
public static final String MAXIMUM_COUNT_PARAMETER_NAME = "MaximumCount";
public static final String PROHIBIT_TIME_PERIOD_PARAMETER_NAME = "ProhibitTimePeriod";
public static final String ID_PARAMETER_NAME = "ID";
public static final String MAXIMUM_CONCURRENT_ACCESS_PARAMETER_NAME = "MaximumConcurrentAccess";
/**
* This global throttle path can be used to point to an external global throttle policy using
* the axis.xml
*/
public static final String GLOBAL_THROTTLE_PATH_PARAM = "globalThrottlePolicyPath";
/* Access states - allow, deny or control */
public static final int ACCESS_CONTROLLED = 0;
public static final int ACCESS_DENIED = 1;
public static final int ACCESS_ALLOWED = 2;
/* The default clean up time indicates how often cleaning up process should execute */
public static final long DEFAULT_THROTTLE_CLEAN_PERIOD = 5 * 1000 * 60;
/*prefix for throttle specific properties */
public static final String THROTTLE_PROPERTY_PREFIX = "throttle_";
/*The key for map that contains all available throttles */
public static final String THROTTLES_MAP = "local_throttle_map";
/* The key for looking up throttle context and configuration from the throttle
,according to the type (ip | domain) */
public static final String IP_BASED_THROTTLE_KEY = "key_of_ip_based_throttle";
public static final String DOMAIN_BASED_THROTTLE_KEY = "key_of_domain_based_throttle";
public static final String ROLE_BASED_THROTTLE_KEY = "key_of_role_based_throttle";
public static final String TOKEN_BASED_THROTTLE_KEY = "key_of_token_based_throttle";
/* The key for level throttle */
public static final String GLOBAL_THROTTLE_KEY = "key_of_global_throttle";
/* suffix for key , when setting a concurrent access controller to context */
public static final String CAC_SUFFIX = "_cac_key";
/* the throttle id for module level throttle */
public static final String GLOBAL_THROTTLE_ID = "id_of_global_throttle_";
/**
* Parameter names which are used to identify special services..
*/
public static final String ADMIN_SERVICE_PARAM_NAME = "adminService";
public static final String HIDDEN_SERVICE_PARAM_NAME = "hiddenService";
public static final String DYNAMIC_SERVICE_PARAM_NAME = "dynamicService";
public static final String DOMAIN_NAME_PROPERTY = "domainName";
/**
* Dummy token for token based throttling policy initialization
*/
public static final String DUMMY_TOKEN = "dummy_token_for_token_based_throttle";
public static final String THROTTLE_INFO_KEY = "throttle_info";
public static final String THROTTLE_TIMESTAMP_KEY = "startedTime-";
public static final String THROTTLE_SHARED_COUNTER_KEY = "sharedCounter-";
public static final String THROTTLE_CONTEXT_CLEANUP_TASK_FREQUENCY = "throttling.context.cleanup.frequency";
public static final String THROTTLE_CONTEXT_DISTRIBUTED_CLEANUP_TASK_FREQUENCY =
"throttling.context.distributed.cleanup.frequency";
public static final String THROTTLE_CONTEXT_DISTRIBUTED_EXPIRED_INSTANCE_TIME =
"throttling.context.distributed.expired.instance.time";
public static final String THROTTLE_DISTRIBUTED_CLEANUP_POOL_SIZE =
"throttling.context.distributed.cleanup.pool.size";
public static final String THROTTLE_DISTRIBUTED_CLEANUP_AMOUNT = "throttling.context.distributed.cleanup.amount";
public static final String MAX_NON_ASSOCIATED_COUNTER_CLEANUP_AMOUNT = "stale.counter.references";
public static final String THROTTLE_DISTRIBUTED_CLEANUP_TASK_ENABLE =
"throttling.context.distributed.cleanup.task.enabled";
public static final String THROTTLING_POOL_SIZE = "throttling.pool.size";
public static final String THROTTLING_REPLICATION_FREQUENCY = "throttling.replication.frequency";
public static final String THROTTLING_KEYS_TO_REPLICATE = "throttling.keys.to.replicate";
public static final String WINDOW_REPLICATOR_POOL_SIZE = "throttlingWindowReplicator.pool.size";
public static final String WINDOW_REPLICATOR_FREQUENCY = "throttlingWindowReplicator.replication.frequency";
}