[225020] Launchable delegate ordering fix
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
index 89b2ab5..60e638b 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
@@ -540,7 +540,7 @@
}
}
- // sort by index to put lower numbers first in order
+ // sort by priority to put higher numbers first
size = list.size();
for (int i = 0; i < size-1; i++) {
for (int j = i+1; j < size; j++) {
@@ -577,7 +577,7 @@
}
}
- // sort by index to put lower numbers first in order
+ // sort by priority to put higher numbers first
size = list.size();
for (int i = 0; i < size-1; i++) {
for (int j = i+1; j < size; j++) {
diff --git a/plugins/org.eclipse.wst.server.ui/plugin.xml b/plugins/org.eclipse.wst.server.ui/plugin.xml
index d916e02..f181339 100644
--- a/plugins/org.eclipse.wst.server.ui/plugin.xml
+++ b/plugins/org.eclipse.wst.server.ui/plugin.xml
@@ -270,13 +270,6 @@
class="org.eclipse.wst.server.ui.internal.WebLaunchableClient"/>
</extension>
-<extension point="org.eclipse.ui.perspectiveExtensions">
- <perspectiveExtension
- targetID="org.eclipse.wst.server.ui.perspective">
- <actionSet id="org.eclipse.wst.webbrowser.actionSet"/>
- </perspectiveExtension>
-</extension>
-
<extension point="org.eclipse.wst.server.core.internalStartup">
<startup
id="org.eclipse.wst.server.ui.startup"
@@ -501,8 +494,9 @@
<extension point="org.eclipse.wst.server.core.launchableAdapters">
<launchableAdapter
- class="org.eclipse.wst.server.ui.internal.ServerUIPlugin$DefaultLaunchableAdapter"
- id="org.eclipse.wst.server.ui.launchable.adapter.default"/>
+ class="org.eclipse.wst.server.ui.internal.ServerUIPlugin$DefaultLaunchableAdapter"
+ id="org.eclipse.wst.server.ui.launchable.adapter.default"
+ priority="-999999"/>
</extension>
</plugin>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/LaunchClientJob.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/LaunchClientJob.java
index e7d2ffa..4de77ac 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/LaunchClientJob.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/LaunchClientJob.java
@@ -73,7 +73,7 @@
// display client on UI thread
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- Trace.trace(Trace.FINEST, "Attempting to load client: " + client);
+ Trace.trace(Trace.FINEST, "Attempting to load client: " + client.getId());
try {
Object launchable = launchableAdapter.getLaunchable(server, moduleArtifact);
IStatus status = client.launch(server, launchable, launchMode, server.getLaunch());
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPlugin.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPlugin.java
index f5aa057..f254a13 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPlugin.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPlugin.java
@@ -73,6 +73,13 @@
public static final byte STOP = 1;
//public static final byte RESTART = 2;
+ public static class DefaultLaunchableAdapter extends LaunchableAdapterDelegate {
+ public static final String ID = "org.eclipse.wst.server.ui.launchable.adapter.default";
+ public Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) {
+ return "launchable";
+ }
+ }
+
// singleton instance of this class
private static ServerUIPlugin singleton;
@@ -480,9 +487,13 @@
try {
IWorkbench workbench = ServerUIPlugin.getInstance().getWorkbench();
IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
+ if (workbenchWindow == null) {
+ Trace.trace(Trace.FINER, "No active workbench window");
+ return;
+ }
+
IWorkbenchPage page = workbenchWindow.getActivePage();
-
+
IViewPart view2 = page.findView(VIEW_ID);
if (view2 != null) {
@@ -496,7 +507,7 @@
} else
page.showView(VIEW_ID);
} catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error opening TCP/IP view", e);
+ Trace.trace(Trace.SEVERE, "Error opening Servers view", e);
}
}
});
@@ -858,9 +869,6 @@
}
public static Object[] getLaunchableAdapter(IServer server, IModuleArtifact moduleArtifact) throws CoreException {
- ILaunchableAdapter launchableAdapter = null;
- Object launchable = null;
-
ILaunchableAdapter[] adapters = ServerPlugin.getLaunchableAdapters();
if (adapters != null) {
int size2 = adapters.length;
@@ -870,38 +878,24 @@
try {
Object launchable2 = adapter.getLaunchable(server, moduleArtifact);
Trace.trace(Trace.FINEST, "adapter= " + adapter + ", launchable= " + launchable2);
- if (launchable2 != null) {
- launchableAdapter = adapter;
- launchable = launchable2;
- }
+ if (launchable2 != null)
+ return new Object[] { adapter, launchable2 };
} catch (CoreException ce) {
lastStatus = ce.getStatus();
} catch (Exception e) {
Trace.trace(Trace.SEVERE, "Error in launchable adapter", e);
}
}
- if (launchable == null && lastStatus != null)
+ if (lastStatus != null)
throw new CoreException(lastStatus);
}
- if (launchable == null) {
- launchableAdapter = ServerPlugin.findLaunchableAdapter(DefaultLaunchableAdapter.ID);
-
- try {
- launchable = launchableAdapter.getLaunchable(server, moduleArtifact);
- } catch (CoreException ce) {
- // ignore
- }
- }
+
+ // backup
+ ILaunchableAdapter launchableAdapter = ServerPlugin.findLaunchableAdapter(DefaultLaunchableAdapter.ID);
+ Object launchable = launchableAdapter.getLaunchable(server, moduleArtifact);
return new Object[] { launchableAdapter, launchable };
}
- public static class DefaultLaunchableAdapter extends LaunchableAdapterDelegate {
- public static final String ID = "org.eclipse.wst.server.ui.launchable.adapter.default";
- public Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) {
- return "launchable";
- }
- }
-
public static Object[] adaptLabelChangeObjects(Object[] obj) {
if (obj == null)
return obj;
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 0d577b1..35b8265 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
@@ -291,31 +291,31 @@
client = wizard.getSelectedClient();
launchableAdapter = wizard.getLaunchableAdapter();
}
-
+
// if there is no client, use a dummy
- if (client == null){
- client = new IClient() {
- public String getDescription() {
- return Messages.clientDefaultDescription;
- }
+ if (client == null) {
+ client = new IClient() {
+ public String getDescription() {
+ return Messages.clientDefaultDescription;
+ }
- public String getId() {
- return "org.eclipse.wsth.server.ui.client.default";
- }
+ public String getId() {
+ return "org.eclipse.wst.server.ui.client.default";
+ }
- public String getName() {
- return Messages.clientDefaultName;
- }
+ public String getName() {
+ return Messages.clientDefaultName;
+ }
- public IStatus launch(IServer server3, Object launchable2, String launchMode3, ILaunch launch) {
- return Status.OK_STATUS;
- }
+ public IStatus launch(IServer server3, Object launchable2, String launchMode3, ILaunch launch) {
+ return Status.OK_STATUS;
+ }
- public boolean supports(IServer server3, Object launchable2, String launchMode3) {
- return true;
- }
- };
- }
+ public boolean supports(IServer server3, Object launchable2, String launchMode3) {
+ return true;
+ }
+ };
+ }
if (moduleArtifact instanceof ModuleArtifactDelegate) {
boolean canLoad = false;