mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-19 14:15:50 +02:00
[185752] use systemTypeId instead of systemTypeName when persisting profiles.
This commit is contained in:
parent
7c41349015
commit
2bfb3ccad2
3 changed files with 30 additions and 15 deletions
|
@ -287,6 +287,7 @@ public class RSEDOMExporter implements IRSEDOMExporter {
|
||||||
|
|
||||||
if (clean || node.isDirty()) {
|
if (clean || node.isDirty()) {
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_TYPE, host.getSystemType().getName());
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_TYPE, host.getSystemType().getName());
|
||||||
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_SYSTEM_TYPE, host.getSystemType().getId());
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_OFFLINE, getBooleanString(host.isOffline()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_OFFLINE, getBooleanString(host.isOffline()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_PROMPTABLE, getBooleanString(host.isPromptable()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_PROMPTABLE, getBooleanString(host.isPromptable()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_HOSTNAME, host.getHostName());
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_HOSTNAME, host.getHostName());
|
||||||
|
@ -317,11 +318,7 @@ public class RSEDOMExporter implements IRSEDOMExporter {
|
||||||
public RSEDOMNode createNode(RSEDOMNode parent, IConnectorService connectorService, boolean clean) {
|
public RSEDOMNode createNode(RSEDOMNode parent, IConnectorService connectorService, boolean clean) {
|
||||||
RSEDOMNode node = findOrCreateNode(parent, IRSEDOMConstants.TYPE_CONNECTOR_SERVICE, connectorService, clean);
|
RSEDOMNode node = findOrCreateNode(parent, IRSEDOMConstants.TYPE_CONNECTOR_SERVICE, connectorService, clean);
|
||||||
if (clean || node.isDirty()) {
|
if (clean || node.isDirty()) {
|
||||||
// store it's attributes
|
// can't do this until connector service owns the properties (right now it's still subsystem)
|
||||||
IRSESystemType systemType = connectorService.getHost().getSystemType();
|
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_TYPE, systemType.getName());
|
|
||||||
|
|
||||||
// can't do this til connector service owns the properties (right now it's still subsystem)
|
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_GROUP, connectorService.getName());
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_GROUP, connectorService.getName());
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_USE_SSL, getBooleanString(connectorService.isUsingSSL()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_USE_SSL, getBooleanString(connectorService.isUsingSSL()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_PORT, Integer.toString(connectorService.getPort()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_PORT, Integer.toString(connectorService.getPort()));
|
||||||
|
|
|
@ -18,6 +18,7 @@ package org.eclipse.rse.internal.persistence.dom;
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
|
import org.eclipse.rse.core.IRSECoreRegistry;
|
||||||
import org.eclipse.rse.core.IRSESystemType;
|
import org.eclipse.rse.core.IRSESystemType;
|
||||||
import org.eclipse.rse.core.RSECorePlugin;
|
import org.eclipse.rse.core.RSECorePlugin;
|
||||||
import org.eclipse.rse.core.filters.ISystemFilter;
|
import org.eclipse.rse.core.filters.ISystemFilter;
|
||||||
|
@ -101,17 +102,24 @@ public class RSEDOMImporter {
|
||||||
|
|
||||||
// get host node attributes
|
// get host node attributes
|
||||||
String connectionName = hostNode.getName();
|
String connectionName = hostNode.getName();
|
||||||
String systemTypeName = hostNode.getAttribute(IRSEDOMConstants.ATTRIBUTE_TYPE).getValue();
|
String systemTypeName = getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_TYPE);
|
||||||
String hostName = hostNode.getAttribute(IRSEDOMConstants.ATTRIBUTE_HOSTNAME).getValue();
|
String systemTypeId = getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_SYSTEM_TYPE);
|
||||||
String description = hostNode.getAttribute(IRSEDOMConstants.ATTRIBUTE_DESCRIPTION).getValue();
|
String hostName = getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_HOSTNAME);
|
||||||
boolean isOffline = getBooleanValue(hostNode.getAttribute(IRSEDOMConstants.ATTRIBUTE_OFFLINE).getValue());
|
String description = getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_DESCRIPTION);
|
||||||
boolean isPromptable = getBooleanValue(hostNode.getAttribute(IRSEDOMConstants.ATTRIBUTE_PROMPTABLE).getValue());
|
boolean isOffline = getBooleanValue(getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_OFFLINE));
|
||||||
|
boolean isPromptable = getBooleanValue(getAttributeValue(hostNode, IRSEDOMConstants.ATTRIBUTE_PROMPTABLE));
|
||||||
|
|
||||||
// create host and set it's attributes
|
// create host and set it's attributes
|
||||||
try {
|
try {
|
||||||
// NOTE create host effectively recreates the subsystems
|
// NOTE create host effectively recreates the subsystems
|
||||||
// so instead of creating subsystems on restore, we should be updating their properties
|
// so instead of creating subsystems on restore, we should be updating their properties
|
||||||
IRSESystemType systemType = RSECorePlugin.getDefault().getRegistry().getSystemType(systemTypeName);
|
IRSECoreRegistry registry = RSECorePlugin.getDefault().getRegistry();
|
||||||
|
IRSESystemType systemType = null;
|
||||||
|
if (systemTypeId != null) {
|
||||||
|
systemType = registry.getSystemTypeById(systemTypeId);
|
||||||
|
} else if (systemTypeName != null) {
|
||||||
|
systemType = registry.getSystemType(systemTypeName);
|
||||||
|
}
|
||||||
host = profile.createHost(systemType, connectionName, hostName, description);
|
host = profile.createHost(systemType, connectionName, hostName, description);
|
||||||
host.setOffline(isOffline);
|
host.setOffline(isOffline);
|
||||||
host.setPromptable(isPromptable);
|
host.setPromptable(isPromptable);
|
||||||
|
@ -158,11 +166,11 @@ public class RSEDOMImporter {
|
||||||
RSEDOMNode ssChild = ssChildren[s];
|
RSEDOMNode ssChild = ssChildren[s];
|
||||||
ISubSystem subSystem = restoreSubSystem(host, ssChild);
|
ISubSystem subSystem = restoreSubSystem(host, ssChild);
|
||||||
if (subSystem != null && service == null) {
|
if (subSystem != null && service == null) {
|
||||||
ISubSystemConfiguration factory = subSystem.getSubSystemConfiguration();
|
ISubSystemConfiguration subsystemConfiguration = subSystem.getSubSystemConfiguration();
|
||||||
service = factory.getConnectorService(host);
|
service = subsystemConfiguration.getConnectorService(host);
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
if (factory.supportsServerLaunchProperties(host)) {
|
if (subsystemConfiguration.supportsServerLaunchProperties(host)) {
|
||||||
IServerLauncherProperties sl = factory.createServerLauncher(service);
|
IServerLauncherProperties sl = subsystemConfiguration.createServerLauncher(service);
|
||||||
if (sl != null) {
|
if (sl != null) {
|
||||||
// get server launcher properties
|
// get server launcher properties
|
||||||
// right now we just set them for subsystem, but later that will change
|
// right now we just set them for subsystem, but later that will change
|
||||||
|
@ -470,4 +478,13 @@ public class RSEDOMImporter {
|
||||||
private ISubSystemConfiguration getSubSystemConfiguration(String subsystemName) {
|
private ISubSystemConfiguration getSubSystemConfiguration(String subsystemName) {
|
||||||
return _registry.getSubSystemConfiguration(subsystemName);
|
return _registry.getSubSystemConfiguration(subsystemName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getAttributeValue(RSEDOMNode node, String attributeName) {
|
||||||
|
String result = null;
|
||||||
|
RSEDOMNodeAttribute attribute = node.getAttribute(attributeName);
|
||||||
|
if (attribute != null) {
|
||||||
|
result = attribute.getValue();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -47,6 +47,7 @@ public interface IRSEDOMConstants {
|
||||||
public static final String ATTRIBUTE_HOSTNAME = "hostname"; //$NON-NLS-1$
|
public static final String ATTRIBUTE_HOSTNAME = "hostname"; //$NON-NLS-1$
|
||||||
public static final String ATTRIBUTE_OFFLINE = "offline"; //$NON-NLS-1$
|
public static final String ATTRIBUTE_OFFLINE = "offline"; //$NON-NLS-1$
|
||||||
public static final String ATTRIBUTE_DESCRIPTION = "description"; //$NON-NLS-1$
|
public static final String ATTRIBUTE_DESCRIPTION = "description"; //$NON-NLS-1$
|
||||||
|
public static final String ATTRIBUTE_SYSTEM_TYPE = "systemType"; //$NON-NLS-1$
|
||||||
|
|
||||||
// ConnectorService attributes
|
// ConnectorService attributes
|
||||||
public static final String ATTRIBUTE_GROUP = "group"; //$NON-NLS-1$
|
public static final String ATTRIBUTE_GROUP = "group"; //$NON-NLS-1$
|
||||||
|
|
Loading…
Add table
Reference in a new issue