Bug 467286 - Set the ECF user agent property
Change-Id: I3b62375638a697a34aae087402497cdba05259f8
diff --git a/bundles/org.eclipse.equinox.p2.transport.ecf/src/org/eclipse/equinox/internal/p2/transport/ecf/FileReader.java b/bundles/org.eclipse.equinox.p2.transport.ecf/src/org/eclipse/equinox/internal/p2/transport/ecf/FileReader.java
index dd339a0..8f07e99 100644
--- a/bundles/org.eclipse.equinox.p2.transport.ecf/src/org/eclipse/equinox/internal/p2/transport/ecf/FileReader.java
+++ b/bundles/org.eclipse.equinox.p2.transport.ecf/src/org/eclipse/equinox/internal/p2/transport/ecf/FileReader.java
@@ -11,13 +11,14 @@
* Sonatype Inc - ongoing development
* Ericsson AB. - Bug 407940 - [transport] Initial connection happens in current thread
* Red Hat Inc. - Bug 460967
+ * Rapicorp Inc - Bug 467286 - Set the ECF user agent property
******************************************************************************/
package org.eclipse.equinox.internal.p2.transport.ecf;
import java.io.*;
import java.net.SocketTimeoutException;
import java.net.URI;
-import java.util.Date;
+import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ecf.core.security.IConnectContext;
@@ -54,6 +55,18 @@
}
}
+ static Map<String, Map<String, String>> options;
+
+ static {
+ Map<String, String> extraRequestHeaders = new HashMap<String, String>(1);
+ String userAgent = System.getProperty("p2.userAgent"); //$NON-NLS-1$
+ if (userAgent == null)
+ userAgent = "eclipse/p2/mars"; //$NON-NLS-1$
+ extraRequestHeaders.put("User-Agent", userAgent); //$NON-NLS-1$
+ options = new HashMap<String, Map<String, String>>(1);
+ options.put(org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions.REQUEST_HEADERS, extraRequestHeaders);
+ }
+
private static IFileReaderProbe testProbe;
private boolean closeStreamWhenFinished = false;
private Exception exception;
@@ -384,10 +397,11 @@
try {
IFileID fileID = FileIDFactory.getDefault().createFileID(adapter.getRetrieveNamespace(), uri.toString());
+
if (range != null)
- adapter.sendRetrieveRequest(fileID, range, this, null);
+ adapter.sendRetrieveRequest(fileID, range, this, options);
else
- adapter.sendRetrieveRequest(fileID, this, null);
+ adapter.sendRetrieveRequest(fileID, this, options);
} catch (IncomingFileTransferException e) {
exception = e;
} catch (FileCreateException e) {