diff --git a/discovery/org.eclipse.rse.discovery/plugin.xml b/discovery/org.eclipse.rse.discovery/plugin.xml
index c49abbc48c5..640bc298731 100644
--- a/discovery/org.eclipse.rse.discovery/plugin.xml
+++ b/discovery/org.eclipse.rse.discovery/plugin.xml
@@ -19,8 +19,30 @@ Contributors:
class="org.eclipse.rse.discovery.ServiceDiscoveryWizardDelegate"
systemType="org.eclipse.rse.systemtype.discovery"/>
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java
new file mode 100644
index 00000000000..40d7729aca7
--- /dev/null
+++ b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java
@@ -0,0 +1,60 @@
+/********************************************************************************
+ * Copyright (c) 2006 Symbian Software Ltd. All rights reserved.
+ * This program and the accompanying materials are made available under the terms
+ * of the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Javier Montalvo Orús (Symbian) - initial API and implementation
+ ********************************************************************************/
+
+package org.eclipse.rse.discovery;
+
+import org.eclipse.rse.core.filters.ISystemFilterPool;
+import org.eclipse.rse.core.filters.ISystemFilterPoolManager;
+import org.eclipse.rse.core.model.IHost;
+import org.eclipse.rse.core.subsystems.IConnectorService;
+import org.eclipse.rse.core.subsystems.ISubSystem;
+import org.eclipse.rse.core.subsystems.SubSystemConfiguration;
+
+/**
+ * Configuration for an empty Discovery SubSystemConfiguration
+ * to allow listing discovery in the RSE Wizard
+ *
+ */
+public class ServiceDiscoverySubSystemConfiguration extends SubSystemConfiguration {
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#createDefaultFilterPool(org.eclipse.rse.core.filters.ISystemFilterPoolManager)
+ */
+ protected ISystemFilterPool createDefaultFilterPool(
+ ISystemFilterPoolManager mgr) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#createSubSystemInternal(org.eclipse.rse.core.model.IHost)
+ */
+ public ISubSystem createSubSystemInternal(IHost conn) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#supportsServerLaunchProperties(org.eclipse.rse.core.model.IHost)
+ */
+ public boolean supportsServerLaunchProperties(IHost host) {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.rse.core.subsystems.ISubSystemConfiguration#getConnectorService(org.eclipse.rse.core.model.IHost)
+ */
+ public IConnectorService getConnectorService(IHost host) {
+ return null;
+ }
+
+}
diff --git a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java
index f238aedccf7..6cacf549301 100644
--- a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java
+++ b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java
@@ -23,6 +23,7 @@ import org.eclipse.jface.wizard.Wizard;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.IPropertySet;
import org.eclipse.rse.ui.RSEUIPlugin;
+import org.eclipse.rse.ui.actions.SystemRefreshAllAction;
import org.eclipse.tm.discovery.model.Pair;
import org.eclipse.tm.discovery.model.Service;
import org.eclipse.tm.discovery.model.ServiceType;
@@ -78,6 +79,8 @@ public class ServiceDiscoveryWizard extends Wizard {
*/
public boolean performFinish() {
+ SystemRefreshAllAction systemRefreshAllAction = new SystemRefreshAllAction(null);
+
String[] addresses = serviceDiscoveryPage.getAddresses();
for (int i = 0; i < addresses.length; i++) {
@@ -94,24 +97,28 @@ public class ServiceDiscoveryWizard extends Wizard {
try {
conn = RSEUIPlugin.getDefault().getSystemRegistry().createHost(sysTypeString, service.getName() + "@" + hostName, hostName, "Discovered "+sysTypeString+" server in "+hostName); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (conn != null) {
- //copy discovered properties to RSE model
- IPropertySet ps = conn.getConnectorServices()[0].createPropertySet(Messages.ServiceDiscoveryWizard_DiscoveryPropertySet);
- Iterator pairIterator = service.getPair().iterator();
- while (pairIterator.hasNext()) {
- Pair pair = (Pair) pairIterator.next();
- ps.addProperty(pair.getKey(), pair.getValue());
-
- //add port to the RSE connection
- if (pair.getKey().equalsIgnoreCase(Messages.ServiceDiscoveryWizard_Port)) {
- conn.getConnectorServices()[0].setPort(Integer.parseInt(pair.getValue()));
+
+ if (conn != null) {
+ //copy discovered properties to RSE model
+ IPropertySet ps = conn.getConnectorServices()[0].createPropertySet(Messages.ServiceDiscoveryWizard_DiscoveryPropertySet);
+ Iterator pairIterator = service.getPair().iterator();
+ while (pairIterator.hasNext()) {
+ Pair pair = (Pair) pairIterator.next();
+ ps.addProperty(pair.getKey(), pair.getValue());
+
+ //add port to the RSE connection
+ if (pair.getKey().equalsIgnoreCase(Messages.ServiceDiscoveryWizard_Port)) {
+ conn.getConnectorServices()[0].setPort(Integer.parseInt(pair.getValue()));
+ }
}
+ RSEUIPlugin.getDefault().getSystemRegistry().expandHost(conn);
}
- RSEUIPlugin.getDefault().getSystemRegistry().expandHost(conn);
+ } catch (Exception e) {
+ if (conn != null) {
+ RSEUIPlugin.getDefault().getSystemRegistry().deleteHost(conn);
+ }
+ } finally {
+ systemRefreshAllAction.run();
}
}