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()); } }