mirror of https://github.com/apache/activemq.git
If localhost broker not started and other named broker exists - use that from vm:// transport instead of creating a new broker
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@520870 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c328c72472
commit
a2aed3d732
|
@ -1,73 +1,94 @@
|
|||
/**
|
||||
*
|
||||
* 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
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.broker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
* @version $Revision: 1.3 $
|
||||
*/
|
||||
public class BrokerRegistry {
|
||||
public class BrokerRegistry{
|
||||
|
||||
static final private BrokerRegistry instance = new BrokerRegistry();
|
||||
|
||||
public static BrokerRegistry getInstance() {
|
||||
private static final Log log=LogFactory.getLog(BrokerRegistry.class);
|
||||
static final private BrokerRegistry instance=new BrokerRegistry();
|
||||
|
||||
public static BrokerRegistry getInstance(){
|
||||
return instance;
|
||||
}
|
||||
private final Object mutex=new Object();
|
||||
private final HashMap<String,BrokerService> brokers=new HashMap<String,BrokerService>();
|
||||
|
||||
private final Object mutex = new Object();
|
||||
private final HashMap brokers = new HashMap();
|
||||
|
||||
public BrokerService lookup(String brokerName) {
|
||||
synchronized(mutex) {
|
||||
return (BrokerService)brokers.get(brokerName);
|
||||
/**
|
||||
* @param brokerName
|
||||
* @return the BrokerService
|
||||
*/
|
||||
public BrokerService lookup(String brokerName){
|
||||
BrokerService result=null;
|
||||
synchronized(mutex){
|
||||
result=brokers.get(brokerName);
|
||||
if(result==null&&brokerName!=null&&brokerName.equals(BrokerService.DEFAULT_BROKER_NAME)){
|
||||
result=findFirst();
|
||||
if(result!=null){
|
||||
log.warn("Broker localhost not started so using "+result.getBrokerName()+" instead");
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first registered broker found
|
||||
* @return the first BrokerService
|
||||
*/
|
||||
public BrokerService findFirst() {
|
||||
synchronized(mutex) {
|
||||
Iterator iter = brokers.values().iterator();
|
||||
while (iter.hasNext()) {
|
||||
return (BrokerService) iter.next();
|
||||
public BrokerService findFirst(){
|
||||
synchronized(mutex){
|
||||
Iterator<BrokerService> iter=brokers.values().iterator();
|
||||
while(iter.hasNext()){
|
||||
return iter.next();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void bind(String brokerName, BrokerService broker) {
|
||||
synchronized(mutex) {
|
||||
brokers.put(brokerName, broker);
|
||||
/**
|
||||
* @param brokerName
|
||||
* @param broker
|
||||
*/
|
||||
public void bind(String brokerName,BrokerService broker){
|
||||
synchronized(mutex){
|
||||
brokers.put(brokerName,broker);
|
||||
}
|
||||
}
|
||||
|
||||
public void unbind(String brokerName) {
|
||||
synchronized(mutex) {
|
||||
|
||||
/**
|
||||
* @param brokerName
|
||||
*/
|
||||
public void unbind(String brokerName){
|
||||
synchronized(mutex){
|
||||
brokers.remove(brokerName);
|
||||
}
|
||||
}
|
||||
|
||||
public Object getRegistryMutext() {
|
||||
/**
|
||||
* @return the mutex used
|
||||
*/
|
||||
public Object getRegistryMutext(){
|
||||
return mutex;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ public class BrokerService implements Service, Serializable {
|
|||
private static final Log log = LogFactory.getLog(BrokerService.class);
|
||||
private static final long serialVersionUID = 7353129142305630237L;
|
||||
public static final String DEFAULT_PORT = "61616";
|
||||
public static final String DEFAULT_BROKER_NAME = "localhost";
|
||||
static final String DEFAULT_BROKER_NAME = "localhost";
|
||||
public static final String LOCAL_HOST_NAME;
|
||||
|
||||
private boolean useJmx = true;
|
||||
|
|
Loading…
Reference in New Issue