diff options
author | Bernd Hufmann | 2015-02-17 14:33:23 +0000 |
---|---|---|
committer | Bernd Hufmann | 2015-02-23 19:47:54 +0000 |
commit | 533d0bc3fad4832b67fdcf9ba39ba7f3c70da7c9 (patch) | |
tree | 6e6dc62a1bf94b93e3a9a697505a4130ee897686 | |
parent | 59baa1b42d447b846aa033f2cb6895663aaecc1e (diff) | |
download | org.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
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"/> |