diff --git a/rse/plugins/org.eclipse.rse.core/schema/systemTypes.exsd b/rse/plugins/org.eclipse.rse.core/schema/systemTypes.exsd
index eb21c1363f7..49ec7c56b7f 100644
--- a/rse/plugins/org.eclipse.rse.core/schema/systemTypes.exsd
+++ b/rse/plugins/org.eclipse.rse.core/schema/systemTypes.exsd
@@ -6,13 +6,7 @@
* Note: The list returned here does not imply that the corresponding
- * subsystem configurations exist. The list contains only possibilites not
+ * subsystem configurations exist. The list contains only possibilites not,
* requirements.
*
* @return The list of subsystem configuration id or null
.
diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/internal/RSESystemType.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/internal/RSESystemType.java
index f37fbe06e03..f614279a847 100644
--- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/internal/RSESystemType.java
+++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/internal/RSESystemType.java
@@ -16,6 +16,9 @@
package org.eclipse.rse.core.internal;
import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
@@ -35,13 +38,15 @@ public class RSESystemType implements IRSESystemType {
private static final String ATTR_ICONLIVE = "iconLive"; //$NON-NLS-1$
private static final String ATTR_ENABLEOFFLINE = "enableOffline"; //$NON-NLS-1$
private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
+ private static final String ATTR_SUBSYSTEMCONFIGURATIONS = "subsystemConfigurationIds"; //$NON-NLS-1$
- String id = null;
- String name = null;
- String description = null;
- HashMap properties;
- Bundle definingBundle = null;
-
+ private String id = null;
+ private String name = null;
+ private String description = null;
+ private Map properties;
+ private Bundle definingBundle = null;
+ private String[] subsystemConfigurationIds;
+
/**
* Constructor for an object representing a system type.
* @param element the configuration element describing the system type
@@ -60,8 +65,20 @@ public class RSESystemType implements IRSESystemType {
if (iconLive != null) properties.put(IRSESystemTypeConstants.ICON_LIVE, iconLive);
String enableOffline = element.getAttribute(ATTR_ENABLEOFFLINE);
if (enableOffline != null) properties.put(IRSESystemTypeConstants.ENABLE_OFFLINE, enableOffline);
-
+
definingBundle = Platform.getBundle(element.getContributor().getName());
+
+ List subsystemConfigs = new LinkedList();
+ String attribute = element.getAttribute(ATTR_SUBSYSTEMCONFIGURATIONS);
+ if (attribute != null) {
+ // split the list of subsystem configuration ids.
+ String[] splitted = attribute.split(";"); //$NON-NLS-1$
+ // normalize the list of subsystem configuration ids
+ for (int i = 0; i < splitted.length; i++) {
+ subsystemConfigs.add(splitted[i].trim());
+ }
+ }
+ subsystemConfigurationIds = (String[])subsystemConfigs.toArray(new String[subsystemConfigs.size()]);
}
/**
@@ -125,9 +142,7 @@ public class RSESystemType implements IRSESystemType {
* @see org.eclipse.rse.core.IRSESystemType#getSubsystemConfigurationIds()
*/
public String[] getSubsystemConfigurationIds() {
- // We are not proposing any subsystem configuration here
- // by default.
- return null;
+ return subsystemConfigurationIds;
}
/**