Author: rajdavies
Date: Thu Sep  4 22:47:40 2008
New Revision: 692340

URL: http://svn.apache.org/viewvc?rev=692340&view=rev
Log:
Apply patch for https://issues.apache.org/activemq/browse/AMQ-1489

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java?rev=692340&r1=692339&r2=692340&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
 Thu Sep  4 22:47:40 2008
@@ -49,6 +49,11 @@
 public class MulticastDiscoveryAgent implements DiscoveryAgent, Runnable {
 
     public static final String DEFAULT_DISCOVERY_URI_STRING = 
"multicast://239.255.2.3:6155";
+    public static final String DEFAULT_HOST_STR = "default"; 
+    public static final String DEFAULT_HOST_IP  = "239.255.2.3"; 
+    public static final int    DEFAULT_PORT  = 6155; 
+    
+    
     private static final Log LOG = 
LogFactory.getLog(MulticastDiscoveryAgent.class);
     private static final String TYPE_SUFFIX = "ActiveMQ-4.";
     private static final String ALIVE = "alive.";
@@ -257,7 +262,9 @@
      * @throws Exception
      */
     public void start() throws Exception {
-        if (started.compareAndSet(false, true)) {
+       
+        if (started.compareAndSet(false, true)) {              
+                               
             if (group == null || group.length() == 0) {
                 throw new IOException("You must specify a group to discover");
             }
@@ -266,12 +273,33 @@
                 LOG.warn("The type '" + type + "' should end with '.' to be a 
valid Discovery type");
                 type += ".";
             }
+            
             if (discoveryURI == null) {
                 discoveryURI = new URI(DEFAULT_DISCOVERY_URI_STRING);
             }
-            this.inetAddress = InetAddress.getByName(discoveryURI.getHost());
-            this.sockAddress = new InetSocketAddress(this.inetAddress, 
discoveryURI.getPort());
-            mcast = new MulticastSocket(discoveryURI.getPort());
+            
+            if (LOG.isTraceEnabled()) 
+                       LOG.trace("start - discoveryURI = " + discoveryURI);    
                                  
+                 
+                 String myHost = discoveryURI.getHost();
+                 int    myPort = discoveryURI.getPort(); 
+                    
+                 if( DEFAULT_HOST_STR.equals(myHost) ) 
+                       myHost = DEFAULT_HOST_IP;                         
+                 
+                 if(myPort < 0 )
+                   myPort = DEFAULT_PORT;                  
+                 
+                 if (LOG.isTraceEnabled()) {
+                       LOG.trace("start - myHost = " + myHost); 
+                       LOG.trace("start - myPort = " + myPort);        
+                       LOG.trace("start - myHost = " + myHost); 
+                       LOG.trace("start - group  = " + group );                
                
+                 }     
+                 
+            this.inetAddress = InetAddress.getByName(myHost);
+            this.sockAddress = new InetSocketAddress(this.inetAddress, myPort);
+            mcast = new MulticastSocket(myPort);
             mcast.setLoopbackMode(loopBackMode);
             mcast.setTimeToLive(getTimeToLive());
             mcast.joinGroup(inetAddress);

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java?rev=692340&r1=692339&r2=692340&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java
 Thu Sep  4 22:47:40 2008
@@ -25,25 +25,31 @@
 import org.apache.activemq.util.IOExceptionSupport;
 import org.apache.activemq.util.IntrospectionSupport;
 import org.apache.activemq.util.URISupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public class MulticastDiscoveryAgentFactory extends DiscoveryAgentFactory {
+       
+         private static final Log LOG = 
LogFactory.getLog(MulticastDiscoveryAgentFactory.class); 
 
-    //See AMQ-1489. There's something wrong here but it is difficult to tell 
what.
-    //It looks like to actually set the discovery URI you have to use 
something like
-    //<transportConnector uri="..." 
discoveryUri="multicast://239.3.7.0:37000?discoveryURI=multicast://239.3.7.0:37000"
 />
-    // or
-    //<networkConnector name="..." 
uri="multicast://239.3.7.0:37000?discoveryURI=multicast://239.3.7.0:37000">
+    
     protected DiscoveryAgent doCreateDiscoveryAgent(URI uri) throws 
IOException {
         try {
+               
+                 if (LOG.isTraceEnabled()) {      
+               LOG.trace("doCreateDiscoveryAgent: uri = " + uri.toString());   
            
+            }
             
-            Map options = URISupport.parseParamters(uri);
-            MulticastDiscoveryAgent rc = new MulticastDiscoveryAgent();
-            rc.setGroup(uri.getHost());
-
-            // allow the discoveryURI to be set via a query argument on the URI
-            // ?discoveryURI=someURI
-            IntrospectionSupport.setProperties(rc, options);
-            return rc;
+            MulticastDiscoveryAgent mda = new MulticastDiscoveryAgent();       
   
+            
+            mda.setDiscoveryURI(uri);            
+                        
+            // allow MDA's params to be set via query arguments  
+            // (e.g., multicast://default?group=foo             
+            Map options = URISupport.parseParamters(uri);         
+            IntrospectionSupport.setProperties(mda, options);
+            
+            return mda;
             
         } catch (Throwable e) {
             throw IOExceptionSupport.create("Could not create discovery agent: 
" + uri, e);


Reply via email to