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.

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Hufmann2015-02-17 14:33:23 +0000
committerBernd Hufmann2015-02-23 19:47:54 +0000
commit533d0bc3fad4832b67fdcf9ba39ba7f3c70da7c9 (patch)
tree6e6dc62a1bf94b93e3a9a697505a4130ee897686
parent59baa1b42d447b846aa033f2cb6895663aaecc1e (diff)
downloadorg.eclipse.tracecompass-533d0bc3fad4832b67fdcf9ba39ba7f3c70da7c9.tar.gz
org.eclipse.tracecompass-533d0bc3fad4832b67fdcf9ba39ba7f3c70da7c9.tar.xz
org.eclipse.tracecompass-533d0bc3fad4832b67fdcf9ba39ba7f3c70da7c9.zip
lttng control: update to the remote API v2
Change-Id: Iedc8e9beb252a92065d51e795ba85b209e458264 Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com> Reviewed-on: https://git.eclipse.org/r/42160 Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im> Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im> Reviewed-by: Hudson CI
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlCreateSessionTests.java8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelProviderTests.java8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelSessionTests.java9
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlPropertiesTest.java9
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlSnapshotSessionTests.java8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelNoProvidersTest.java9
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelTest.java9
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstProviderTests.java8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests.java8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests2.java9
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/service/TestRemoteSystemProxy.java4
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/META-INF/MANIFEST.MF8
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/Activator.java18
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/ControlView.java22
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/CreateSessionDialog.java6
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/ImportDialog.java6
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/NewConnectionDialog.java139
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/NewConnectionHandler.java26
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java13
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/property/TargetNodePropertySource.java14
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/CommandShell.java136
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/IRemoteSystemProxy.java11
-rw-r--r--org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/RemoteSystemProxy.java73
-rw-r--r--org.eclipse.tracecompass.lttng2.control/feature.xml2
-rw-r--r--org.eclipse.tracecompass.target/tracecompass-e4.4.target4
-rw-r--r--org.eclipse.tracecompass.target/tracecompass-eStaging.target4
26 files changed, 240 insertions, 331 deletions
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlCreateSessionTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlCreateSessionTests.java
index 8cac69c374..936d64e8b1 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlCreateSessionTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlCreateSessionTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
+ * Copyright (c) 2013, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -24,8 +24,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
import org.eclipse.tracecompass.internal.lttng2.control.stubs.dialogs.CreateSessionDialogStub;
@@ -35,6 +33,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.dialogs.TraceCo
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
import org.junit.After;
import org.junit.Before;
@@ -116,8 +115,7 @@ public class TraceControlCreateSessionTests {
ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelProviderTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelProviderTests.java
index f2bbeba875..ee54faa6e8 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelProviderTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelProviderTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -24,8 +24,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
@@ -45,6 +43,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Trac
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProviderGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -114,8 +113,7 @@ public class TraceControlKernelProviderTests {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelSessionTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelSessionTests.java
index 143bc697ac..8739da2cc3 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelSessionTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlKernelSessionTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -28,8 +28,6 @@ import java.util.List;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
@@ -51,6 +49,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Trac
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProbeEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -120,9 +119,7 @@ public class TraceControlKernelSessionTests {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
-
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
root.addChild(node);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlPropertiesTest.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlPropertiesTest.java
index 55310d391d..af2cff14aa 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlPropertiesTest.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlPropertiesTest.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -26,8 +26,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IChannelInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
@@ -55,6 +53,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.TraceE
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.TraceProbeEventPropertySource;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.TraceSessionPropertySource;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.UstProviderPropertySource;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.ui.views.properties.IPropertySource;
import org.junit.After;
import org.junit.Test;
@@ -104,9 +103,7 @@ public class TraceControlPropertiesTest {
ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
-
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, proxy);
root.addChild(node);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlSnapshotSessionTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlSnapshotSessionTests.java
index a04bea8c79..552681761f 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlSnapshotSessionTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlSnapshotSessionTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
+ * Copyright (c) 2013, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -25,8 +25,6 @@ import java.util.Map;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
import org.eclipse.tracecompass.internal.lttng2.control.stubs.dialogs.CreateSessionDialogStub;
@@ -38,6 +36,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceCon
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.TraceSessionPropertySource;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.junit.After;
@@ -109,8 +108,7 @@ public class TraceControlSnapshotSessionTests {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelNoProvidersTest.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelNoProvidersTest.java
index d4c87efc8e..d7e642f96e 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelNoProvidersTest.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelNoProvidersTest.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -26,8 +26,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.stubs.service.TestRemoteSystemProxy;
@@ -36,6 +34,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Targ
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceProviderGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.UstProviderComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlService;
import org.junit.After;
@@ -102,8 +101,7 @@ public class TraceControlTreeModelNoProvidersTest {
ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent(TARGET_NODE_NAME, root, host, fProxy);
@@ -116,7 +114,6 @@ public class TraceControlTreeModelNoProvidersTest {
// ------------------------------------------------------------------------
// Verify Parameters of TargetNodeComponent
// ------------------------------------------------------------------------
- assertEquals("localhost", node.getRemoteConnection().getAddress()); // assigned in createLocalHost() above
assertEquals("Local", node.getToolTip()); // assigned in createLocalHost() above
Image connectedImage = node.getImage();
assertNotNull(connectedImage);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelTest.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelTest.java
index d3df770f2e..dc3b65099f 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelTest.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlTreeModelTest.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -27,8 +27,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
@@ -50,6 +48,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Trac
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionGroup;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.UstProviderComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlService;
import org.junit.After;
@@ -115,8 +114,7 @@ public class TraceControlTreeModelTest {
ITraceControlComponent root = TraceControlTestFacility.getInstance().getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent(TARGET_NODE_NAME, root, host, fProxy);
@@ -129,7 +127,6 @@ public class TraceControlTreeModelTest {
// ------------------------------------------------------------------------
// Verify Parameters of TargetNodeComponent
// ------------------------------------------------------------------------
- assertEquals("localhost", node.getRemoteConnection().getAddress()); // assigned in createLocalHost() above
assertEquals("Local", node.getToolTip()); // assigned in createLocalHost() above
Image connectedImage = node.getImage();
assertNotNull(connectedImage);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstProviderTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstProviderTests.java
index 5c089c9cc0..a594882bb1 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstProviderTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstProviderTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -24,8 +24,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
@@ -46,6 +44,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Trac
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.UstProviderComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -115,8 +114,7 @@ public class TraceControlUstProviderTests {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
root.addChild(node);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests.java
index a0b49dd463..42d545d459 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -26,8 +26,6 @@ import java.util.List;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
@@ -50,6 +48,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Trac
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceDomainComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceEventComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -119,8 +118,7 @@ public class TraceControlUstSessionTests {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests2.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests2.java
index 8fa31682ba..a4e9304673 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests2.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/src/org/eclipse/tracecompass/lttng2/control/ui/tests/model/component/TraceControlUstSessionTests2.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
+ * Copyright (c) 2013, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -23,8 +23,6 @@ import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionManager;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.BufferType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.ChannelInfo;
@@ -39,6 +37,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Targ
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceChannelComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceDomainComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -110,8 +109,8 @@ public class TraceControlUstSessionTests2 {
ITraceControlComponent root = fFacility.getControlView().getTraceControlRoot();
- IRemoteConnectionManager cm = RemoteServices.getLocalServices().getConnectionManager();
- IRemoteConnection host = cm.getConnection(IRemoteConnectionManager.LOCAL_CONNECTION_NAME);
+ IRemoteConnection host = RemoteSystemProxy.getLocalConnection();
+
TargetNodeComponent node = new TargetNodeComponent("myNode", root, host, fProxy);
root.addChild(node);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/service/TestRemoteSystemProxy.java b/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/service/TestRemoteSystemProxy.java
index 7e67c6849b..01b9124fc1 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/service/TestRemoteSystemProxy.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui.tests/stubs/org/eclipse/tracecompass/internal/lttng2/control/stubs/service/TestRemoteSystemProxy.java
@@ -15,7 +15,7 @@ package org.eclipse.tracecompass.internal.lttng2.control.stubs.service;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.remote.core.IRemoteProcessBuilder;
import org.eclipse.tracecompass.internal.lttng2.control.stubs.shells.LTTngToolsFileShell;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.ICommandShell;
@@ -34,7 +34,7 @@ public class TestRemoteSystemProxy implements IRemoteSystemProxy {
}
@Override
- public IRemoteFileManager getFileServiceSubSystem() {
+ public IRemoteFileService getRemoteFileService() {
return null;
}
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/META-INF/MANIFEST.MF b/org.eclipse.tracecompass.lttng2.control.ui/META-INF/MANIFEST.MF
index 1ad7f1d666..06eacf2923 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.tracecompass.lttng2.control.ui/META-INF/MANIFEST.MF
@@ -13,12 +13,13 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.core.expressions,
org.eclipse.core.resources,
org.eclipse.core.runtime,
+ org.eclipse.tracecompass.common.core,
org.eclipse.tracecompass.lttng2.control.core,
org.eclipse.tracecompass.tmf.core,
org.eclipse.tracecompass.tmf.ui,
org.eclipse.tracecompass.tmf.ctf.core,
- org.eclipse.remote.core;bundle-version="1.0.0",
- org.eclipse.remote.ui;bundle-version="1.1.0",
+ org.eclipse.remote.core;bundle-version="2.0.0",
+ org.eclipse.remote.ui;bundle-version="2.0.0",
org.eclipse.core.filesystem
Export-Package: org.eclipse.tracecompass.internal.lttng2.control.ui;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.tests",
org.eclipse.tracecompass.internal.lttng2.control.ui.relayd;x-internal:=true,
@@ -33,4 +34,5 @@ Export-Package: org.eclipse.tracecompass.internal.lttng2.control.ui;x-friends:="
org.eclipse.tracecompass.internal.lttng2.control.ui.views.property;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.tests",
org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.tests",
org.eclipse.tracecompass.internal.lttng2.control.ui.views.service;x-friends:="org.eclipse.tracecompass.lttng2.control.ui.tests"
-Import-Package: com.google.common.collect
+Import-Package: com.google.common.base,
+ com.google.common.collect
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/Activator.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/Activator.java
index c7f832678e..67b7090320 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/Activator.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/Activator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -8,6 +8,7 @@
*
* Contributors:
* Francois Chouinard - Initial API and implementation
+ * Bernd Hufmann - Add Utility to get a OSGI service
*******************************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui;
@@ -16,6 +17,7 @@ import java.net.URL;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
@@ -23,6 +25,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.relayd.LttngRelaydCon
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.ControlPreferences;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
/**
* The activator class controls the plug-in life cycle
@@ -207,4 +210,17 @@ public class Activator extends AbstractUIPlugin {
getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, message, exception));
}
+ /**
+ * 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 @Nullable <T> T getService(Class<T> service) {
+ BundleContext context = plugin.getBundle().getBundleContext();
+ ServiceReference<T> ref = context.getServiceReference(service);
+ return ((ref != null) ? context.getService(ref) : null);
+ }
+
}
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/ControlView.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/ControlView.java
index 1f18b79308..29e4cde3ef 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/ControlView.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/ControlView.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2014 Ericsson
+ * Copyright (c) 2009, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -26,8 +26,6 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteServices;
-import org.eclipse.remote.core.RemoteServices;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
@@ -37,6 +35,7 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.Targ
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceControlContentProvider;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceControlLabelProvider;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceControlRoot;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.PartInitException;
@@ -130,7 +129,7 @@ public class ControlView extends ViewPart implements ITraceControlComponentChang
for (ITraceControlComponent cmp : fRoot.getChildren()) {
if (cmp instanceof TargetNodeComponent) {
IRemoteConnection rc = ((TargetNodeComponent) cmp).getRemoteConnection();
- memento.putString(KEY_REMOTE_PROVIDER + i, rc.getRemoteServices().getId());
+ memento.putString(KEY_REMOTE_PROVIDER + i, rc.getConnectionType().getId());
memento.putString(KEY_REMOTE_CONNECTION_NAME + i, rc.getName());
i++;
}
@@ -147,19 +146,12 @@ public class ControlView extends ViewPart implements ITraceControlComponentChang
for(int i = 0; ; i++) {
String id = memento.getString(KEY_REMOTE_PROVIDER + i);
String name = memento.getString(KEY_REMOTE_CONNECTION_NAME + i);
- if (id == null || name == null) {
+ if ((id == null) || (name == null)) {
break;
}
- if (!Workaround_Bug449362.triggerRSEStartup(id)) {
- // Skip the connection in order to avoid an infinite loop
- } else {
- IRemoteServices rs = RemoteServices.getRemoteServices(id);
- if (rs != null) {
- IRemoteConnection rc = rs.getConnectionManager().getConnection(name);
- if (rc != null) {
- fInitialConnections.add(rc);
- }
- }
+ IRemoteConnection conn = RemoteSystemProxy.getRemoteConnection(id, name);
+ if (conn != null) {
+ fInitialConnections.add(conn);
}
}
}
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/CreateSessionDialog.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/CreateSessionDialog.java
index d81b1b9b9e..8567bcdb1b 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/CreateSessionDialog.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/CreateSessionDialog.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -19,7 +19,7 @@ import org.eclipse.core.filesystem.IFileInfo;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.FocusEvent;
@@ -817,7 +817,7 @@ public class CreateSessionDialog extends TitleAreaDialog implements ICreateSessi
if (!fIsAdvancedEnabled && !fIsLive) {
TargetNodeComponent node = (TargetNodeComponent)fParent.getParent();
IRemoteSystemProxy proxy = node.getRemoteSystemProxy();
- IRemoteFileManager fsss = proxy.getFileServiceSubSystem();
+ IRemoteFileService fsss = proxy.getRemoteFileService();
if (fsss != null) {
IFileStore remoteFolder = fsss.getResource(fSessionPath);
if (remoteFolder == null) {
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/ImportDialog.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/ImportDialog.java
index 2a691d3f6e..53d027d6f7 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/ImportDialog.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/ImportDialog.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -36,7 +36,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.Window;
-import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.SelectionAdapter;
@@ -410,7 +410,7 @@ public class ImportDialog extends Dialog implements IImportDialog {
IRemoteSystemProxy proxy = fSession.getTargetNode().getRemoteSystemProxy();
- IRemoteFileManager fsss = proxy.getFileServiceSubSystem();
+ IRemoteFileService fsss = proxy.getRemoteFileService();
final String path = fSession.isSnapshotSession() ? fSession.getSnapshotInfo().getSnapshotPath() : fSession.getSessionPath();
final IFileStore remoteFolder = fsss.getResource(path);
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/NewConnectionDialog.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/NewConnectionDialog.java
index 666d0a5e3a..5651d28e8a 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/NewConnectionDialog.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/NewConnectionDialog.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -16,15 +16,9 @@ import static java.text.MessageFormat.format;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
+import java.util.Comparator;
import java.util.List;
-import java.util.Set;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -38,13 +32,13 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.remote.core.IRemoteConnection;
+import org.eclipse.remote.core.IRemoteConnectionHostService;
+import org.eclipse.remote.core.IRemoteConnectionType;
import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
-import org.eclipse.remote.core.IRemoteServices;
-import org.eclipse.remote.core.RemoteServices;
-import org.eclipse.remote.ui.IRemoteUIConnectionManager;
+import org.eclipse.remote.core.IRemoteServicesManager;
+import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.remote.ui.IRemoteUIConnectionService;
import org.eclipse.remote.ui.IRemoteUIConnectionWizard;
-import org.eclipse.remote.ui.IRemoteUIServices;
-import org.eclipse.remote.ui.RemoteUIServices;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -84,13 +78,9 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
public String getText(Object element) {
if (element instanceof IRemoteConnection) {
IRemoteConnection rc = (IRemoteConnection) element;
- if (rc.getRemoteServices() == RemoteServices.getLocalServices()) {
- return rc.getName();
- }
-
- return format("{0} [{1}]", rc.getName(), rc.getAddress()); //$NON-NLS-1$
- } else if (element instanceof IRemoteServices) {
- IRemoteServices rs = (IRemoteServices) element;
+ return getConnectionLabel(rc);
+ } else if (element instanceof IRemoteConnectionType) {
+ IRemoteConnectionType rs = (IRemoteConnectionType) element;
return rs.getName();
}
return Messages.TraceControl_UnknownNode;
@@ -107,7 +97,6 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
private static final class ConnectionContentProvider implements ITreeContentProvider {
private static final Object[] NO_CHILDREN = {};
- private static List<IRemoteServices> fProviders;
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
@@ -120,56 +109,37 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
@Override
public Object[] getElements(Object inputElement) {
List<Object> children = new ArrayList<>();
- children.addAll(RemoteServices.getLocalServices().getConnectionManager().getConnections());
-
- List<IRemoteServices> result = getProviders();
- children.addAll(result);
- return children.toArray();
- }
-
- private static List<IRemoteServices> getProviders() {
- if (fProviders == null) {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = registry.getExtensionPoint("org.eclipse.remote.core", "remoteServices"); //$NON-NLS-1$ //$NON-NLS-2$
- List<IRemoteServices> result = new ArrayList<>();
- if (extensionPoint != null) {
- Set<String> handled = new HashSet<>();
- handled.add(RemoteServices.getLocalServices().getId());
- for (IConfigurationElement ce : extensionPoint.getConfigurationElements()) {
- String id = ce.getAttribute("id"); //$NON-NLS-1$
- if (handled.add(id)) {
- IRemoteServices service = RemoteServices.getRemoteServices(id);
- if (service != null) {
- result.add(service);
- }
- }
- }
- Collections.sort(result);
- }
- fProviders = Collections.unmodifiableList(result);
+ IRemoteServicesManager manager = Activator.getService(IRemoteServicesManager.class);
+ if (manager != null) {
+ children.addAll(manager.getAllConnectionTypes());
}
- return fProviders;
+ return children.toArray();
}
@Override
public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof IRemoteServices) {
- return getConnections((IRemoteServices) parentElement);
+ if (parentElement instanceof IRemoteConnectionType) {
+ return getConnections((IRemoteConnectionType) parentElement);
}
return NO_CHILDREN;
}
- private static IRemoteConnection[] getConnections(IRemoteServices parentElement) {
- List<IRemoteConnection> connectionList = parentElement.getConnectionManager().getConnections();
+ private static IRemoteConnection[] getConnections(IRemoteConnectionType parentElement) {
+ List<IRemoteConnection> connectionList = parentElement.getConnections();
IRemoteConnection[] result = connectionList.toArray(new IRemoteConnection[connectionList.size()]);
- Arrays.sort(result);
+ Arrays.sort(result, new Comparator<IRemoteConnection>() {
+ @Override
+ public int compare(IRemoteConnection o1, IRemoteConnection o2) {
+ return getConnectionLabel(o1).compareTo(getConnectionLabel(o2));
+ }
+ });
return result;
}
@Override
public Object getParent(Object element) {
if (element instanceof IRemoteConnection) {
- return ((IRemoteConnection) element).getRemoteServices();
+ return ((IRemoteConnection) element).getConnectionType();
}
return null;
}
@@ -230,9 +200,13 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
fConnectionTree.setAutoExpandLevel(2);
fConnectionTree.setInput(this);
- List<IRemoteServices> providers = ConnectionContentProvider.getProviders();
+ IRemoteServicesManager manager = Activator.getService(IRemoteServicesManager.class);
+ if (manager == null) {
+ return result;
+ }
+ List<IRemoteConnectionType> providers = manager.getAllConnectionTypes();
if (!providers.isEmpty()) {
- IRemoteServices provider = providers.get(0);
+ IRemoteConnectionType provider = providers.get(0);
IRemoteConnection[] connections = ConnectionContentProvider.getConnections(provider);
if (connections.length > 0) {
fConnectionTree.setSelection(new StructuredSelection(connections[0]));
@@ -319,18 +293,18 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
fNewButton.setEnabled(getServiceForCreation() != null);
}
- private IRemoteServices getServiceForCreation() {
+ private IRemoteConnectionType getServiceForCreation() {
Object o = ((IStructuredSelection) fConnectionTree.getSelection()).getFirstElement();
- IRemoteServices result = null;
- if (o instanceof IRemoteServices) {
- result = (IRemoteServices) o;
+ IRemoteConnectionType result = null;
+ if (o instanceof IRemoteConnectionType) {
+ result = (IRemoteConnectionType) o;
} else if (o instanceof IRemoteConnection) {
- result = ((IRemoteConnection) o).getRemoteServices();
+ result = ((IRemoteConnection) o).getConnectionType();
} else {
return null;
}
- if ((result.getCapabilities() & IRemoteServices.CAPABILITY_ADD_CONNECTIONS) == 0) {
+ if ((result.getCapabilities() & IRemoteConnectionType.CAPABILITY_ADD_CONNECTIONS) == 0) {
return null;
}
@@ -341,20 +315,25 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
if (conn == null) {
return false;
}
- IRemoteServices rs = conn.getRemoteServices();
- return (rs.getCapabilities() & IRemoteServices.CAPABILITY_EDIT_CONNECTIONS) != 0;
+ IRemoteConnectionType rs = conn.getConnectionType();
+ return (rs.getCapabilities() & IRemoteConnectionType.CAPABILITY_EDIT_CONNECTIONS) != 0;
}
private void onNewConnection() {
- IRemoteServices rs = getServiceForCreation();
+ IRemoteConnectionType rs = getServiceForCreation();
if (rs != null) {
- IRemoteUIServices uiService = RemoteUIServices.getRemoteUIServices(rs);
+ IRemoteUIConnectionService uiService = rs.getService(IRemoteUIConnectionService.class);
if (uiService != null) {
- IRemoteUIConnectionWizard wiz = uiService.getUIConnectionManager().getConnectionWizard(getShell());
+ IRemoteUIConnectionWizard wiz = uiService.getConnectionWizard(getShell());
if (wiz != null) {
IRemoteConnectionWorkingCopy wc = wiz.open();
if (wc != null) {
- IRemoteConnection conn = wc.save();
+ IRemoteConnection conn = null;
+ try {
+ conn = wc.save();
+ } catch (RemoteConnectionException e) {
+ Activator.getDefault().logWarning("Connection configuration could not be saved for " + fConnection.getName() , e); //$NON-NLS-1$
+ }
if (conn != null) {
fConnectionTree.refresh();
fConnectionTree.setSelection(new StructuredSelection(conn), true);
@@ -368,18 +347,19 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
private void onEditConnection() {
setConnection();
if (fConnection != null) {
- IRemoteUIServices ui = RemoteUIServices.getRemoteUIServices(fConnection.getRemoteServices());
+ IRemoteUIConnectionService ui = fConnection.getConnectionType().getService(IRemoteUIConnectionService.class);
if (ui != null) {
- IRemoteUIConnectionManager connManager = ui.getUIConnectionManager();
- if (connManager != null) {
- IRemoteUIConnectionWizard wiz = connManager.getConnectionWizard(getShell());
+ IRemoteUIConnectionWizard wiz = ui.getConnectionWizard(getShell());
wiz.setConnection(fConnection.getWorkingCopy());
IRemoteConnectionWorkingCopy result = wiz.open();
if (result != null) {
- result.save();
+ try {
+ result.save();
+ } catch (RemoteConnectionException e) {
+ Activator.getDefault().logWarning("Connection configuration could not be saved for " + fConnection.getName() , e); //$NON-NLS-1$
+ }
fConnectionTree.refresh();
}
- }
}
}
}
@@ -407,4 +387,13 @@ public class NewConnectionDialog extends Dialog implements INewConnectionDialog
public IRemoteConnection getConnection() {
return fConnection;
}
+
+ private static String getConnectionLabel(IRemoteConnection rc) {
+ StringBuffer label = new StringBuffer();
+ label.append(rc.getName());
+ if (rc.hasService(IRemoteConnectionHostService.class)) {
+ label.append(format(" [{0}]", rc.getService(IRemoteConnectionHostService.class).getHostname())); //$NON-NLS-1$
+ }
+ return label.toString();
+ }
}
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/NewConnectionHandler.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/NewConnectionHandler.java
index ad5714a411..7f89cf695d 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/NewConnectionHandler.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/handlers/NewConnectionHandler.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson and others
+ * Copyright (c) 2012, 2015 Ericsson and others
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -19,14 +19,14 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.window.Window;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteServices;
-import org.eclipse.remote.core.RemoteServices;
+import org.eclipse.remote.core.IRemoteConnectionType;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.ControlView;
-import org.eclipse.tracecompass.internal.lttng2.control.ui.views.Workaround_Bug449362;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.dialogs.INewConnectionDialog;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.dialogs.TraceControlDialogFactory;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponent;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote.RemoteSystemProxy;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
@@ -48,13 +48,13 @@ public class NewConnectionHandler extends BaseControlViewHandler {
/**
* Id of the parameter for the remote services id.
* @see NewConnectionHandler
- * @see IRemoteServices#getId()
+ * @see IRemoteConnectionType#getId()
*/
public static final String PARAMETER_REMOTE_SERVICES_ID = "org.eclipse.linuxtools.lttng2.control.ui.remoteServicesIdParameter"; //$NON-NLS-1$
/**
* Id of the parameter for the name of the remote connection.
* @see NewConnectionHandler
- * @see IRemoteServices#getName()
+ * @see IRemoteConnection#getName()
*/
public static final String PARAMETER_CONNECTION_NAME = "org.eclipse.linuxtools.lttng2.control.ui.connectionNameParameter"; //$NON-NLS-1$
@@ -101,16 +101,10 @@ public class NewConnectionHandler extends BaseControlViewHandler {
// First check whether arguments have been supplied
Object remoteServicesId = parameters.get(PARAMETER_REMOTE_SERVICES_ID);
Object connectionName = parameters.get(PARAMETER_CONNECTION_NAME);
- if (remoteServicesId != null && connectionName != null) {
- if (!Workaround_Bug449362.triggerRSEStartup(remoteServicesId.toString())) {
- // Skip the connection in order to avoid an infinite loop
- } else {
- IRemoteServices rs = RemoteServices.getRemoteServices(remoteServicesId.toString());
- if (rs != null) {
- return rs.getConnectionManager().getConnection(connectionName.toString());
- }
- }
- return null;
+ if ((remoteServicesId != null) && (connectionName != null)) {
+ return RemoteSystemProxy.getRemoteConnection(
+ checkNotNull(remoteServicesId.toString()),
+ checkNotNull(connectionName.toString()));
}
// Without the arguments, open dialog box for the node name and address
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java
index c25b10efd3..8ffdfc6d98 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TargetNodeComponent.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -10,6 +10,7 @@
* Bernd Hufmann - Initial API and implementation
* Bernd Hufmann - Updated for support of LTTng Tools 2.1
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
+ * Bernd Hufmann - Update to org.eclipse.remote API 2.0
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl;
@@ -26,8 +27,8 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
+import org.eclipse.remote.core.RemoteConnectionChangeEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
@@ -292,17 +293,17 @@ public class TargetNodeComponent extends TraceControlComponent implements IRemot
// ------------------------------------------------------------------------
@Override
- public void connectionChanged(IRemoteConnectionChangeEvent e) {
+ public void connectionChanged(RemoteConnectionChangeEvent e) {
if (fState == TargetNodeState.CONNECTING) {
return;
}
switch (e.getType()) {
- case IRemoteConnectionChangeEvent.CONNECTION_CLOSED:
- case IRemoteConnectionChangeEvent.CONNECTION_ABORTED:
+ case RemoteConnectionChangeEvent.CONNECTION_CLOSED:
+ case RemoteConnectionChangeEvent.CONNECTION_ABORTED:
handleDisconnected();
break;
- case IRemoteConnectionChangeEvent.CONNECTION_OPENED:
+ case RemoteConnectionChangeEvent.CONNECTION_OPENED:
handleConnected();
break;
default:
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/property/TargetNodePropertySource.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/property/TargetNodePropertySource.java
index 5c5fdbdbe4..73338a239e 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/property/TargetNodePropertySource.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/property/TargetNodePropertySource.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -9,9 +9,11 @@
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
+ * Bernd Hufmann - Update to org.eclipse.remote API 2.0
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.property;
+import org.eclipse.remote.core.IRemoteConnectionHostService;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.messages.Messages;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
import org.eclipse.tracecompass.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
@@ -63,6 +65,11 @@ public class TargetNodePropertySource extends BasePropertySource {
*/
public static final String TARGET_NODE_VERSION_PROPERTY_NAME = Messages.TraceControl_VersionPropertyName;
+ /**
+ * The name of the address for local host
+ */
+ private static final String LOCAL_CONNECTION_HOST_NAME = "localhost"; //$NON-NLS-1$
+
// ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
@@ -101,7 +108,10 @@ public class TargetNodePropertySource extends BasePropertySource {
return fTargetNode.getName();
}
if (TARGET_NODE_ADDRESS_PROPERTY_ID.equals(id)) {
- return fTargetNode.getRemoteConnection().getAddress();
+ if (fTargetNode.getRemoteConnection().hasService(IRemoteConnectionHostService.class)) {
+ return fTargetNode.getRemoteConnection().getService(IRemoteConnectionHostService.class).getHostname();
+ }
+ return LOCAL_CONNECTION_HOST_NAME;
}
if (TARGET_NODE_STATE_PROPERTY_ID.equals(id)) {
return fTargetNode.getTargetNodeState().name();
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/CommandShell.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/CommandShell.java
index 41032be4c7..0b517ed45f 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/CommandShell.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/CommandShell.java
@@ -10,6 +10,7 @@
* Patrick Tasse - Initial API and implementation
* Bernd Hufmann - Updated using Executor Framework
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
+ * Bernd Hufmann - Update to org.eclipse.remote API 2.0
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote;
@@ -24,11 +25,10 @@ import java.util.concurrent.TimeoutException;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.remote.core.IRemoteConnection;
import org.eclipse.remote.core.IRemoteProcess;
-import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteProcessService;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.messages.Messages;
import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.ControlPreferences;
@@ -43,22 +43,10 @@ import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.Con
public class CommandShell implements ICommandShell {
// ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- private static final String BEGIN_TAG = "org.eclipse.tracecompass-BEGIN-TAG:"; //$NON-NLS-1$
- private static final String END_TAG = "org.eclipse.tracecompass-END-TAG:"; //$NON-NLS-1$
- private static final String RSE_ADAPTER_ID = "org.eclipse.ptp.remote.RSERemoteServices"; //$NON-NLS-1$
- private static final String SHELL_ECHO_CMD = "echo "; //$NON-NLS-1$
- private static final char CMD_SEPARATOR = ';';
- private static final String CMD_RESULT_VAR = " $?"; //$NON-NLS-1$
-
- // ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
private IRemoteConnection fConnection = null;
private final ExecutorService fExecutor = Executors.newFixedThreadPool(1);
- private int fBackedByShell;
// ------------------------------------------------------------------------
// Constructors
@@ -93,10 +81,7 @@ public class CommandShell implements ICommandShell {
@Override
public CommandResult call() throws IOException, InterruptedException {
if (monitor == null || !monitor.isCanceled()) {
- final boolean wrapCommand =
- RSE_ADAPTER_ID.equals(fConnection.getRemoteServices().getId())
- && isBackedByShell();
- IRemoteProcess process = startRemoteProcess(wrapCommand, command);
+ IRemoteProcess process = fConnection.getService(IRemoteProcessService.class).getProcessBuilder(command).start();
InputReader stdout = new InputReader(process.getInputStream());
InputReader stderr = new InputReader(process.getErrorStream());
@@ -104,7 +89,7 @@ public class CommandShell implements ICommandShell {
stdout.waitFor(monitor);
stderr.waitFor(monitor);
if (monitor == null || !monitor.isCanceled()) {
- return createResult(wrapCommand, process.waitFor(), stdout.toString(), stderr.toString());
+ return createResult(process.waitFor(), stdout.toString(), stderr.toString());
}
} catch (OperationCanceledException e) {
} catch (InterruptedException e) {
@@ -136,77 +121,16 @@ public class CommandShell implements ICommandShell {
throw new ExecutionException(Messages.TraceControl_ShellNotConnected, null);
}
- private IRemoteProcess startRemoteProcess(boolean wrapCommand, List<String> command) throws IOException {
- if (wrapCommand) {
- StringBuilder formattedCommand = new StringBuilder();
- formattedCommand.append(SHELL_ECHO_CMD).append(BEGIN_TAG);
- formattedCommand.append(CMD_SEPARATOR);
- for(String cmd : command) {
- formattedCommand.append(cmd).append(' ');
- }
- formattedCommand.append(CMD_SEPARATOR);
- formattedCommand.append(SHELL_ECHO_CMD).append(END_TAG).append(CMD_RESULT_VAR);
- String[] args = formattedCommand.toString().trim().split("\\s+"); //$NON-NLS-1$
- return fConnection.getProcessBuilder(args).start();
- }
-
- return fConnection.getProcessBuilder(command).start();
- }
-
- private boolean isBackedByShell() throws InterruptedException {
- if (fBackedByShell == 0) {
- String cmd= SHELL_ECHO_CMD + BEGIN_TAG + CMD_SEPARATOR + SHELL_ECHO_CMD + END_TAG;
- IRemoteProcessBuilder pb = fConnection.getProcessBuilder(cmd.trim().split("\\s+")); //$NON-NLS-1$
- pb.redirectErrorStream(true);
- IRemoteProcess process = null;
- InputReader reader = null;
- try {
- process = pb.start();
- reader = new InputReader(process.getInputStream());
- reader.waitFor(new NullProgressMonitor());
- process.waitFor();
-
- fBackedByShell = -1;
- String result= reader.toString();
- int pos = result.indexOf(BEGIN_TAG, skipEchoBeginTag(result));
- if (pos >= 0 && result.substring(pos + BEGIN_TAG.length()).trim().startsWith(END_TAG)) {
- fBackedByShell = 1;
- }
- } catch (IOException e) {
- // On Windows, cannot start built-in echo command
- fBackedByShell = -1;
- } finally {
- if (process != null) {
- process.destroy();
- }
- if (reader != null) {
- reader.stop();
- }
- }
- }
- return fBackedByShell == 1;
- }
-
// ------------------------------------------------------------------------
// Helper methods
// ------------------------------------------------------------------------
- private static CommandResult createResult(boolean isWrapped, int origResult, String origStdout, String origStderr) {
+ private static CommandResult createResult(int origResult, String origStdout, String origStderr) {
final int result;
final String stdout, stderr;
- if (isWrapped) {
- String[] holder = {origStdout};
- result = unwrapOutput(holder);
- stdout = holder[0];
- // Workaround if error stream is not available and stderr output is written
- // in standard output above. This is true for the SshTerminalShell implementation.
- stderr = origStderr.isEmpty() ? stdout : origStderr;
- } else {
- result = origResult;
- stdout = origStdout;
- stderr = origStderr;
- }
-
+ result = origResult;
+ stdout = origStdout;
+ stderr = origStderr;
String[] output = splitLines(stdout);
String[] error = splitLines(stderr);
return new CommandResult(result, output, error);
@@ -219,48 +143,4 @@ public class CommandShell implements ICommandShell {
return output.split("\\r?\\n"); //$NON-NLS-1$
}
- private static int unwrapOutput(String[] outputHolder) {
- String output = outputHolder[0];
- int begin = skipEchoBeginTag(output);
- begin = output.indexOf(BEGIN_TAG, begin);
-
- if (begin < 0) {
- outputHolder[0] = ""; //$NON-NLS-1$
- return 1;
- }
-
- begin += BEGIN_TAG.length();
- int end = output.indexOf(END_TAG, begin);
- if (end < 0) {
- outputHolder[0] = output.substring(begin).trim();
- return 1;
- }
-
- outputHolder[0] = output.substring(begin, end).trim();
- String tail = output.substring(end + END_TAG.length()).trim();
- int numEnd;
- for (numEnd = 0; numEnd < tail.length(); numEnd++) {
- if (!Character.isDigit(tail.charAt(numEnd))) {
- break;
- }
- }
- try {
- return Integer.parseInt(tail.substring(0, numEnd));
- } catch (NumberFormatException e) {
- return 1;
- }
- }
-
- private static int skipEchoBeginTag(String output) {
- final String searchFor = SHELL_ECHO_CMD + BEGIN_TAG;
- int begin = 0;
- for(;;) {
- int i= output.indexOf(searchFor, begin);
- if (i >= begin) {
- begin = i + searchFor.length();
- } else {
- return begin;
- }
- }
- }
}
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/IRemoteSystemProxy.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/IRemoteSystemProxy.java
index 45d7e7b314..6fff42a91a 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/IRemoteSystemProxy.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/IRemoteSystemProxy.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -9,13 +9,14 @@
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
+ * Bernd Hufmann - Update to org.eclipse.remote API 2.0
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.remote.core.IRemoteProcessBuilder;
/**
@@ -27,9 +28,6 @@ import org.eclipse.remote.core.IRemoteProcessBuilder;
*/
public interface IRemoteSystemProxy {
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
/**
* Invalid port number for IP based connections.
*/
@@ -44,7 +42,7 @@ public interface IRemoteSystemProxy {
*
* @return file service subsystem, or <code>null</code> if not found.
*/
- IRemoteFileManager getFileServiceSubSystem();
+ IRemoteFileService getRemoteFileService();
/**
* Returns a remote process builder for remote launching a process.
@@ -53,7 +51,6 @@ public interface IRemoteSystemProxy {
*/
IRemoteProcessBuilder getProcessBuilder(String...command);
-
/**
* Connects the shell service sub system.
* @param monitor a monitor to report progress.
diff --git a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/RemoteSystemProxy.java b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/RemoteSystemProxy.java
index 78837620cd..24ce75ced3 100644
--- a/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/RemoteSystemProxy.java
+++ b/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/remote/RemoteSystemProxy.java
@@ -1,5 +1,5 @@
/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
+ * Copyright (c) 2012, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
@@ -9,17 +9,28 @@
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Markus Schorn - Bug 448058: Use org.eclipse.remote in favor of RSE
+ * Bernd Hufmann - Update to org.eclipse.remote API 2.0
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.remote;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.remote.core.IRemoteConnection;
-import org.eclipse.remote.core.IRemoteConnectionChangeEvent;
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
-import org.eclipse.remote.core.IRemoteFileManager;
+import org.eclipse.remote.core.IRemoteConnectionType;
+import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.remote.core.IRemoteProcessBuilder;
+import org.eclipse.remote.core.IRemoteProcessService;
+import org.eclipse.remote.core.IRemoteServicesManager;
+import org.eclipse.remote.core.RemoteConnectionChangeEvent;
import org.eclipse.remote.core.exception.RemoteConnectionException;
+import org.eclipse.tracecompass.internal.lttng2.control.ui.Activator;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
/**
* <p>
@@ -30,11 +41,13 @@ import org.eclipse.remote.core.exception.RemoteConnectionException;
*/
public class RemoteSystemProxy implements IRemoteSystemProxy, IRemoteConnectionChangeListener {
+ /** Name of a local connection */
+ public static final String LOCAL_CONNECTION_NAME = "Local"; //$NON-NLS-1$
+
// ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
-
- private IRemoteConnection fHost;
+ private final IRemoteConnection fHost;
private boolean fExplicitConnect;
// ------------------------------------------------------------------------
@@ -57,13 +70,13 @@ public class RemoteSystemProxy implements IRemoteSystemProxy, IRemoteConnectionC
// ------------------------------------------------------------------------
@Override
- public IRemoteFileManager getFileServiceSubSystem() {
- return fHost.getFileManager();
+ public IRemoteFileService getRemoteFileService() {
+ return fHost.getService(IRemoteFileService.class);
}
@Override
public IRemoteProcessBuilder getProcessBuilder(String...command) {
- return fHost.getProcessBuilder(command);
+ return fHost.getService(IRemoteProcessService.class).getProcessBuilder(command);
}
@Override
@@ -114,11 +127,49 @@ public class RemoteSystemProxy implements IRemoteSystemProxy, IRemoteConnectionC
}
@Override
- public void connectionChanged(IRemoteConnectionChangeEvent event) {
+ public void connectionChanged(RemoteConnectionChangeEvent event) {
int type = event.getType();
- if (type == IRemoteConnectionChangeEvent.CONNECTION_ABORTED ||
- type == IRemoteConnectionChangeEvent.CONNECTION_CLOSED) {
+ if (type == RemoteConnectionChangeEvent.CONNECTION_ABORTED ||
+ type == RemoteConnectionChangeEvent.CONNECTION_CLOSED) {
fExplicitConnect = false;
}
}
+
+ /**
+ * Return a remote connection using OSGI service.
+ *
+ * @param remoteServicesId
+ * ID of remote service
+ * @param name
+ * name of connection
+ * @return the corresponding remote connection or null
+ */
+ public static @Nullable IRemoteConnection getRemoteConnection(final @NonNull String remoteServicesId, final @NonNull String name) {
+ IRemoteServicesManager manager = Activator.getService(IRemoteServicesManager.class);
+ if (manager == null) {
+ return null;
+ }
+ FluentIterable<IRemoteConnection> connections = FluentIterable.from(manager.getAllRemoteConnections());
+ Optional<IRemoteConnection> ret = connections.firstMatch(new Predicate<IRemoteConnection>() {
+ @Override
+ public boolean apply(IRemoteConnection input) {
+ return (input.getConnectionType().getId().equals(remoteServicesId.toString()) && input.getName().equals(name.toString()));
+ }
+ });
+ return ret.orNull();
+ }
+
+ /**
+ * Return a Local connection.
+ *
+ * @return the local connection
+ */
+ public static @Nullable IRemoteConnection getLocalConnection() {
+ IRemoteServicesManager manager = Activator.getService(IRemoteServicesManager.class);
+ if (manager == null) {
+ return null;
+ }
+ IRemoteConnectionType type = manager.getLocalConnectionType();
+ return type.getConnection(LOCAL_CONNECTION_NAME);
+ }
}
diff --git a/org.eclipse.tracecompass.lttng2.control/feature.xml b/org.eclipse.tracecompass.lttng2.control/feature.xml
index 4a6b899e0b..a29c877003 100644
--- a/org.eclipse.tracecompass.lttng2.control/feature.xml
+++ b/org.eclipse.tracecompass.lttng2.control/feature.xml
@@ -36,7 +36,7 @@
<import plugin="org.eclipse.tracecompass.tmf.core" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.tracecompass.tmf.ui" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.help"/>
- <import feature="org.eclipse.remote" version="1.1.0" match="greaterOrEqual"/>
+ <import feature="org.eclipse.remote" version="2.0.0" match="greaterOrEqual"/>
</requires>
<plugin
diff --git a/org.eclipse.tracecompass.target/tracecompass-e4.4.target b/org.eclipse.tracecompass.target/tracecompass-e4.4.target
index 05fc979e90..73838e610e 100644
--- a/org.eclipse.tracecompass.target/tracecompass-e4.4.target
+++ b/org.eclipse.tracecompass.target/tracecompass-e4.4.target
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="tracecompass-e4.4" sequenceNumber="32">
+<?pde version="3.8"?><target name="tracecompass-e4.4" sequenceNumber="33">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -37,7 +37,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>
</locations>
<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
diff --git a/org.eclipse.tracecompass.target/tracecompass-eStaging.target b/org.eclipse.tracecompass.target/tracecompass-eStaging.target
index f28c6259db..3a13323a64 100644
--- a/org.eclipse.tracecompass.target/tracecompass-eStaging.target
+++ b/org.eclipse.tracecompass.target/tracecompass-eStaging.target
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="tracecompass-eStaging" sequenceNumber="33">
+<?pde version="3.8"?><target name="tracecompass-eStaging" sequenceNumber="34">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -15,7 +15,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/builds/8.1.1"/>
+<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.antlr.runtime" version="3.2.0.v201101311130"/>

Back to the top