diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/IRSESystemType.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/IRSESystemType.java
index 11c8b0ed973..4560b5b5e30 100644
--- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/IRSESystemType.java
+++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/IRSESystemType.java
@@ -11,7 +11,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
- * {Name} (company) - description of contribution.
+ * Uwe Stieber (Wind River) - Extended system type -> subsystemConfiguration association.
********************************************************************************/
package org.eclipse.rse.core;
@@ -112,4 +112,18 @@ public interface IRSESystemType extends IAdaptable {
* @return the bundle which defines this system type or null
if none
*/
public Bundle getDefiningBundle();
+
+ /**
+ * Returns a list of fully qualified known subsystem configuration id's that
+ * this system type wants to be registered against. More subsystem configurations
+ * can be added through the subsystemConfigurations extension point.
+ *
+ * Note: The list returned here does not imply that the corresponding
+ * subsystem configurations exist. The list contains only possibilites not
+ * requirements.
+ *
+ * @return The list of subsystem configuration id or null
.
+ */
+ public String[] getSubsystemConfigurationIds();
+
}
\ No newline at end of file
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 36f698b33ec..f37fbe06e03 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
@@ -121,6 +121,15 @@ public class RSESystemType implements IRSESystemType {
return definingBundle;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.rse.core.IRSESystemType#getSubsystemConfigurationIds()
+ */
+ public String[] getSubsystemConfigurationIds() {
+ // We are not proposing any subsystem configuration here
+ // by default.
+ return null;
+ }
+
/**
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
diff --git a/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/internal/subsystems/SubSystemConfigurationProxy.java b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/internal/subsystems/SubSystemConfigurationProxy.java
index c64a4348485..76035ad58f9 100644
--- a/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/internal/subsystems/SubSystemConfigurationProxy.java
+++ b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/internal/subsystems/SubSystemConfigurationProxy.java
@@ -307,7 +307,9 @@ public class SubSystemConfigurationProxy implements ISubSystemConfigurationProxy
IRSESystemType[] systemTypes = RSECorePlugin.getDefault().getRegistry().getSystemTypes();
for (int i = 0; i < systemTypes.length; i++) {
IRSESystemType systemType = systemTypes[i];
- if (isMatchingDeclaredSystemTypes(systemType)) {
+ if (isMatchingDeclaredSystemTypes(systemType)
+ || (systemType.getSubsystemConfigurationIds() != null
+ && Arrays.asList(systemType.getSubsystemConfigurationIds()).contains(getId()))) {
resolvedSystemTypes.add(systemType.getName());
}
}