From c64ccfc5130fb93d5d640d72a03295bf2fbd3f8e Mon Sep 17 00:00:00 2001 From: Javier Montalvo Orus Date: Fri, 11 May 2007 10:48:49 +0000 Subject: [PATCH] Multicast address using URI notation --- .../schema/discoveryProtocol.exsd | 4 +++- .../discovery/protocol/ProtocolFactory.java | 20 +++++++++++++------ .../plugin.xml | 2 +- .../ServiceDiscoveryWizardMainPage.java | 4 ++++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd b/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd index 10011af150f..55ad103cbd0 100644 --- a/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd +++ b/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd @@ -64,7 +64,9 @@ - Allows specifying multicast addresses to be used with different transports in the format "transportName1#address1;transportName2#address2" + Allows specifying semicolon separated multicast addresses to be used with specific transports in the format <transport>:<address> +An example would be: +<code>"transportName1:address1;transportName2:address2;UDP:224.0.0.251"<code/> diff --git a/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/ProtocolFactory.java b/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/ProtocolFactory.java index e6b1dc64b2b..8087a612199 100644 --- a/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/ProtocolFactory.java +++ b/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/ProtocolFactory.java @@ -10,6 +10,8 @@ package org.eclipse.tm.discovery.protocol; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Vector; import org.eclipse.core.runtime.CoreException; @@ -142,15 +144,21 @@ public class ProtocolFactory { String[] pairs = multicastAddresses.split(";"); //$NON-NLS-1$ for (int j = 0; j < pairs.length; j++) { - String[] pair = pairs[j].split("#"); //$NON-NLS-1$ - if(pair[0].equals(transportName)) + + URI uri=null; + try { + uri = new URI(pairs[j]); + } catch (URISyntaxException e) {} + + if(uri!=null) { - multiCastAddress = pair[1]; - break; + if(uri.getScheme().equals(transportName)) + { + multiCastAddress = uri.getSchemeSpecificPart(); + break; + } } } - - } } return multiCastAddress; diff --git a/discovery/org.eclipse.tm.discovery.protocol.dnssd/plugin.xml b/discovery/org.eclipse.tm.discovery.protocol.dnssd/plugin.xml index acf66e48b93..077fd8792ff 100644 --- a/discovery/org.eclipse.tm.discovery.protocol.dnssd/plugin.xml +++ b/discovery/org.eclipse.tm.discovery.protocol.dnssd/plugin.xml @@ -15,7 +15,7 @@ Contributors: diff --git a/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardMainPage.java b/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardMainPage.java index 6d04a83e2d0..08fa803a663 100644 --- a/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardMainPage.java +++ b/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardMainPage.java @@ -133,6 +133,10 @@ public class ServiceDiscoveryWizardMainPage extends WizardPage { tempAddress = addressText.getText(); addressText.setText(multicastAddress); } + else + { + ((Button)src).setSelection(false); + } } else {