[210694] Port fix to 2.0
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
index 51bec16..5620247 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
@@ -250,8 +250,12 @@
 		if (projects != null) {
 			int size = projects.length;
 			for (int i = 0; i < size; i++) {
-				if (ServerPlugin.getProjectProperties(projects[i]).isServerProject())
+				if (ServerPlugin.getProjectProperties(projects[i]).isServerProject()) {
+					String projectName = projects[i].getName();
+					if (!serverProjects.contains(projectName))
+						serverProjects.add(projectName);
 					loadFromProject(projects[i]);
+				}
 			}
 		}
 		
@@ -541,8 +545,10 @@
 			while (iterator.hasNext()) {
 				Server server = (Server) iterator.next();
 				
-				IMemento child = memento.createChild("server");
-				server.save(child);
+				if (server.getFile() == null) {
+					IMemento child = memento.createChild("server");
+					server.save(child);
+				}
 			}
 			
 			memento.saveToFile(filename);
@@ -829,7 +835,7 @@
 				IServer server = loadServer(file, ProgressUtil.getSubMonitorFor(monitor, 1000));
 				if (server != null) {
 					if (getServer(server.getId()) == null)
-						registerServer(server);
+						addServer(server);
 					monitor.done();
 					return true;
 				}
@@ -950,7 +956,7 @@
 		
 		IServer server = findServer(file);
 		if (server != null) {
-			deregisterServer(server);
+			removeServer(server);
 			return true;
 		}
 		
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index 270fd2a..a6619de 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -249,7 +249,7 @@
 
 	protected void deleteFromFile() throws CoreException {
 		super.deleteFromFile();
-		ResourceManager.getInstance().deregisterServer(this);
+		ResourceManager.getInstance().removeServer(this);
 	}
 
 	protected void deleteFromMetadata() {
@@ -258,7 +258,7 @@
 
 	protected void saveToFile(IProgressMonitor monitor) throws CoreException {
 		super.saveToFile(monitor);
-		ResourceManager.getInstance().registerServer(this);
+		ResourceManager.getInstance().addServer(this);
 	}
 
 	protected void saveToMetadata(IProgressMonitor monitor) {