summaryrefslogtreecommitdiff
path: root/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java')
-rw-r--r--qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java485
1 files changed, 0 insertions, 485 deletions
diff --git a/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java b/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java
deleted file mode 100644
index ab90ec294b..0000000000
--- a/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java
+++ /dev/null
@@ -1,485 +0,0 @@
-/*
- *
- * 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.qpid.management.configuration;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.Map.Entry;
-
-import org.apache.qpid.management.Messages;
-import org.apache.qpid.management.Names;
-import org.apache.qpid.management.domain.handler.base.IMessageHandler;
-import org.apache.qpid.management.domain.model.AccessMode;
-import org.apache.qpid.management.domain.model.type.AbsTime;
-import org.apache.qpid.management.domain.model.type.DeltaTime;
-import org.apache.qpid.management.domain.model.type.ObjectReference;
-import org.apache.qpid.management.domain.model.type.Str16;
-import org.apache.qpid.management.domain.model.type.Str8;
-import org.apache.qpid.management.domain.model.type.Type;
-import org.apache.qpid.management.domain.model.type.Uint16;
-import org.apache.qpid.management.domain.model.type.Uint32;
-import org.apache.qpid.management.domain.model.type.Uint64;
-import org.apache.qpid.management.domain.model.type.Uint8;
-import org.apache.qpid.transport.DeliveryProperties;
-import org.apache.qpid.transport.Header;
-import org.apache.qpid.transport.MessageProperties;
-import org.apache.qpid.transport.ReplyTo;
-import org.apache.qpid.transport.util.Logger;
-
-/**
- * Qpid Management bridge configuration.
- * Basically iy is a singleton that is holding all the configurtion data loaded at startup.
- */
-public final class Configuration
-{
- private final static Logger LOGGER = Logger.get(Configuration.class);
- private static Configuration INSTANCE = new Configuration();
-
- // Work Manager default settings
- private int _poolSize = 5;
- private int _maxPoolSize = 15;
- private long _keepAliveTime = 5000;
-
- Map<Integer, Type> _typeMappings = new HashMap<Integer,Type>();
- Map<Integer,AccessMode> _accessModes = new HashMap<Integer, AccessMode>();
- Map<Type,String> _validators = new HashMap<Type, String>();
-
- Map<UUID,BrokerConnectionData> _brokerConnectionInfos = new HashMap<UUID, BrokerConnectionData>();
-
- Map<Character, IMessageHandler> _managementQueueHandlers = new HashMap<Character, IMessageHandler>();
- Map<Character, IMessageHandler> _methodReplyQueueHandlers = new HashMap<Character, IMessageHandler>();
-
- private String _managementQueueName;
- private String _methodReplyQueueName;
-
- private Header _headerForCommandMessages;
- private DeliveryProperties _deliveryProperties = new DeliveryProperties();
- private MessageProperties _messageProperties = new MessageProperties();
-
- // Private constructor.
- private Configuration()
- {
- defineQueueNames();
-
- createHeaderForCommandMessages();
-
- addAccessModeMappings();
-
- addTypeMappings();
- }
-
-
- /**
- * Returns the singleton instance.
- *
- * @return the singleton instance.
- */
- public static Configuration getInstance ()
- {
- return INSTANCE;
- }
-
- /**
- * Returns true if this configuration has at least
- * one broker configured.
- *
- * @return true if this configuration has at least one
- * broker configured.
- */
- public boolean hasOneOrMoreBrokersDefined()
- {
- return !_brokerConnectionInfos.isEmpty();
- }
-
- /**
- * Returns the type associated to the given code.
- *
- * @param code the code used as search criteria.
- * @return the type associated to the given code.
- * @throws UnknownTypeCodeException when the given code is not associated to any type.
- */
- public Type getType(int code) throws UnknownTypeCodeException
- {
- Type result = _typeMappings.get(code);
- if (result == null)
- {
- throw new UnknownTypeCodeException(code);
- }
- return result;
- }
-
- /**
- * Returns the access mode associated to the given code.
- *
- * @param code the code used as search criteria.
- * @return the access mode associated to the given code.
- * @throws UnknownAccessCodeException when the given code is not associated to any access mode.
- */
- public AccessMode getAccessMode(int code) throws UnknownAccessCodeException
- {
- AccessMode result = _accessModes.get(code);
- if (result == null)
- {
- throw new UnknownAccessCodeException(code);
- }
- return result;
- }
-
- /**
- * Returns the validator class name associated to the given type.
- *
- * @param type the type.
- * @return the validator class name associated to the given type.
- */
- public String getValidatorClassName (Type type)
- {
- return _validators.get(type);
- }
-
- /**
- * Gets from this configuration the list of known broker (I mean, only their connection data).
- *
- * @return the list of known broker
- */
- public Set<Entry<UUID, BrokerConnectionData>> getConnectionInfos(){
- return _brokerConnectionInfos.entrySet();
- }
-
- /**
- * Gets from this configuration the connection data of the broker associated with the given id.
- *
- * @param brokerId the broker identifier.
- * @return the connection data of the broker associated with the given id.
- * @throws UnknownBrokerException when the given id is not associated with any broker.
- */
- public BrokerConnectionData getBrokerConnectionData (UUID brokerId) throws UnknownBrokerException
- {
- BrokerConnectionData connectionData = _brokerConnectionInfos.get(brokerId);
- if (connectionData == null)
- {
- throw new UnknownBrokerException(brokerId);
- }
- return _brokerConnectionInfos.get(brokerId);
- }
-
- /**
- * Returns the name of the management queue.
- *
- * @return the name of the management queue.
- */
- public String getManagementQueueName() {
- return _managementQueueName;
- }
-
- /**
- * Returns the name of the method-reply queue.
- *
- * @return the name of the method-reply queue.
- */
- public String getMethodReplyQueueName() {
- return _methodReplyQueueName;
- }
-
- /**
- * Returns a map containing all the configured management message handlers.
- * A management message handler it is a basically a processor for a management queue incoming message associated
- * with a specific opcode.
- *
- * @return a map containing all the configured management message handlers.
- */
- public Map<Character, IMessageHandler> getManagementQueueHandlers()
- {
- return _managementQueueHandlers;
- }
-
- /**
- * Returns a map containing all the configured method-reply message handlers.
- * A management message handler it is a basically a processor for a method-reply queue incoming message associated
- * with a specific opcode.
- *
- * @return a map containing all the configured method-reply message handlers.
- */
- public Map<Character, IMessageHandler> getMethodReplyQueueHandlers()
- {
- return _methodReplyQueueHandlers;
- }
-
- /**
- * Returns the message header used for sending command message on management queue.
- *
- * @return the message header used for sending command message on management queue.
- */
- public Header getCommandMessageHeader ()
- {
- return _headerForCommandMessages;
- }
-
- /**
- * Returns the command message properties.
- *
- * @return the command message properties.
- */
- public MessageProperties getCommandMessageProperties ()
- {
- return _messageProperties;
- }
-
- /**
- * Returns the command message delivery properties.
- *
- * @return the command message delivery properties.
- */
- public DeliveryProperties getCommandDeliveryProperties ()
- {
- return _deliveryProperties;
- }
-
- /**
- * Adds a new type mapping to this configuration.
- *
- * @param code the code that will be associated with the declared type.
- * @param type the type.
- * @param vailidatorClassName the FQN of the validator class that will be
- * associated with the given type.
- */
- void addTypeMapping(int code, Type type, String validatorClassName) {
- _typeMappings.put(code, type);
- _validators.put(type, validatorClassName);
-
- LOGGER.info(
- Messages.QMAN_000005_TYPE_MAPPING_CONFIGURED,
- code,
- type,
- validatorClassName);
- }
-
-
- /**
- * Adds a new type mapping to this configuration.
- *
- * @param code the code that will be associated with the declared type.
- * @param type the type.
- */
- void addTypeMapping(int code, Type type) {
- _typeMappings.put(code, type);
-
- LOGGER.info(
- Messages.QMAN_000005_TYPE_MAPPING_CONFIGURED,
- code,
- type,
- "not configured for this type.");
- }
-
- /**
- * Adds a new access mode mapping to this configuration.
- *
- * @param code the code that will be associated with the access mode,
- * @param accessMode the accessMode.
- */
- void addAccessModeMapping(int code, AccessMode accessMode){
- _accessModes.put(code, accessMode);
-
- LOGGER.info(Messages.QMAN_000006_ACCESS_MODE_MAPPING_CONFIGURED, code,accessMode);
- }
-
- /**
- * Adds a new management message handler to this configuration.
- * The incoming mapping object will contains an opcode and the class (as a string) of the message handler that will be used
- * for processing incoming messages with that opcode.
- *
- * @param mapping the message handler mapping.
- */
- void addManagementMessageHandlerMapping (MessageHandlerMapping mapping)
- {
- Character opcode = mapping.getOpcode();
- IMessageHandler handler = mapping.getMessageHandler();
- _managementQueueHandlers.put(opcode, handler);
-
- LOGGER.info(Messages.QMAN_000007_MANAGEMENT_HANDLER_MAPPING_CONFIGURED, opcode,handler.getClass().getName());
- }
-
- /**
- * Adds a new method-reply message handler to this configuration.
- * The incoming mapping object will contains an opcode and the class (as a string) of the message handler that will be used
- * for processing incoming messages with that opcode.
- *
- * @param mapping the message handler mapping.
- */
- void addMethodReplyMessageHandlerMapping (MessageHandlerMapping mapping)
- {
- Character opcode = mapping.getOpcode();
- IMessageHandler handler = mapping.getMessageHandler();
- _methodReplyQueueHandlers.put(opcode, handler);
-
- LOGGER.info(Messages.QMAN_000008_METHOD_REPLY_HANDLER_MAPPING_CONFIGURED, opcode,handler.getClass().getName());
- }
-
- /**
- * Adds to this configuration a new broker connection data.
- *
- * @param brokerId the broker identifier.
- * @param connectionData the connection data.
- * @throws BrokerAlreadyConnectedException when the broker is already connected.
- * @throws BrokerConnectionException when a connection cannot be estabilished.
- */
- void addBrokerConnectionData (UUID brokerId, BrokerConnectionData connectionData) throws BrokerAlreadyConnectedException, BrokerConnectionException
- {
- if (_brokerConnectionInfos.containsValue(connectionData))
- {
- throw new BrokerAlreadyConnectedException(connectionData);
- }
-
- try
- {
- QpidDatasource.getInstance().addConnectionPool(brokerId, connectionData);
- _brokerConnectionInfos.put(brokerId,connectionData);
-
- LOGGER.info(Messages.QMAN_000009_BROKER_DATA_CONFIGURED,brokerId,connectionData);
- } catch(Exception exception)
- {
- throw new BrokerConnectionException(exception);
- }
-
- }
-
- /**
- * Header for command messages is created once because it only contains static values.
- */
- private void createHeaderForCommandMessages ()
- {
- ReplyTo replyTo=new ReplyTo();
- replyTo.setRoutingKey(_methodReplyQueueName);
- _messageProperties.setReplyTo(replyTo);
- _deliveryProperties.setRoutingKey(Names.AGENT_ROUTING_KEY);
- _headerForCommandMessages = new Header(_deliveryProperties, _messageProperties);
- }
-
- /**
- * Creates the name of the queues used by this service.
- * This is done because if a broker should be managed by one or more management client, then each of them
- * must have its own channels to communicate with.
- */
- private void defineQueueNames()
- {
- UUID uuid = UUID.randomUUID();
- _managementQueueName = Names.MANAGEMENT_QUEUE_PREFIX+uuid;
- _methodReplyQueueName = Names.METHOD_REPLY_QUEUE_PREFIX+uuid;
-
- LOGGER.debug(Messages.QMAN_200004_MANAGEMENT_QUEUE_NAME,_managementQueueName);
- LOGGER.debug(Messages.QMAN_200005_METHOD_REPLY_QUEUE_NAME,_methodReplyQueueName);
- }
-
- /**
- * Returns the worker manager thread pool size.
- *
- * @return the worker manager thread pool size.
- */
- public int getWorkerManagerPoolSize()
- {
- return _poolSize;
- }
-
- /**
- * Sets the size of the worker manager thread pool.
- *
- * @param poolSize the size of the worker manager thread pool.
- */
- void setWorkerManagerPoolSize(int poolSize)
- {
- this._poolSize = poolSize;
- }
-
- /**
- * Returns the maximum size of the worker manager
- * thread pool size.
- *
- * @return the max size of the worker manager thread pool.
- */
- public int getWorkerManagerMaxPoolSize()
- {
- return _maxPoolSize;
- }
-
- /**
- * Sets the maximum size of the worker manager
- * thread pool size.
- *
- * @param maxPoolSize the max size of the worker manager thread pool.
- */
- void setWorkerManagerMaxPoolSize(int maxPoolSize)
- {
- this._maxPoolSize = maxPoolSize;
- }
-
- /**
- * Returns the max amount of time that an excess thread
- * can be idle before purging from the pool.
- *
- * @return the max keep alive time.
- */
- public long getWorkerManagerKeepAliveTime()
- {
- return _keepAliveTime;
- }
-
- /**
- * Sets the max amount of time that an excess thread
- * can be idle before purging from the pool.
- *
- * @param keepAliveTime the max keep alive time.
- */
- void setWorkerManagerKeepAliveTime(long keepAliveTime)
- {
- this._keepAliveTime = keepAliveTime;
- }
-
- /**
- * Configures access mode mappings.
- * An access mode mapping is an association between a code and an access mode.
- */
- private void addAccessModeMappings() {
- addAccessModeMapping(1,AccessMode.RC);
- addAccessModeMapping(2,AccessMode.RW);
- addAccessModeMapping(3,AccessMode.RO);
- }
-
- /**
- * Configures type mappings.
- * A type mapping is an association between a code and a management type.
- */
- private void addTypeMappings()
- {
- addTypeMapping(1,new Uint8(),Names.NUMBER_VALIDATOR);
- addTypeMapping(2,new Uint16(),Names.NUMBER_VALIDATOR);
- addTypeMapping(3,new Uint32(),Names.NUMBER_VALIDATOR);
- addTypeMapping(4,new Uint64(),Names.NUMBER_VALIDATOR);
- addTypeMapping(6,new Str8(),Names.STRING_VALIDATOR);
- addTypeMapping(7,new Str16(),Names.STRING_VALIDATOR);
- addTypeMapping(8,new AbsTime());
- addTypeMapping(9,new DeltaTime());
- addTypeMapping(10,new ObjectReference());
- addTypeMapping(11,new org.apache.qpid.management.domain.model.type.Boolean());
- addTypeMapping(14,new org.apache.qpid.management.domain.model.type.Uuid());
- addTypeMapping(15,new org.apache.qpid.management.domain.model.type.Map());
- }
-} \ No newline at end of file