diff options
author | mkuppe | 2008-06-03 10:42:06 +0000 |
---|---|---|
committer | mkuppe | 2008-06-03 10:42:06 +0000 |
commit | 6439087d3d9d99d3fa12b9e5b905e817a18fe168 (patch) | |
tree | 8794e77f212e73f2f278b9fc3cc56f4357e6aac7 | |
parent | 195fa5896afd7d8592906a1f5e7cc3e8b2bbd69a (diff) | |
download | org.eclipse.ecf-6439087d3d9d99d3fa12b9e5b905e817a18fe168.tar.gz org.eclipse.ecf-6439087d3d9d99d3fa12b9e5b905e817a18fe168.tar.xz org.eclipse.ecf-6439087d3d9d99d3fa12b9e5b905e817a18fe168.zip |
RESOLVED - bug 235115: [Discovery][SLP] JSLPDiscoveryContainer.getServiceInfo(IServiceID) does not fully honor IServiceID.getServiceName()
https://bugs.eclipse.org/bugs/show_bug.cgi?id=235115
FORWARD PORT from Revision_2_0
3 files changed, 6 insertions, 30 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/container/JSLPDiscoveryContainer.java b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/container/JSLPDiscoveryContainer.java index a8ee52f00..cf8ca572a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/container/JSLPDiscoveryContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/container/JSLPDiscoveryContainer.java @@ -11,8 +11,6 @@ package org.eclipse.ecf.provider.jslp.container; import ch.ethz.iks.slp.*; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.*; import java.util.Map.Entry; import org.eclipse.core.runtime.Assert; @@ -125,14 +123,8 @@ public class JSLPDiscoveryContainer extends AbstractDiscoveryContainerAdapter im Trace.catching(Activator.PLUGIN_ID, JSLPDebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "getServiceInfo(IServiceID)", e1); //$NON-NLS-1$ continue; } - String host = serviceInfo.getLocation().getHost(); - try { - if (InetAddress.getByName(host).equals(sid.getAddress())) { - return serviceInfo; - } - } catch (UnknownHostException e) { - Trace.catching(Activator.PLUGIN_ID, JSLPDebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "getServiceInfo(IServiceID)", e); //$NON-NLS-1$ - continue; + if (service.getName().equals(sid.getName())) { + return serviceInfo; } } return null; diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java index 49745b265..1b1cb69f3 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPNamespace.java @@ -13,6 +13,7 @@ package org.eclipse.ecf.provider.jslp.identity; import ch.ethz.iks.slp.ServiceType; import ch.ethz.iks.slp.ServiceURL; import org.eclipse.ecf.core.identity.*; +import org.eclipse.ecf.core.util.StringUtils; import org.eclipse.ecf.discovery.identity.*; import org.eclipse.ecf.internal.provider.jslp.Messages; @@ -38,8 +39,10 @@ public class JSLPNamespace extends Namespace { // create by jSLP ServiceURL } else if (parameters[0] instanceof ServiceURL) { ServiceURL anURL = (ServiceURL) parameters[0]; + // https://bugs.eclipse.org/235115 + String[] name = StringUtils.split(anURL.getHost(), "@"); //$NON-NLS-1$ IServiceTypeID stid = new JSLPServiceTypeID(this, anURL, (String[]) parameters[1]); - return new JSLPServiceID(this, stid, anURL.getHost()); + return new JSLPServiceID(this, stid, name.length == 2 ? name[1] : name[0]); // conversion call where conversion isn't necessary } else if (parameters[0] instanceof JSLPServiceID) { diff --git a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPServiceID.java b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPServiceID.java index 5f7421b56..530692007 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPServiceID.java +++ b/providers/bundles/org.eclipse.ecf.provider.jslp/src/org/eclipse/ecf/provider/jslp/identity/JSLPServiceID.java @@ -10,14 +10,9 @@ ******************************************************************************/ package org.eclipse.ecf.provider.jslp.identity; -import java.net.InetAddress; -import java.net.UnknownHostException; import org.eclipse.ecf.core.identity.Namespace; -import org.eclipse.ecf.core.util.Trace; import org.eclipse.ecf.discovery.identity.IServiceTypeID; import org.eclipse.ecf.discovery.identity.ServiceID; -import org.eclipse.ecf.internal.provider.jslp.Activator; -import org.eclipse.ecf.internal.provider.jslp.JSLPDebugOptions; public class JSLPServiceID extends ServiceID { private static final long serialVersionUID = -8211896244921087422L; @@ -25,18 +20,4 @@ public class JSLPServiceID extends ServiceID { JSLPServiceID(Namespace namespace, IServiceTypeID type, String name) { super(namespace, type, name); } - - public InetAddress getAddress() { - try { - return InetAddress.getByName(name); - } catch (UnknownHostException e) { - Trace.catching(Activator.PLUGIN_ID, JSLPDebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "getAddress()", e); //$NON-NLS-1$ - try { - return InetAddress.getLocalHost(); - } catch (UnknownHostException e1) { - Trace.catching(Activator.PLUGIN_ID, JSLPDebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "getAddress()", e1); //$NON-NLS-1$ - } - } - return null; - } } |