You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2007/03/21 13:54:11 UTC
svn commit: r520870 - in
/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker:
BrokerRegistry.java BrokerService.java
Author: rajdavies
Date: Wed Mar 21 05:54:10 2007
New Revision: 520870
URL: http://svn.apache.org/viewvc?view=rev&rev=520870
Log:
If localhost broker not started and other named broker exists - use that from vm:// transport instead of creating a new broker
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerRegistry.java
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerRegistry.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerRegistry.java?view=diff&rev=520870&r1=520869&r2=520870
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerRegistry.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerRegistry.java Wed Mar 21 05:54:10 2007
@@ -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;
}
-
}
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java?view=diff&rev=520870&r1=520869&r2=520870
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java Wed Mar 21 05:54:10 2007
@@ -100,7 +100,7 @@
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;