Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2015-02-16 18:28:26 +0000
committerGerrit Code Review @ Eclipse.org2015-02-17 19:48:08 +0000
commitcd65a290169f473d1c615182207db6bfa5a6bc65 (patch)
treec7f9dabf4e4417e1dafbc62574ed6e774beed165
parent9471bc7bc1031ebbc86a539fc82664dcc677f758 (diff)
downloadorg.eclipse.cdt-cd65a290169f473d1c615182207db6bfa5a6bc65.tar.gz
org.eclipse.cdt-cd65a290169f473d1c615182207db6bfa5a6bc65.tar.xz
org.eclipse.cdt-cd65a290169f473d1c615182207db6bfa5a6bc65.zip
Bug 459972 - Update CDT to use o.e.remote 2.0.
Requires a couple of changes in the autotools plug-ins. Change the 4.5 target to refer to the remote 2.0 build and update the pom to use the 4.5 target. Also fixes autotools test so they run on the Mac. Change-Id: I145de3ea3f14d61ffba7354ad0fa3e0ec2467e26
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/autotools/core/AutotoolsPlugin.java13
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java23
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/.gitignore1
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AbstractTest.java46
-rw-r--r--core/org.eclipse.cdt.core.macosx/library/.gitignore1
-rw-r--r--pom.xml2
-rw-r--r--releng/org.eclipse.cdt.target/cdt-e4.5.target4
-rw-r--r--remote/org.eclipse.cdt.remote.core/src/org/eclipse/cdt/remote/core/RemoteCommandLauncher.java20
8 files changed, 82 insertions, 28 deletions
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/autotools/core/AutotoolsPlugin.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/autotools/core/AutotoolsPlugin.java
index 862d445f278..6b5bc0d2ec7 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/autotools/core/AutotoolsPlugin.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/autotools/core/AutotoolsPlugin.java
@@ -37,6 +37,7 @@ import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
/**
* The main plugin class to be used in the desktop.
@@ -102,6 +103,18 @@ public class AutotoolsPlugin extends AbstractUIPlugin {
}
/**
+ * Return the OSGi service with the given service interface.
+ *
+ * @param service service interface
+ * @return the specified service or null if it's not registered
+ */
+ public static <T> T getService(Class<T> service) {
+ BundleContext context = plugin.getBundle().getBundleContext();
+ ServiceReference<T> ref = context.getServiceReference(service);
+ return ref != null ? context.getService(ref) : null;
+ }
+
+ /**
* Returns active shell.
*/
public static Shell getActiveWorkbenchShell() {
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
index 4172136783f..ade4cc22248 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
@@ -80,12 +80,13 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionControlService;
+import org.eclipse.remote.core.IRemoteConnectionPropertyService;
+import org.eclipse.remote.core.IRemoteConnectionType;
import org.eclipse.remote.core.IRemoteResource;
-import org.eclipse.remote.core.IRemoteServices;
-import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteServicesManager;
import org.eclipse.remote.core.exception.RemoteConnectionException;
-
@SuppressWarnings("deprecation")
public class AutotoolsNewMakeGenerator extends MarkerGenerator {
@@ -1073,21 +1074,23 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
(IRemoteResource)getProject().getAdapter(IRemoteResource.class);
if (remRes != null) {
URI uri = remRes.getActiveLocationURI();
- IRemoteServices remServices = RemoteServices.getRemoteServices(uri);
- if (remServices != null) {
- IRemoteConnection conn =
- remServices.getConnectionManager().getConnection(uri);
+ IRemoteServicesManager remoteServiceManager = AutotoolsPlugin.getService(IRemoteServicesManager.class);
+ IRemoteConnectionType connectionType = remoteServiceManager.getConnectionType(uri);
+ if (connectionType != null) {
+ IRemoteConnection conn = connectionType.getConnection(uri);
if (conn != null) {
if (!conn.isOpen()) {
try {
conn.open(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
- if (conn.isOpen()) {
- return conn.getProperty(IRemoteConnection.OS_NAME_PROPERTY);
- }
} catch (RemoteConnectionException e) {
// Ignore and return platform OS
}
}
+
+ if (conn.isOpen()) {
+ return conn.getProperty(IRemoteConnection.OS_NAME_PROPERTY);
+ }
+
}
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/.gitignore b/build/org.eclipse.cdt.autotools.ui.tests/.gitignore
index 50c1b30a804..17c3f434c1c 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/.gitignore
+++ b/build/org.eclipse.cdt.autotools.ui.tests/.gitignore
@@ -2,3 +2,4 @@ bin
@dot
javaCompiler...args
build.xml
+/screenshots/
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AbstractTest.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AbstractTest.java
index d834f431a03..d5d1e866e38 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AbstractTest.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AbstractTest.java
@@ -26,11 +26,14 @@ import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.bindings.keys.KeyStroke;
import org.eclipse.jface.bindings.keys.ParseException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
@@ -51,6 +54,9 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarDropDownButton;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.AfterClass;
@@ -88,7 +94,31 @@ public abstract class AbstractTest {
// do nothing
}
// Turn off automatic building by default
- clickMainMenu("Window", "Preferences");
+ if (Platform.getOS().equals(Platform.OS_MACOSX)) {
+ // On Mac, the Preferences menu is under the system menu
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ workbench.getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+ if (window != null) {
+ Menu appMenu = workbench.getDisplay().getSystemMenu();
+ for (MenuItem item : appMenu.getItems()) {
+ if (item.getText().startsWith("Preferences")) {
+ Event event = new Event();
+ event.time = (int) System.currentTimeMillis();
+ event.widget = item;
+ event.display = workbench.getDisplay();
+ item.setSelection(true);
+ item.notifyListeners(SWT.Selection, event);
+ break;
+ }
+ }
+ }
+ }
+ });
+ } else {
+ clickMainMenu("Window", "Preferences");
+ }
SWTBotShell shell = bot.shell("Preferences");
shell.activate();
bot.text().setText("Workspace");
@@ -325,13 +355,13 @@ public abstract class AbstractTest {
return view;
}
- /**
- * Focus on the main window
- */
- public static void focusMainShell() {
- SWTBotShell shell = getMainShell();
- shell.activate();
- }
+ /**
+ * Focus on the main window
+ */
+ public static void focusMainShell() {
+ SWTBotShell shell = getMainShell();
+ shell.activate();
+ }
private static SWTBotShell getMainShell() {
for (SWTBotShell shellBot : bot.shells()) {
diff --git a/core/org.eclipse.cdt.core.macosx/library/.gitignore b/core/org.eclipse.cdt.core.macosx/library/.gitignore
index 5761abcfdf0..f9e528a2229 100644
--- a/core/org.eclipse.cdt.core.macosx/library/.gitignore
+++ b/core/org.eclipse.cdt.core.macosx/library/.gitignore
@@ -1 +1,2 @@
*.o
+/ltmain.sh
diff --git a/pom.xml b/pom.xml
index 14c428b0301..0cdf4bca404 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<repo-path>tools/cdt/builds/master/nightly</repo-path>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/../../target/jacoco.exec</sonar.jacoco.reportPath>
- <target-platform>cdt-e4.4</target-platform>
+ <target-platform>cdt-e4.5</target-platform>
<help-docs-eclipserun-repo>http://download.eclipse.org/eclipse/updates/4.4</help-docs-eclipserun-repo>
<tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git</tycho.scmUrl>
<base.test.vmargs>-Xms256m -Xmx512m -XX:MaxPermSize=256m -ea</base.test.vmargs>
diff --git a/releng/org.eclipse.cdt.target/cdt-e4.5.target b/releng/org.eclipse.cdt.target/cdt-e4.5.target
index c686a6167fd..9b1c9ce0678 100644
--- a/releng/org.eclipse.cdt.target/cdt-e4.5.target
+++ b/releng/org.eclipse.cdt.target/cdt-e4.5.target
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="cdt_e4.5" sequenceNumber="20">
+<?pde version="3.8"?><target name="cdt_e4.5" sequenceNumber="21">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.bundles.f.feature.group" version="0.0.0"/>
@@ -27,7 +27,7 @@
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.remote.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/tools/ptp/updates/luna"/>
+<repository location="http://download.eclipse.org/tools/ptp/builds/remote/2.0.0/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/remote/org.eclipse.cdt.remote.core/src/org/eclipse/cdt/remote/core/RemoteCommandLauncher.java b/remote/org.eclipse.cdt.remote.core/src/org/eclipse/cdt/remote/core/RemoteCommandLauncher.java
index 412ac59d4d4..25fd75ff0db 100644
--- a/remote/org.eclipse.cdt.remote.core/src/org/eclipse/cdt/remote/core/RemoteCommandLauncher.java
+++ b/remote/org.eclipse.cdt.remote.core/src/org/eclipse/cdt/remote/core/RemoteCommandLauncher.java
@@ -19,6 +19,7 @@ import java.util.Properties;
import org.eclipse.cdt.core.CommandLauncher;
import org.eclipse.cdt.core.ICommandLauncher;
+import org.eclipse.cdt.remote.internal.core.Activator;
import org.eclipse.cdt.remote.internal.core.messages.Messages;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.resources.IProject;
@@ -27,12 +28,14 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionType;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.remote.core.IRemoteProcess;
import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteProcessService;
import org.eclipse.remote.core.IRemoteResource;
-import org.eclipse.remote.core.IRemoteServices;
+import org.eclipse.remote.core.IRemoteServicesManager;
import org.eclipse.remote.core.RemoteProcessAdapter;
-import org.eclipse.remote.core.RemoteServices;
public class RemoteCommandLauncher implements ICommandLauncher {
@@ -130,16 +133,19 @@ public class RemoteCommandLauncher implements ICommandLauncher {
IRemoteResource remRes = (IRemoteResource) getProject().getAdapter(IRemoteResource.class);
if (remRes != null) {
URI uri = remRes.getActiveLocationURI();
- IRemoteServices remServices = RemoteServices.getRemoteServices(uri);
- if (remServices != null) {
- fConnection = remServices.getConnectionManager().getConnection(uri);
+ IRemoteServicesManager remoteServicesManager = Activator.getService(IRemoteServicesManager.class);
+ IRemoteConnectionType connectionType = remoteServicesManager.getConnectionType(uri);
+ if (connectionType != null) {
+ fConnection = connectionType.getConnection(uri);
if (fConnection != null) {
parseEnvironment(env);
fCommandArgs = constructCommandArray(commandPath.toString(), args, remRes);
- IRemoteProcessBuilder processBuilder = fConnection.getProcessBuilder(fCommandArgs);
+ IRemoteProcessService processService = fConnection.getService(IRemoteProcessService.class);
+ IRemoteProcessBuilder processBuilder = processService.getProcessBuilder(fCommandArgs);
if (workingDirectory != null) {
String remoteWorkingPath = makeRemote(workingDirectory.toString(), remRes);
- IFileStore wd = fConnection.getFileManager().getResource(remoteWorkingPath);
+ IRemoteFileService fileManager = fConnection.getService(IRemoteFileService.class);
+ IFileStore wd = fileManager.getResource(remoteWorkingPath);
processBuilder.directory(wd);
}
Map<String, String> processEnv = processBuilder.environment();

Back to the top