diff --git a/bundles/org.eclipse.remote.core/plugin.xml b/bundles/org.eclipse.remote.core/plugin.xml
index 9ed983dc93f..bedfc2973f3 100644
--- a/bundles/org.eclipse.remote.core/plugin.xml
+++ b/bundles/org.eclipse.remote.core/plugin.xml
@@ -23,6 +23,16 @@
factory="org.eclipse.remote.internal.core.services.local.LocalConnectionPropertyService$Factory"
service="org.eclipse.remote.core.IRemoteConnectionPropertyService">
+
+
+
+
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
index cfe95677390..6dd8ca0e628 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
@@ -196,7 +196,18 @@ public class RemoteConnectionType implements IRemoteConnectionType {
@Override
public IRemoteConnection getConnection(URI uri) {
- return connections.get(uri.getAuthority());
+ IRemoteConnection connection = connections.get(uri.getAuthority());
+ if (connection != null) {
+ return connection;
+ }
+
+ // If it's a file: scheme we must be the local connection type, just return our
+ // hopefully one connection, the Local connection.
+ if (uri.getScheme().equals("file") && !connections.isEmpty()) { //$NON-NLS-1$
+ return connections.values().iterator().next();
+ }
+
+ return null;
}
@Override
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileManager.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileService.java
similarity index 78%
rename from bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileManager.java
rename to bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileService.java
index 5577850b453..cc420745959 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileManager.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/services/local/LocalFileService.java
@@ -20,15 +20,27 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.remote.core.IRemoteConnection;
import org.eclipse.remote.core.IRemoteFileService;
import org.eclipse.remote.core.IRemoteProcessService;
+import org.eclipse.remote.core.IRemoteConnection.Service;
-public class LocalFileManager implements IRemoteFileService {
+public class LocalFileService implements IRemoteFileService {
private final IRemoteConnection connection;
- public LocalFileManager(IRemoteConnection connection) {
+ public LocalFileService(IRemoteConnection connection) {
this.connection = connection;
}
+ public static class Factory implements IRemoteFileService.Factory {
+ @SuppressWarnings("unchecked")
+ @Override
+ public T getService(IRemoteConnection remoteConnection, Class service) {
+ if (IRemoteFileService.class.equals(service)) {
+ return (T) new LocalFileService(remoteConnection);
+ }
+ return null;
+ }
+ }
+
@Override
public IRemoteConnection getRemoteConnection() {
return connection;