blob: 58fdc99dd34af33504130f3405bfdcaab88264db [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.qpid.server.registry;
import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.common.ServerPropertyNames;
import org.apache.qpid.server.configuration.BrokerConfig;
import org.apache.qpid.server.configuration.BrokerConfigType;
import org.apache.qpid.server.configuration.ConfigStore;
import org.apache.qpid.server.configuration.ConfiguredObject;
import org.apache.qpid.server.configuration.SystemConfig;
import org.apache.qpid.server.configuration.VirtualHostConfig;
import org.apache.qpid.server.virtualhost.VirtualHost;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
public class BrokerConfigAdapter implements BrokerConfig
{
private final IApplicationRegistry _instance;
private SystemConfig _system;
private final Map<UUID, VirtualHostConfig> _vhosts = new ConcurrentHashMap<UUID, VirtualHostConfig>();
private final long _createTime = System.currentTimeMillis();
private UUID _id;
private String _federationTag;
public BrokerConfigAdapter(final IApplicationRegistry instance)
{
_instance = instance;
_id = instance.getConfigStore().createId();
_federationTag = UUID.randomUUID().toString();
}
public void setSystem(final SystemConfig system)
{
_system = system;
}
public SystemConfig getSystem()
{
return _system;
}
public Integer getPort()
{
List ports = _instance.getConfiguration().getPorts();
if(ports.size() > 0)
{
return Integer.valueOf(ports.get(0).toString());
}
else
{
return 0;
}
}
public Integer getWorkerThreads()
{
return _instance.getConfiguration().getConnectorProcessors();
}
public Integer getMaxConnections()
{
return 0;
}
public Integer getConnectionBacklogLimit()
{
return 0;
}
public Long getStagingThreshold()
{
return 0L;
}
public Integer getManagementPublishInterval()
{
return 10000;
}
public String getVersion()
{
return QpidProperties.getReleaseVersion() + " [Build: " + QpidProperties.getBuildVersion() + "]";
}
public String getDataDirectory()
{
return _instance.getConfiguration().getQpidWork();
}
public void addVirtualHost(final VirtualHostConfig virtualHost)
{
virtualHost.setBroker(this);
_vhosts.put(virtualHost.getId(), virtualHost);
getConfigStore().addConfiguredObject(virtualHost);
}
private ConfigStore getConfigStore()
{
return _instance.getConfigStore();
}
public long getCreateTime()
{
return _createTime;
}
public void createBrokerConnection(final String transport,
final String host,
final int port,
final boolean durable,
final String authMechanism,
final String username,
final String password)
{
VirtualHost vhost = _instance.getVirtualHostRegistry().getDefaultVirtualHost();
vhost.createBrokerConnection(transport, host, port, "", durable, authMechanism, username, password);
}
public UUID getId()
{
return _id;
}
public BrokerConfigType getConfigType()
{
return BrokerConfigType.getInstance();
}
public ConfiguredObject getParent()
{
return _system;
}
public boolean isDurable()
{
return false;
}
public String getFederationTag()
{
return _federationTag;
}
/**
* @see org.apache.qpid.server.configuration.BrokerConfig#getFeatures()
*/
public List<String> getFeatures()
{
final List<String> features = new ArrayList<String>();
if (!_instance.getConfiguration().getDisabledFeatures().contains(ServerPropertyNames.FEATURE_QPID_JMS_SELECTOR))
{
features.add(ServerPropertyNames.FEATURE_QPID_JMS_SELECTOR);
}
return Collections.unmodifiableList(features);
}
@Override
public String toString()
{
return "BrokerConfigAdapter{" +
"_id=" + _id +
", _system=" + _system +
", _vhosts=" + _vhosts +
", _createTime=" + _createTime +
", _federationTag='" + _federationTag + '\'' +
'}';
}
}