001 /*
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements. See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership. The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License. You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied. See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 *
020 */
021 package org.apache.qpid.server.configuration;
022
023 import java.util.HashMap;
024 import java.util.Iterator;
025 import java.util.List;
026 import java.util.Map;
027
028 import org.apache.commons.configuration.CompositeConfiguration;
029 import org.apache.commons.configuration.Configuration;
030 import org.apache.commons.configuration.ConfigurationException;
031 import org.apache.qpid.server.registry.ApplicationRegistry;
032 import org.apache.qpid.server.store.MemoryMessageStore;
033
034 public class VirtualHostConfiguration
035 {
036 private Configuration _config;
037 private String _name;
038 private Map<String, QueueConfiguration> _queues = new HashMap<String, QueueConfiguration>();
039 private Map<String, ExchangeConfiguration> _exchanges = new HashMap<String, ExchangeConfiguration>();
040
041
042 public VirtualHostConfiguration(String name, Configuration config) throws ConfigurationException
043 {
044 _config = config;
045 _name = name;
046
047 Iterator i = _config.getList("queues.queue.name").iterator();
048
049 while (i.hasNext())
050 {
051 String queueName = (String) i.next();
052 CompositeConfiguration mungedConf = new CompositeConfiguration();
053 mungedConf.addConfiguration(_config.subset("queues.queue." + queueName));
054 mungedConf.addConfiguration(_config.subset("queues"));
055 _queues.put(queueName, new QueueConfiguration(queueName, mungedConf));
056 }
057
058 i = _config.getList("exchanges.exchange.name").iterator();
059 int count = 0;
060 while (i.hasNext())
061 {
062 CompositeConfiguration mungedConf = new CompositeConfiguration();
063 mungedConf.addConfiguration(config.subset("exchanges.exchange(" + count++ + ")"));
064 mungedConf.addConfiguration(_config.subset("exchanges"));
065 String exchName = (String) i.next();
066 _exchanges.put(exchName, new ExchangeConfiguration(exchName, mungedConf));
067 }
068 }
069
070 public String getName()
071 {
072 return _name;
073 }
074
075 public long getHousekeepingExpiredMessageCheckPeriod()
076 {
077 return _config.getLong("housekeeping.expiredMessageCheckPeriod", ApplicationRegistry.getInstance().getConfiguration().getHousekeepingExpiredMessageCheckPeriod());
078 }
079
080 public String getAuthenticationDatabase()
081 {
082 return _config.getString("security.authentication.name");
083 }
084
085 public List getCustomExchanges()
086 {
087 return _config.getList("custom-exchanges.class-name");
088 }
089
090 public SecurityConfiguration getSecurityConfiguration()
091 {
092 return new SecurityConfiguration(_config.subset("security"));
093 }
094
095 public Configuration getStoreConfiguration()
096 {
097 return _config.subset("store");
098 }
099
100 public String getRoutingTableClass()
101 {
102 return _config.getString("routingtable.class");
103 }
104
105 public String getTransactionLogClass()
106 {
107 return _config.getString("store.class", MemoryMessageStore.class.getName());
108 }
109
110 public List getExchanges()
111 {
112 return _config.getList("exchanges.exchange.name");
113 }
114
115 public ExchangeConfiguration getExchangeConfiguration(String exchangeName)
116 {
117 return _exchanges.get(exchangeName);
118 }
119
120 public String[] getQueueNames()
121 {
122 return _queues.keySet().toArray(new String[_queues.size()]);
123 }
124
125 public QueueConfiguration getQueueConfiguration(String queueName)
126 {
127 return _queues.get(queueName);
128 }
129
130 }
|