[160677] Remove duplicate info from publish.xml
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
index c47d79b..0a368e9 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
@@ -101,18 +101,18 @@
 			String mv = memento.getString(MODULE_TYPE_VERSION);
 			if (mt != null && mt.length() > 0)
 				moduleType = new ModuleType(mt, mv);
-	
-			resources = loadResource(memento);
+			
+			resources = loadResource(memento, new Path(""));
 		} catch (Exception e) {
 			Trace.trace(Trace.WARNING, "Could not load module publish info information: " + e.getMessage());
 		}
 	}
 
-	protected IModuleResource[] loadResource(IMemento memento) {
+	protected IModuleResource[] loadResource(IMemento memento, IPath path) {
 		if (memento == null)
 			return new IModuleResource[0];
 		
-		List list = new ArrayList(5);
+		List list = new ArrayList(10);
 		
 		// load files
 		IMemento[] children = memento.getChildren(FILE);
@@ -120,7 +120,6 @@
 			int size = children.length;
 			for (int i = 0; i < size; i++) {
 				String name2 = children[i].getString(NAME);
-				IPath path = new Path(children[i].getString(PATH));
 				long stamp = Long.parseLong(children[i].getString(STAMP));
 				ModuleFile file = new ModuleFile(name2, path, stamp);
 				list.add(file);
@@ -133,9 +132,8 @@
 			int size = children.length;
 			for (int i = 0; i < size; i++) {
 				String name2 = children[i].getString(NAME);
-				IPath path = new Path(children[i].getString(PATH));
 				ModuleFolder folder = new ModuleFolder(null, name2, path);
-				folder.setMembers(loadResource(children[i]));
+				folder.setMembers(loadResource(children[i], path.append(name2)));
 				list.add(folder);
 			}
 		}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
index 73e2695..8d25264 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
@@ -32,6 +32,8 @@
  * were published and when) for a single server.
  */
 public class ServerPublishInfo {
+	private static final String VERSION = "version";
+
 	protected IPath path;
 
 	// map of module ids to ModulePublishInfo
@@ -222,6 +224,10 @@
 
 		try {
 			IMemento memento2 = XMLMemento.loadMemento(filename);
+			Float f = memento2.getFloat(VERSION);
+			if (f != null && f.floatValue() >= 3)
+				return;
+			
 			IMemento[] children = memento2.getChildren("module");
 	
 			int size = children.length;
@@ -243,7 +249,8 @@
 	
 		try {
 			XMLMemento memento = XMLMemento.createWriteRoot("server");
-
+			memento.putString(VERSION, "1.0");
+			
 			Iterator iterator = modulePublishInfo.keySet().iterator();
 			while (iterator.hasNext()) {
 				String controlRef = (String) iterator.next();