mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
Use Eclipse 3.o API to find the fragment location.
This commit is contained in:
parent
50f8f8a971
commit
7c2f688b9a
2 changed files with 26 additions and 30 deletions
|
@ -1,3 +1,10 @@
|
|||
2004-02-17 Alain Magloire
|
||||
|
||||
Remove old Eclipse2.0 interface and
|
||||
use what 3.0 provides instead.
|
||||
|
||||
* src/org/eclipse/cdt/internal/core/win32/ProcessList.java
|
||||
|
||||
2004-02-12 Alex Chapiro
|
||||
|
||||
Update starter and spawner to use named pipes.
|
||||
|
|
|
@ -5,7 +5,6 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -13,10 +12,9 @@ import org.eclipse.cdt.core.CCorePlugin;
|
|||
import org.eclipse.cdt.core.IProcessInfo;
|
||||
import org.eclipse.cdt.core.IProcessList;
|
||||
import org.eclipse.cdt.utils.spawner.ProcessFactory;
|
||||
import org.eclipse.core.boot.BootLoader;
|
||||
import org.eclipse.core.runtime.IPluginDescriptor;
|
||||
import org.eclipse.core.runtime.model.PluginDescriptorModel;
|
||||
import org.eclipse.core.runtime.model.PluginFragmentModel;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
|
||||
/*
|
||||
* Currently this will only work for Windows XP since tasklist
|
||||
|
@ -33,33 +31,23 @@ public class ProcessList implements IProcessList {
|
|||
Process p = null;
|
||||
String command = null;
|
||||
InputStream in = null;
|
||||
IPluginDescriptor desc = CCorePlugin.getDefault().getDescriptor();
|
||||
if (desc instanceof PluginDescriptorModel) {
|
||||
PluginDescriptorModel model = (PluginDescriptorModel) desc;
|
||||
PluginFragmentModel[] fragments = model.getFragments();
|
||||
for (int i = 0; i < fragments.length; i++) {
|
||||
String location = fragments[i].getLocation();
|
||||
try {
|
||||
URL url = new URL(location + "/os/" + BootLoader.getOS() + "/" + BootLoader.getOSArch());
|
||||
File path = new File(url.getFile(), "listtasks.exe");
|
||||
if (path.exists()) {
|
||||
command = path.getCanonicalPath();
|
||||
break;
|
||||
}
|
||||
} catch (MalformedURLException e1) {
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (command != null) {
|
||||
try {
|
||||
IPluginDescriptor desc = CCorePlugin.getDefault().getDescriptor();
|
||||
try {
|
||||
URL url = desc.find(new Path("$os$/listtasks.exe"));
|
||||
url = Platform.resolve(url);
|
||||
String path = url.getFile();
|
||||
File file = new File(path);
|
||||
if (file.exists()) {
|
||||
command = file.getCanonicalPath();
|
||||
if (command != null) {
|
||||
p = ProcessFactory.getFactory().exec(command);
|
||||
in = p.getInputStream();
|
||||
InputStreamReader reader = new InputStreamReader(in);
|
||||
return parseListTasks(reader);
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
return NOPROCESS;
|
||||
}
|
||||
|
||||
|
@ -73,11 +61,12 @@ public class ProcessList implements IProcessList {
|
|||
if (tab != -1) {
|
||||
String proc = line.substring(0, tab).trim();
|
||||
String name = line.substring(tab).trim();
|
||||
try {
|
||||
int pid = Integer.parseInt(proc);
|
||||
processList.add(new ProcessInfo(pid, name));
|
||||
} catch (NumberFormatException e) {
|
||||
name = null;
|
||||
if (proc.length() > 0 && name.length() > 0) {
|
||||
try {
|
||||
int pid = Integer.parseInt(proc);
|
||||
processList.add(new ProcessInfo(pid, name));
|
||||
} catch (NumberFormatException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue