[404081] show in debug action does not always work 
[404078] deploy-name of EAR projects is ignored during deployment 
[404076] during publish, Run On Server action should be adaptable to
String and not only shell 
[404072] Run on server on starting server will not publish if the module
is changed
diff --git a/features/org.eclipse.jst.server_core.feature.patch/buildnotes_org.eclipse.jst.server_core.feature.patch.html b/features/org.eclipse.jst.server_core.feature.patch/buildnotes_org.eclipse.jst.server_core.feature.patch.html
index b9dffd7..c6d9b44 100644
--- a/features/org.eclipse.jst.server_core.feature.patch/buildnotes_org.eclipse.jst.server_core.feature.patch.html
+++ b/features/org.eclipse.jst.server_core.feature.patch/buildnotes_org.eclipse.jst.server_core.feature.patch.html
@@ -4,14 +4,14 @@
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="Build" content="Build">
-   <title>WTP 1.5.5 Patches</title>
+   <title>WTP 3.4.2 Patches</title>
 </head>
 
 <body>
 
-<h1>WTP 1.5.5 Patches</h1>
+<h1>WTP 3.4.2 Patches</h1>
 
 <h2>org.eclipse.jst.server_core.feature</h2>
+<p>Bug <a href='https://bugs.eclipse.org/404078'>404078</a>.  deploy-name of EAR projects is ignored during deployment</p>
 
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=274644'>274644</a>. JARs deployed wrongly within EAR</p>
 </body></html>
\ No newline at end of file
diff --git a/features/org.eclipse.jst.server_core.feature.patch/feature.properties b/features/org.eclipse.jst.server_core.feature.patch/feature.properties
index d7f7e4e..b4bce42 100644
--- a/features/org.eclipse.jst.server_core.feature.patch/feature.properties
+++ b/features/org.eclipse.jst.server_core.feature.patch/feature.properties
@@ -30,7 +30,7 @@
 \n\
 The fixes are described in the following bugzilla entries:\n\
 \n\
-Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=274644 JARs deployed wrongly within EAR\n\
+Bug https://bugs.eclipse.org/404078 deploy-name of EAR projects is ignored during deployment On completing <script> attributes, source is wrong inserted and re-formatted\n\
 \n\
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/features/org.eclipse.jst.server_core.feature.patch/feature.xml b/features/org.eclipse.jst.server_core.feature.patch/feature.xml
index 7d2fd77..0730fbf 100644
--- a/features/org.eclipse.jst.server_core.feature.patch/feature.xml
+++ b/features/org.eclipse.jst.server_core.feature.patch/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_core.feature.patch"
       label="%featureName"
-      version="1.5.5.qualifier"
+      version="3.4.2.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -18,7 +18,7 @@
    </license>
 
    <requires>
-      <import feature="org.eclipse.jst.server_core.feature" version="1.5.4.v200704150241--2PD88Q8PCH7787" patch="true"/>
+      <import feature="org.eclipse.jst.server_core.feature" version="3.4.0.v20120503_1042-31FEe8s73554A4Fa2153" patch="true"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.wst.server_core.feature.patch/feature.properties b/features/org.eclipse.wst.server_core.feature.patch/feature.properties
index 385a356..79f52af 100644
--- a/features/org.eclipse.wst.server_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.server_core.feature.patch/feature.properties
@@ -25,13 +25,12 @@
 
 # "description" property - description of the feature
 description=\
-A patch for Server tools framework core. \n\
-This patch fixes a problem with performance when there is a large number of projects \n\
-in a workspace. \n\
-See bug 187187 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=187187)) \n
-
-
-
+Contains fixes for the following bugs:\n\
+\n\
+Bug https://bugs.eclipse.org/404072 Run on server on starting server will not publish if the module is changed\n\
+Bug https://bugs.eclipse.org/404076 during publish, Run On Server action should be adaptable to String and not only shell\n\
+Bug https://bugs.eclipse.org/404081 show in debug action does not always work\n\
+\n\
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
 Copyright (c) 2006 IBM Corporation and others.\n\
