Author: yradtsevich
Date: 2011-12-01 14:44:27 -0500 (Thu, 01 Dec 2011)
New Revision: 36845
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim.eclipse/src/org/jboss/tools/vpe/browsersim/eclipse/util/BrowserSimLauncher.java
Log:
https://issues.jboss.org/browse/JBIDE-9539 : Browsersim app for testing mobile/desktop web
apps
- modified launcher to find swt bundles related to eclipse home dir
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim.eclipse/src/org/jboss/tools/vpe/browsersim/eclipse/util/BrowserSimLauncher.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim.eclipse/src/org/jboss/tools/vpe/browsersim/eclipse/util/BrowserSimLauncher.java 2011-12-01
19:24:47 UTC (rev 36844)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim.eclipse/src/org/jboss/tools/vpe/browsersim/eclipse/util/BrowserSimLauncher.java 2011-12-01
19:44:27 UTC (rev 36845)
@@ -13,6 +13,7 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -26,32 +27,32 @@
public class BrowserSimLauncher {
public static void launchBrowserSim(String initialUrl) {
String pathSeparator = System.getProperty("path.separator");
-
- String classPath = getBundleLocation("org.jboss.tools.vpe.browsersim")
- + pathSeparator +
getBundleLocation("org.jboss.tools.vpe.browsersim.browser")
- + pathSeparator + getBundleLocation("org.eclipse.swt")
- + pathSeparator + getBundleLocation("org.eclipse.swt." +
PlatformUtil.CURRENT_PLATFORM);
- String javaCommand = System.getProperty("java.home") +
"/bin/java";
-
- List<String> commandElements = new ArrayList<String>();
- commandElements.add(javaCommand);
- if (Platform.OS_MACOSX.equals(Platform.getOS())) {
- commandElements.add("-XstartOnFirstThread");
- if (Platform.ARCH_X86.equals(Platform.getOSArch())) {
- commandElements.add("-d32");
+ try {
+ String classPath = getBundleLocation("org.jboss.tools.vpe.browsersim")
+ + pathSeparator +
getBundleLocation("org.jboss.tools.vpe.browsersim.browser")
+ + pathSeparator + getBundleLocation("org.eclipse.swt")
+ + pathSeparator + getBundleLocation("org.eclipse.swt." +
PlatformUtil.CURRENT_PLATFORM);
+ String javaCommand = System.getProperty("java.home") +
"/bin/java";
+
+ List<String> commandElements = new ArrayList<String>();
+ commandElements.add(javaCommand);
+ if (Platform.OS_MACOSX.equals(Platform.getOS())) {
+ commandElements.add("-XstartOnFirstThread");
+ if (Platform.ARCH_X86.equals(Platform.getOSArch())) {
+ commandElements.add("-d32");
+ }
}
- }
-
- commandElements.add("-cp");
- commandElements.add(classPath);
- commandElements.add("org.jboss.tools.vpe.browsersim.ui.BrowserSim");
- if (initialUrl != null) {
- commandElements.add(initialUrl);
- }
+
+ commandElements.add("-cp");
+ commandElements.add(classPath);
+ commandElements.add("org.jboss.tools.vpe.browsersim.ui.BrowserSim");
+ if (initialUrl != null) {
+ commandElements.add(initialUrl);
+ }
- try {
ProcessBuilder processBuilder = new ProcessBuilder(commandElements);
processBuilder.directory(ConfigurationScope.INSTANCE.getLocation().toFile());
+
Process browserSimProcess = processBuilder.start();
final InputStream errorStream = browserSimProcess.getErrorStream();
@@ -85,8 +86,10 @@
}
}
- private static String getBundleLocation(String symbolicName) {
+ private static String getBundleLocation(String symbolicName) throws IOException {
+ String eclipseHome = new
URL(System.getProperty("eclipse.home.location")).getFile();
String locationId = Platform.getBundle(symbolicName).getLocation();
+
File bundleLocation;
if (locationId.startsWith("reference:file:")) {
bundleLocation = new
File(locationId.substring("reference:file:".length()));
@@ -94,6 +97,10 @@
bundleLocation = new File(locationId);
}
+ if (!bundleLocation.isAbsolute()) {
+ bundleLocation = new File(eclipseHome, bundleLocation.getPath());
+ }
+
if (bundleLocation.isDirectory()) {
File binDirectory = new File(bundleLocation, "bin");
if (binDirectory.isDirectory()) {
@@ -101,6 +108,6 @@
}
}
- return bundleLocation.getAbsolutePath();
+ return bundleLocation.getCanonicalPath();
}
}