Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2007-03-06 23:08:51 +0000
committerslewis2007-03-06 23:08:51 +0000
commit446d77d8a9be13c1444c5ad86c1f78934e8c69e0 (patch)
tree6479f242b4d92aa3afe5af293eef03fd7adff274 /providers/bundles/org.eclipse.ecf.provider.filetransfer
parente8c17d6095f2b9b303e8fc7843f418537e6db694 (diff)
downloadorg.eclipse.ecf-446d77d8a9be13c1444c5ad86c1f78934e8c69e0.tar.gz
org.eclipse.ecf-446d77d8a9be13c1444c5ad86c1f78934e8c69e0.tar.xz
org.eclipse.ecf-446d77d8a9be13c1444c5ad86c1f78934e8c69e0.zip
Added IRetrieveFileTransferFactory service interface and service implementation, also added client test code in org.eclipse.ecf.tests.filetransfer.
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.filetransfer')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/internal/provider/filetransfer/Activator.java27
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java13
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/HttpClientRetrieveFileTransfer.java6
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/MultiProtocolRetrieveAdapter.java3
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/UrlConnectionRetrieveFileTransfer.java6
5 files changed, 40 insertions, 15 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/internal/provider/filetransfer/Activator.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/internal/provider/filetransfer/Activator.java
index a7eaba85c..bd097f3ea 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/internal/provider/filetransfer/Activator.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/internal/provider/filetransfer/Activator.java
@@ -4,8 +4,12 @@ import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.runtime.Plugin;
+import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer;
+import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
+import org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
import org.osgi.util.tracker.ServiceTracker;
/**
@@ -13,17 +17,19 @@ import org.osgi.util.tracker.ServiceTracker;
*/
public class Activator extends Plugin {
- private static final String URL_HANDLER_PROTOCOL_NAME = "url.handler.protocol";
+ private static final String URL_HANDLER_PROTOCOL_NAME = "url.handler.protocol"; //$NON-NLS-1$
- private static final String URLSTREAM_HANDLER_SERVICE_NAME = "org.osgi.service.url.URLStreamHandlerService";
+ private static final String URLSTREAM_HANDLER_SERVICE_NAME = "org.osgi.service.url.URLStreamHandlerService"; //$NON-NLS-1$
// The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer";
+ public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
- BundleContext context;
+ private BundleContext context;
+
+ private ServiceRegistration fileTransferServiceRegistration;
/**
* The constructor
@@ -40,6 +46,13 @@ public class Activator extends Plugin {
super.start(context);
plugin = this;
this.context = context;
+ fileTransferServiceRegistration = context.registerService(
+ IRetrieveFileTransferFactory.class.getName(),
+ new IRetrieveFileTransferFactory() {
+ public IRetrieveFileTransfer newInstance() {
+ return new MultiProtocolRetrieveAdapter();
+ }
+ }, null);
}
/*
@@ -49,8 +62,12 @@ public class Activator extends Plugin {
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
- super.stop(context);
this.context = null;
+ if (fileTransferServiceRegistration != null) {
+ fileTransferServiceRegistration.unregister();
+ fileTransferServiceRegistration = null;
+ }
+ super.stop(context);
}
/**
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
index 302150dcb..b45376047 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java
@@ -67,6 +67,8 @@ public abstract class AbstractRetrieveFileTransfer implements
protected Exception exception;
protected long fileLength = -1;
+
+ protected Map options = null;
protected URL getRemoteFileURL() {
return remoteFileURL;
@@ -87,6 +89,10 @@ public abstract class AbstractRetrieveFileTransfer implements
protected void setFileLength(long length) {
fileLength = length;
}
+
+ protected Map getOptions() {
+ return options;
+ }
public AbstractRetrieveFileTransfer() {
}
@@ -243,7 +249,7 @@ public abstract class AbstractRetrieveFileTransfer implements
*
* @throws IncomingFileTransferException
*/
- protected abstract void openStreams(Map options)
+ protected abstract void openStreams()
throws IncomingFileTransferException;
/*
@@ -266,7 +272,8 @@ public abstract class AbstractRetrieveFileTransfer implements
this.exception = null;
this.fileLength = 0;
this.remoteFileID = remoteFileID;
-
+ this.options = options;
+
try {
this.remoteFileURL = remoteFileID.getURL();
} catch (MalformedURLException e) {
@@ -277,7 +284,7 @@ public abstract class AbstractRetrieveFileTransfer implements
remoteFileID), e); //$NON-NLS-1$
}
this.listener = transferListener;
- openStreams(options);
+ openStreams();
}
public Namespace getRetrieveNamespace() {
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/HttpClientRetrieveFileTransfer.java
index 206f0b73a..acd5b2f64 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/HttpClientRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/HttpClientRetrieveFileTransfer.java
@@ -14,7 +14,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
-import java.util.Map;
import javax.security.auth.login.LoginException;
@@ -172,7 +171,10 @@ public class HttpClientRetrieveFileTransfer extends
}
}
- protected void openStreams(Map options)
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams()
+ */
+ protected void openStreams()
throws IncomingFileTransferException {
String urlString = getRemoteFileURL().toString();
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/MultiProtocolRetrieveAdapter.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/MultiProtocolRetrieveAdapter.java
index a0560ea01..89c4e140d 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/MultiProtocolRetrieveAdapter.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/MultiProtocolRetrieveAdapter.java
@@ -24,6 +24,7 @@ import org.eclipse.ecf.filetransfer.IFileTransferListener;
import org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter;
import org.eclipse.ecf.filetransfer.IncomingFileTransferException;
import org.eclipse.ecf.filetransfer.identity.IFileID;
+import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer;
import org.eclipse.ecf.internal.provider.filetransfer.Messages;
import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace;
@@ -33,7 +34,7 @@ import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace;
* retriever.
*/
public class MultiProtocolRetrieveAdapter implements
- IRetrieveFileTransferContainerAdapter {
+ IRetrieveFileTransfer {
IConnectContext connectContext = null;
Proxy proxy = null;
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/UrlConnectionRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/UrlConnectionRetrieveFileTransfer.java
index 2dd2ebb0a..0ae613efa 100644
--- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/UrlConnectionRetrieveFileTransfer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/retrieve/UrlConnectionRetrieveFileTransfer.java
@@ -15,7 +15,6 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
-import java.util.Map;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.security.IConnectContext;
@@ -39,14 +38,13 @@ public class UrlConnectionRetrieveFileTransfer extends
protected IFileID fileid = null;
/* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams(java.util.Map)
+ * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams()
*/
- protected void openStreams(Map options)
+ protected void openStreams()
throws IncomingFileTransferException {
URL theURL = null;
try {
-
theURL = getRemoteFileURL();
urlConnection = theURL.openConnection();
setInputStream(urlConnection.getInputStream());

Back to the top