diff --git a/features/org.eclipse.wst.server_core.feature.patch/feature.xml b/features/org.eclipse.wst.server_core.feature.patch/feature.xml
index 3acc6eb..a11b8e8 100644
--- a/features/org.eclipse.wst.server_core.feature.patch/feature.xml
+++ b/features/org.eclipse.wst.server_core.feature.patch/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_core.feature.patch"
       label="Patch Feature for Server Core"
-      version="1.0.0.qualifier"
+      version="3.4.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
@@ -18,7 +18,7 @@
    </license>
 
    <requires>
-      <import feature="org.eclipse.wst.server_core.feature" version="1.5.4.v200704150133-----1G955H5G5Ep" patch="true"/>
+      <import feature="org.eclipse.wst.server_core.feature" version="3.3.200.v20121107_1651-33F8S8s7357385Ja2251" patch="true"/>
    </requires>
 
    <plugin
@@ -28,4 +28,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.wst.server.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
index 7c403d2..bc64234 100644
--- a/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.core; singleton:=true
-Bundle-Version: 1.0.700.qualifier
+Bundle-Version: 1.0.701.qualifier
 Bundle-Activator: org.eclipse.jst.server.generic.core.internal.CorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
index 67ced10..3e34add 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
@@ -1,5 +1,5 @@
 /***************************************************************************************************
- * Copyright (c) 2005, 2009 Eteration A.S. and Gorkem Ercan. All rights reserved. This program and the
+ * Copyright (c) 2005, 2013 Eteration A.S. and Gorkem Ercan. All rights reserved. This program and the
  * accompanying materials are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
@@ -20,6 +20,7 @@
 import java.util.Map;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
+
 import org.eclipse.ant.ui.launching.IAntLaunchConfigurationConstants;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -52,6 +53,7 @@
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IModuleArtifact;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerUtil;
 import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
 import org.osgi.framework.Bundle;
 
@@ -319,16 +321,16 @@
 	}
 
 	private String guessModuleName(IModule module) {
-		String moduleName = module.getName();
+		String deployName = ServerUtil.getModuleDisplayName(module); 
 		if ("jst.web".equals(getModuleTypeId())) { //$NON-NLS-1$
 			IWebModule webModule = (IWebModule) getModule()[0].loadAdapter(IWebModule.class, null);
 			if (webModule == null) {
-				return module.getName();
+				return deployName;
 			}
 			String contextRoot = webModule.getURI(module);
-			moduleName = contextRoot.substring(0, contextRoot.lastIndexOf('.'));
+			deployName = contextRoot.substring(0, contextRoot.lastIndexOf('.'));
 		}
-		return moduleName;
+		return deployName;
 	}
 
 	private String guessContextRoot(IModule module) {
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
index 2d43153..43406a8 100644
--- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true
-Bundle-Version: 1.4.100.qualifier
+Bundle-Version: 1.5.0.qualifier
 Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
index 75ba379..b977e68 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2003, 2012 IBM Corporation and others.
+ * Copyright (c) 2003, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -137,6 +137,21 @@
 	}
 
 	/**
+	 * Get the display name of a given module
+	 * @return the display name
+	 * @since 1.5
+	 */
+	public static String getModuleDisplayName(IModule curModule) {
+		if (curModule instanceof IModule2) {
+			String displayProp = ((IModule2)curModule).getProperty(IModule2.PROP_DISPLAY_NAME);
+			if (displayProp != null) {
+				return displayProp;
+			}
+		}
+		return curModule.getName();
+	}
+
+	/**
 	 * Return all the available modules from all factories whose
 	 * type matches the given module types.
 	 * <p>
@@ -796,4 +811,5 @@
 	public static ISchedulingRule getServerSchedulingRule(IServer server) {
 		return server;
 	}
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
index 8f648e8..9ff0ce6 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2011 IBM Corporation and others.
+ * Copyright (c) 2003, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,16 +10,20 @@
  *******************************************************************************/
 package org.eclipse.wst.server.core.internal;
 
+import java.util.Map;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.server.core.*;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IModuleType;
+import org.eclipse.wst.server.core.IModule2;
 import org.eclipse.wst.server.core.model.ModuleDelegate;
 /**
  * 
  */
-public class Module implements IModule {
+public class Module implements IModule2 {
 	protected String id;
 	protected String name;
 	protected ModuleFactory factory;
@@ -28,6 +32,8 @@
 	protected ModuleDelegate delegate;
 	protected String id2;
 
+	protected Map<String, String> properties;
+	
 	/**
 	 * Module constructor.
 	 * 
@@ -39,6 +45,20 @@
 	 * @param project
 	 */
 	public Module(ModuleFactory factory, String id, String name, String type, String version, IProject project) {
+		this(factory, id, name, type, version, project, null);
+	}
+	
+	/**
+	 * Module constructor with properties
+	 * 
+	 * @param factory
+	 * @param id
+	 * @param name
+	 * @param type
+	 * @param version
+	 * @param project
+	 */
+	public Module(ModuleFactory factory, String id, String name, String type, String version, IProject project, Map<String, String> properties) {
 		super();
 		this.factory = factory;
 		this.project = project;
@@ -50,6 +70,7 @@
 		else
 			id2 = ":";
 		id2 += id;
+		this.properties = properties;
 	}
 
 	/**
@@ -268,4 +289,12 @@
 	public String toString() {
 		return "Module[" + name + "," + id2 + "]";
 	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.IModule2#getProperty(java.lang.String)
+	 */
+	public String getProperty(String key) {
+		return properties == null || key == null ? null : properties.get(key);
+	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java
index fe57cc5..f526df4 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2010 IBM Corporation and others.
+ * Copyright (c) 2004, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -123,6 +124,25 @@
 	}
 
 	/**
+	 * Creates a module instance with the given static information,
+	 * including a map of properties. 
+	 * 
+	 * This method is used by module factory delegates to create module instances.
+	 * 
+	 * @param id the module id
+	 * @param name the module name
+	 * @param type the module type id
+	 * @param version the module version id
+	 * @param project the project that the module is contained in
+	 * @param properties a map of key/value pairs for additional information
+	 * @return a module instance
+	 * @since 1.5
+	 */
+	protected final IModule createModule(String id, String name, String type, String version, IProject project, Map<String, String> properties) {
+		return new Module(factory, id, name, type, version, project, properties);
+	}
+
+	/**
 	 * Creates the module delegate for a module with the given information.
 	 * This method is called when a client needs to access the module delegate
 	 * associated with the given module.
diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 80374d1..c954ae2 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true
-Bundle-Version: 1.4.101.qualifier
+Bundle-Version: 1.4.102.qualifier
 Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerLabelProvider.java
index e295e81..d781cf8 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerLabelProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2011 IBM Corporation and others.
+ * Copyright (c) 2003, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -251,8 +251,7 @@
 			return decorate(module.getName(), modules);
 		} else if (element instanceof ModuleServer) {
 			ModuleServer ms = (ModuleServer) element;
-			IModule module = ms.module[ms.module.length - 1];
-			return decorate(module.getName(), ms);
+			return decorate(ms.getModuleDisplayName(), ms);
 		} else if (element instanceof IWorkbenchAdapter) {
 			return ((IWorkbenchAdapter) element).getLabel(null);
 		}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
index d3a1ecd..3b9450a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
@@ -190,7 +190,7 @@
 		if (module != null) {
 			IModule[] modules = module.getModule();
 			IModule m = modules[modules.length - 1];
-			sText.setText("<b>" + m.getName() + "</b>");
+			sText.setText("<b>" + ServerUtil.getModuleDisplayName(m) + "</b>");
 			//sText.setText("<b>" + m.getName() + "</b></p>" + m.getModuleType().getName());
 			
 			StyledText sText2 = new StyledText(parent, SWT.NONE);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
index 1d3cfe8..e02c394 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
@@ -207,7 +207,9 @@
 			public Object getAdapter(Class adapter) {
 				if (Shell.class.equals(adapter))
 					return shell;
-				return null;
+				if (String.class.equals(adapter))
+					return "user";
+ 				return null;
 			}
 		};
 		
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
index 76f8228..18ad553 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
@@ -140,8 +140,19 @@
 		IModule[] modules = new IModule[] { module }; // TODO: get parent hierarchy correct
 		int state = server.getServerState();
 		if (state == IServer.STATE_STARTING) {
-			LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);
-			clientJob.schedule();
+			final LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);
+			final IServer server2 = server;
+			if (server2.shouldPublish()) {
+				server2.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+					public void done(IStatus result) {
+						if (result.isOK()){
+							clientJob.schedule();
+						}
+					}
+				});
+			}else{
+				clientJob.schedule();
+			}
 		} else if (state == IServer.STATE_STARTED) {
 			boolean restart = false;
 			String mode = server.getMode();
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
index 5a355c8..5d14c08 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008,2010 IBM Corporation and others.
+ * Copyright (c) 2008,2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -44,9 +44,7 @@
 			ModuleServer ms = (ModuleServer) element;
 			if (ms.module == null)
 				return "";
-			int size = ms.module.length;
-			String name = ms.module[size - 1].getName();
-			return name;
+			return ms.getModuleDisplayName();
 		}
 		
 		if( element instanceof IServer ) {
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ModuleServer.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ModuleServer.java
index bdffa04..d26fb88 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ModuleServer.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ModuleServer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
 
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerUtil;
 import org.eclipse.wst.server.ui.IServerModule;
 /**
  * A utility class for referencing a server and a module at the same time.
@@ -57,7 +58,19 @@
 	public IModule[] getModule() {
 		return module;
 	}
-
+	
+	/**
+	 * Get the display name of the module of this module server.
+	 * @return the display name
+	 */
+	public String getModuleDisplayName() {
+		int size = module.length;
+		if (size == 0) {
+			return null;
+		}
+		return ServerUtil.getModuleDisplayName(module[size - 1]);
+	}
+	
 	/**
 	 * @see Object#equals(Object)
 	 */
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
index 71952c9..0048e68 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
@@ -118,6 +118,8 @@
 						public Object getAdapter(Class adapter) {
 							if (Shell.class.equals(adapter))
 								return shell;
+		                    if (String.class.equals(adapter))
+		                        return "user";
 							return null;
 						}
 					};
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInDebugAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInDebugAction.java
index 415bf50..1e32f56 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInDebugAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInDebugAction.java
@@ -77,6 +77,7 @@
 				if (part != null) {
 					IDebugView view = (IDebugView)part.getAdapter(IDebugView.class);
 					if (view != null) {
+						page.activate(part);
 						view.setFocus();
 						Viewer viewer = view.getViewer();
 						if (viewer != null) {
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
index 94a1145..1e487d3 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2012 IBM Corporation and others.
+ * Copyright (c) 2003, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -510,7 +510,7 @@
 				if (e1 instanceof ModuleServer && e2 instanceof ModuleServer) {
 					ModuleServer s1 = (ModuleServer) e1;
 					ModuleServer s2 = (ModuleServer) e2;
-					return (s1.module[s1.module.length - 1].getName().compareToIgnoreCase(s2.module[s2.module.length - 1].getName()));
+					return (s1.getModuleDisplayName().compareToIgnoreCase(s2.getModuleDisplayName()));
 				}
 				
 				return super.compare(viewer, e1, e2);