Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.jst.server.generic.core/plugin.xml2
-rw-r--r--plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.java1
-rw-r--r--plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.properties1
-rw-r--r--plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerLaunchConfigurationDelegate.java16
4 files changed, 19 insertions, 1 deletions
diff --git a/plugins/org.eclipse.jst.server.generic.core/plugin.xml b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
index a1bb37b1f..723f523a2 100644
--- a/plugins/org.eclipse.jst.server.generic.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
@@ -10,7 +10,7 @@
id="org.eclipse.jst.server.generic.core.launchConfigurationType"
name="%launchConfigurationTypeName"
delegate="org.eclipse.jst.server.generic.core.internal.GenericServerLaunchConfigurationDelegate"
- modes="run, debug"
+ modes="run, debug, profile"
sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
sourcePathComputerId="org.eclipse.jst.server.generic.core.sourcePathComputer"/>
<launchConfigurationType
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.java
index d3f9f7f90..93e72cb93 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.java
@@ -29,6 +29,7 @@ public class GenericServerCoreMessages extends NLS{
public static String errorRemoveModuleAntpublisher;
public static String errorPublishAntpublisher;
public static String commandlineUnspecified;
+ public static String noProfiler;
public static String workingdirUnspecified;
public static String errorLaunchingExecutable;
public static String missingServer;
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.properties b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.properties
index 36e088b9e..763914e0e 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.properties
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerCoreMessages.properties
@@ -28,3 +28,4 @@ runModeNotSupported= Selected VM does not support this mode
unableToCreatePublisher=Unable to create publisher {0}
canNotPublishDeletedModule=Can not publish because module {0} is closed or deleted
antLauncherMissing=Ant launcher is missing or disabled
+noProfiler=Could not launch in profiling mode because no profilers are configured.
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerLaunchConfigurationDelegate.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerLaunchConfigurationDelegate.java
index e35d6bb82..ad64ffae9 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerLaunchConfigurationDelegate.java
@@ -17,12 +17,15 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;
import org.eclipse.jdt.launching.ExecutionArguments;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.IVMRunner;
import org.eclipse.jdt.launching.VMRunnerConfiguration;
+import org.eclipse.jst.server.core.internal.JavaServerPlugin;
+import org.eclipse.jst.server.core.internal.ServerProfiler;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.ServerUtil;
import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
@@ -57,6 +60,10 @@ public class GenericServerLaunchConfigurationDelegate extends AbstractJavaLaunch
String mainTypeName = genericServer.getStartClassName();
IVMInstall vm = verifyVMInstall(configuration);
IVMRunner runner = vm.getVMRunner(mode);
+
+ if(runner==null && mode == ILaunchManager.PROFILE_MODE){
+ runner = vm.getVMRunner(ILaunchManager.RUN_MODE);
+ }
if(runner== null){
throw new CoreException(new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,0,GenericServerCoreMessages.runModeNotSupported,null));
}
@@ -69,6 +76,15 @@ public class GenericServerLaunchConfigurationDelegate extends AbstractJavaLaunch
String pgmArgs = getProgramArguments(configuration);
String vmArgs = getVMArguments(configuration);
+ if (mode == ILaunchManager.PROFILE_MODE) {
+ ServerProfiler[] sp = JavaServerPlugin.getServerProfilers();
+ if (sp == null || sp.length==0 || runner == null) {
+ genericServer.stopImpl();
+ throw new CoreException(new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.noProfiler, null));
+ }
+ String vmArgs2 = sp[0].getVMArgs(); //$NON-NLS-1$
+ vmArgs = vmArgs + " " + vmArgs2; //$NON-NLS-1$
+ }
ExecutionArguments execArgs = new ExecutionArguments(vmArgs,
pgmArgs);

Back to the top