Add method to obtain a RemoteProcess. Fix version number.

Change-Id: I62a02bccde02d665e1b7f0b58c48b8c30c0acbc0
Signed-off-by: Greg Watson <g.watson@computer.org>
diff --git a/bundles/org.eclipse.remote.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.remote.core/META-INF/MANIFEST.MF
index c896fa1..0e48f78 100644
--- a/bundles/org.eclipse.remote.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.remote.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.remote.core;singleton:=true
-Bundle-Version: 3.0.0.qualifier
+Bundle-Version: 4.0.0.qualifier
 Bundle-Activator: org.eclipse.remote.internal.core.RemoteCorePlugin
 Bundle-Vendor: %pluginProvider
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.remote.core/pom.xml b/bundles/org.eclipse.remote.core/pom.xml
index 2ad8879..b2ce59e 100644
--- a/bundles/org.eclipse.remote.core/pom.xml
+++ b/bundles/org.eclipse.remote.core/pom.xml
@@ -11,6 +11,6 @@
   </parent>
 
   <artifactId>org.eclipse.remote.core</artifactId>
-  <version>3.0.0-SNAPSHOT</version>
+  <version>4.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/AbstractRemoteProcessBuilder.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/AbstractRemoteProcessBuilder.java
index 1b208f3..5a0e041 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/AbstractRemoteProcessBuilder.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/AbstractRemoteProcessBuilder.java
@@ -16,6 +16,7 @@
 import java.util.Map;
 
 import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.remote.internal.core.RemoteProcess;
 
 /**
  * Abstract base class for remote process builders. Implementors can use this class to provide a default implementation of a remote
@@ -195,4 +196,11 @@
 	public IRemoteConnection getRemoteConnection() {
 		return fConnection;
 	}
+	
+	/**
+	 * @since 4.0
+	 */
+	protected IRemoteProcess newRemoteProcess() {
+		return new RemoteProcess(getRemoteConnection(), this);
+	}
 }
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java
index 76b8b65..d4b8f22 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java
@@ -53,7 +53,7 @@
 
 	/**
 	 * Event indicating the connection attributes had changed.
-	 * @since 3.0
+	 * @since 4.0
 	 */
 	public static final int ATTRIBUTES_CHANGED = 1 << 6;
 
diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchProcessBuilder.java b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchProcessBuilder.java
index a2926e1..a2b4097 100644
--- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchProcessBuilder.java
+++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchProcessBuilder.java
@@ -29,7 +29,6 @@
 import org.eclipse.remote.core.IRemoteProcess;
 import org.eclipse.remote.core.exception.RemoteConnectionException;
 import org.eclipse.remote.internal.core.RemoteDebugOptions;
-import org.eclipse.remote.internal.core.RemoteProcess;
 import org.eclipse.remote.internal.jsch.core.messages.Messages;
 
 import com.jcraft.jsch.Channel;
@@ -182,7 +181,7 @@
 			}
 			fChannel.setXForwarding((flags & FORWARD_X11) == FORWARD_X11);
 			fChannel.connect();
-			return new RemoteProcess(getRemoteConnection(), this);
+			return newRemoteProcess();
 		} catch (RemoteConnectionException e) {
 			throw new IOException(e.getMessage());
 		} catch (JSchException e) {