Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsminto2009-08-12 20:28:54 +0000
committersminto2009-08-12 20:28:54 +0000
commit56074a3e375193bc25243ddd0bc71532f69b28bb (patch)
treef165e634fed2c85793c6d5991ed887df33f163c5 /org.eclipse.mylyn.monitor.usage
parentce8de82f91ff33d4d6aa8b9afd66b176c70877f9 (diff)
downloadorg.eclipse.mylyn.incubator-56074a3e375193bc25243ddd0bc71532f69b28bb.tar.gz
org.eclipse.mylyn.incubator-56074a3e375193bc25243ddd0bc71532f69b28bb.tar.xz
org.eclipse.mylyn.incubator-56074a3e375193bc25243ddd0bc71532f69b28bb.zip
RESOLVED - bug 286282: [usage] allow usage upload to support uploading to a server other than eclipse.org
https://bugs.eclipse.org/bugs/show_bug.cgi?id=286282
Diffstat (limited to 'org.eclipse.mylyn.monitor.usage')
-rw-r--r--org.eclipse.mylyn.monitor.usage/schema/study.exsd2
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/ReportGenerator.java45
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/StudyParameters.java57
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java44
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/preferences/UsageDataPreferencePage.java2
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageSubmissionWizard.java16
-rw-r--r--org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageUploadWizardPage.java4
7 files changed, 127 insertions, 43 deletions
diff --git a/org.eclipse.mylyn.monitor.usage/schema/study.exsd b/org.eclipse.mylyn.monitor.usage/schema/study.exsd
index 041e31ff..0e4f2031 100644
--- a/org.eclipse.mylyn.monitor.usage/schema/study.exsd
+++ b/org.eclipse.mylyn.monitor.usage/schema/study.exsd
@@ -12,7 +12,7 @@
<element name="study">
<complexType>
- <sequence>
+ <sequence minOccurs="1" maxOccurs="unbounded">
<element ref="scripts"/>
<element ref="ui"/>
<element ref="monitors"/>
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/ReportGenerator.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/ReportGenerator.java
index 41633cac..7dd28d2d 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/ReportGenerator.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/ReportGenerator.java
@@ -12,6 +12,7 @@
package org.eclipse.mylyn.internal.monitor.usage;
import java.io.File;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -27,6 +28,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.IJobChangeListener;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.internal.monitor.core.collection.IUsageCollector;
import org.eclipse.mylyn.internal.monitor.core.collection.IUsageScanner;
@@ -34,6 +36,8 @@ import org.eclipse.mylyn.internal.monitor.core.collection.InteractionEventCompar
import org.eclipse.mylyn.internal.monitor.core.collection.InteractionEventSummary;
import org.eclipse.mylyn.internal.monitor.core.collection.InteractionEventUtil;
import org.eclipse.mylyn.monitor.core.InteractionEvent;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.progress.IProgressService;
/**
* Used for generating reports of user activity.
@@ -115,18 +119,37 @@ public class ReportGenerator {
public void getStatisticsFromInteractionHistories(List<File> sources, IJobChangeListener jobChangeListener) {
- GenerateStatisticsJob job = new GenerateStatisticsJob(this, sources);
- if (jobChangeListener != null) {
- job.addJobChangeListener(jobChangeListener);
- }
- if (this.listener != null) {
- job.addJobChangeListener(this.listener);
- }
- job.setPriority(Job.LONG);
- if (forceSyncForTesting) {
- job.run(new NullProgressMonitor());
+ final GenerateStatisticsJob job = new GenerateStatisticsJob(this, sources);
+ if (jobChangeListener == null) {
+ IProgressService service = PlatformUI.getWorkbench().getProgressService();
+ try {
+ service.run(true, false, new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ job.run(monitor);
+ }
+
+ });
+ } catch (InvocationTargetException e) {
+ StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, e.getMessage(), e));
+ } catch (InterruptedException e) {
+ StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, e.getMessage(), e));
+ }
+
} else {
- job.schedule();
+
+ if (jobChangeListener != null) {
+ job.addJobChangeListener(jobChangeListener);
+ }
+ if (this.listener != null) {
+ job.addJobChangeListener(this.listener);
+ }
+ job.setPriority(Job.LONG);
+ if (forceSyncForTesting) {
+ job.run(new NullProgressMonitor());
+ } else {
+ job.schedule();
+ }
}
}
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/StudyParameters.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/StudyParameters.java
index 89c8a43f..43392e02 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/StudyParameters.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/StudyParameters.java
@@ -21,9 +21,9 @@ import org.eclipse.mylyn.monitor.usage.AbstractStudyQuestionnairePage;
*/
public class StudyParameters {
- private String title = UiUsageMonitorPlugin.DEFAULT_TITLE;
+ private String title;
- private String description = UiUsageMonitorPlugin.DEFAULT_DESCRIPTION;
+ private String description;
private AbstractStudyQuestionnairePage questionnairePage = null;
@@ -31,23 +31,47 @@ public class StudyParameters {
private long transmitPromptPeriod = UiUsageMonitorPlugin.DEFAULT_DELAY_BETWEEN_TRANSMITS;
- private String acceptedUrlList = UiUsageMonitorPlugin.DEFAULT_ACCEPTED_URL_LIST;
+ private String acceptedUrlList;
- private String useContactField = UiUsageMonitorPlugin.DEFAULT_CONTACT_CONSENT_FIELD;
+ private String useContactField;
- private String formsConsent = UiUsageMonitorPlugin.DEFAULT_ETHICS_FORM;
+ private String formsConsent;
- private String version = UiUsageMonitorPlugin.DEFAULT_VERSION;
+ private String version;
- private String servletUrl = UiUsageMonitorPlugin.DEFAULT_UPLOAD_SERVER;
+ private String uploadServletUrl;
- public String getServletUrl() {
- return servletUrl;
+ private String idServletUrl;
+
+ private String questionaireServletUrl;
+
+ public String getUploadServletUrl() {
+ return uploadServletUrl;
}
- public void setServletUrl(String servletServerUrl) {
- if (servletUrl != null) {
- this.servletUrl = servletServerUrl;
+ public void setUploadServletUrl(String servletServerUrl) {
+ if (servletServerUrl != null) {
+ this.uploadServletUrl = servletServerUrl;
+ }
+ }
+
+ public String getUserIdServletUrl() {
+ return idServletUrl;
+ }
+
+ public void setUserIdServletUrl(String servletUserId) {
+ if (servletUserId != null) {
+ this.idServletUrl = servletUserId;
+ }
+ }
+
+ public String getQuestionaireServletUrl() {
+ return questionaireServletUrl;
+ }
+
+ public void setQuestionaireServletUrl(String servletQuestionaire) {
+ if (servletQuestionaire != null) {
+ this.questionaireServletUrl = servletQuestionaire;
}
}
@@ -138,4 +162,13 @@ public class StudyParameters {
this.useContactField = useContactField;
}
}
+
+ public boolean isComplete() {
+ return title != null && description != null && uploadServletUrl != null && idServletUrl != null;
+ }
+
+ public boolean isEmpty() {
+ return title == null && description == null && uploadServletUrl == null && idServletUrl == null;
+ }
+
}
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
index d9f0e278..2ce4a15a 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
@@ -89,12 +89,12 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
private static final long DELAY_ON_USER_REQUEST = 5 * DAY;
+ public static final long DEFAULT_DELAY_BETWEEN_TRANSMITS = 21 * 24 * HOUR;
+
public static final String DEFAULT_TITLE = "Mylyn Feedback";
public static final String DEFAULT_DESCRIPTION = "Fill out the following form to help us improve Mylyn based on your input.\n";
- public static final long DEFAULT_DELAY_BETWEEN_TRANSMITS = 21 * 24 * HOUR;
-
public static final String DEFAULT_ETHICS_FORM = "doc/study-ethics.html";
public static final String DEFAULT_VERSION = "";
@@ -277,6 +277,22 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
// ------- moved from synch start
new MonitorUsageExtensionPointReader().initExtensions();
+ if (studyParameters.isEmpty()) {
+
+ studyParameters.setVersion(DEFAULT_VERSION);
+ studyParameters.setUploadServletUrl(DEFAULT_UPLOAD_SERVER + DEFAULT_UPLOAD_SERVLET);
+ studyParameters.setUserIdServletUrl(DEFAULT_UPLOAD_SERVER + DEFAULT_UPLOAD_SERVLET_ID);
+ studyParameters.setQuestionaireServletUrl(null);
+
+ studyParameters.setTitle(DEFAULT_TITLE);
+ studyParameters.setDescription(DEFAULT_DESCRIPTION);
+ studyParameters.setTransmitPromptPeriod(DEFAULT_DELAY_BETWEEN_TRANSMITS);
+ studyParameters.setUseContactField(DEFAULT_CONTACT_CONSENT_FIELD);
+ studyParameters.setAcceptedUrlList(DEFAULT_ACCEPTED_URL_LIST);
+ studyParameters.setFormsConsent("/" + DEFAULT_ETHICS_FORM);
+
+ }
+
if (preferenceMonitor == null) {
preferenceMonitor = new PreferenceChangeMonitor();
}
@@ -288,10 +304,6 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
menuMonitor = new MenuCommandMonitor();
keybindingCommandMonitor = new KeybindingCommandMonitor();
- // browserMonitor = new BrowserMonitor();
- // setAcceptedUrlMatchList(studyParameters.getAcceptedUrlList());
-
- studyParameters.setServletUrl(DEFAULT_UPLOAD_SERVER + DEFAULT_UPLOAD_SERVLET);
// ------- moved from synch start
if (getPreferenceStore().getBoolean(MonitorPreferenceConstants.PREF_MONITORING_ENABLED)) {
@@ -315,6 +327,10 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
}
public void startMonitoring() {
+ if (studyParameters == null || !studyParameters.isComplete()) {
+ System.out.println("here");
+ return;
+ }
if (getPreferenceStore().contains(MonitorPreferenceConstants.PREF_MONITORING_STARTED)) {
return;
}
@@ -613,8 +629,10 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
public void configureProxy(HttpClient httpClient, String uploadScript) {
WebUtil.configureHttpClient(httpClient, null);
+
HostConfiguration hostConfiguration = WebUtil.createHostConfiguration(httpClient, new WebLocation(uploadScript,
- uploadAuthentication.getUser(), uploadAuthentication.getPassword()), null);
+ uploadAuthentication != null ? uploadAuthentication.getUser() : null,
+ uploadAuthentication != null ? uploadAuthentication.getPassword() : null), null);
httpClient.setHostConfiguration(hostConfiguration);
}
@@ -644,7 +662,7 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
class MonitorUsageExtensionPointReader {
- public static final String EXTENSION_ID_STUDY = "org.eclipse.mylyn.monitor.ui.study";
+ public static final String EXTENSION_ID_STUDY = "org.eclipse.mylyn.monitor.usage.study";
public static final String ELEMENT_SCRIPTS = "scripts";
@@ -691,6 +709,7 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
if (extensionPoint != null) {
IExtension[] extensions = extensionPoint.getExtensions();
for (IExtension extension : extensions) {
+ //TODO make this support multiple studies properly
IConfigurationElement[] elements = extension.getConfigurationElements();
for (IConfigurationElement element : elements) {
if (element.getName().compareTo(ELEMENT_SCRIPTS) == 0) {
@@ -714,6 +733,15 @@ public class UiUsageMonitorPlugin extends AbstractUIPlugin {
private void readScripts(IConfigurationElement element) {
studyParameters.setVersion(element.getAttribute(ELEMENT_SCRIPTS_VERSION));
+ String serverUrl = element.getAttribute(ELEMENT_SCRIPTS_SERVER_URL);
+ String userIdScript = element.getAttribute(ELEMENT_SCRIPTS_GET_USER_ID);
+ String usageUploadScript = element.getAttribute(ELEMENT_SCRIPTS_UPLOAD_USAGE);
+ String questionaireUploadScript = element.getAttribute(ELEMENT_SCRIPTS_UPLOAD_QUESTIONNAIRE);
+
+ studyParameters.setUploadServletUrl(serverUrl + usageUploadScript);
+ studyParameters.setUserIdServletUrl(serverUrl + userIdScript);
+ studyParameters.setQuestionaireServletUrl(serverUrl + questionaireUploadScript);
+
}
private void readForms(IConfigurationElement element) throws CoreException {
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/preferences/UsageDataPreferencePage.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/preferences/UsageDataPreferencePage.java
index 6256e64d..5c22bf1a 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/preferences/UsageDataPreferencePage.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/preferences/UsageDataPreferencePage.java
@@ -150,7 +150,7 @@ public class UsageDataPreferencePage extends PreferencePage implements IWorkbenc
uploadUrl = new Text(group, SWT.BORDER);
uploadUrl.setEditable(false);
uploadUrl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- uploadUrl.setText(UiUsageMonitorPlugin.getDefault().getStudyParameters().getServletUrl());
+ uploadUrl.setText(UiUsageMonitorPlugin.getDefault().getStudyParameters().getUploadServletUrl());
Label events = new Label(group, SWT.NULL);
events.setText(" Events since upload:");
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageSubmissionWizard.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageSubmissionWizard.java
index 4db8f7e2..e4657a1b 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageSubmissionWizard.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageSubmissionWizard.java
@@ -314,7 +314,7 @@ public class UsageSubmissionWizard extends Wizard implements INewWizard {
int status = 0;
try {
- String servletUrl = UiUsageMonitorPlugin.getDefault().getStudyParameters().getServletUrl();
+ String servletUrl = UiUsageMonitorPlugin.getDefault().getStudyParameters().getUploadServletUrl();
final PostMethod filePost = new PostMethod(servletUrl);
Part[] parts = { new FilePart("temp.txt", f) };
@@ -404,8 +404,7 @@ public class UsageSubmissionWizard extends Wizard implements INewWizard {
// TODO, do this method properly
// create a new post method
- String url = UiUsageMonitorPlugin.getDefault().getStudyParameters().getServletUrl()
- + UiUsageMonitorPlugin.getDefault().getStudyParameters().getServletUrl();
+ String url = UiUsageMonitorPlugin.getDefault().getStudyParameters().getUserIdServletUrl();
final GetMethod getUidMethod = new GetMethod(url);
NameValuePair first = new NameValuePair("firstName", firstName);
@@ -522,9 +521,9 @@ public class UsageSubmissionWizard extends Wizard implements INewWizard {
}
public int getNewUid() {
- final PostMethod filePost = new PostMethod(UiUsageMonitorPlugin.DEFAULT_UPLOAD_SERVER
- + UiUsageMonitorPlugin.DEFAULT_UPLOAD_SERVLET_ID);
-
+ final PostMethod filePost = new PostMethod(UiUsageMonitorPlugin.getDefault()
+ .getStudyParameters()
+ .getUserIdServletUrl());
filePost.addParameter(new NameValuePair("MylarUserID", ""));
final HttpClient client = new HttpClient();
int status = 0;
@@ -560,8 +559,9 @@ public class UsageSubmissionWizard extends Wizard implements INewWizard {
try {
addBackgroundPage();
- final PostMethod filePost = new PostMethod(UiUsageMonitorPlugin.DEFAULT_UPLOAD_SERVER
- + UiUsageMonitorPlugin.DEFAULT_UPLOAD_SERVLET_ID);
+ final PostMethod filePost = new PostMethod(UiUsageMonitorPlugin.getDefault()
+ .getStudyParameters()
+ .getUserIdServletUrl());
filePost.addParameter(new NameValuePair("MylarUserID", ""));
final HttpClient client = new HttpClient();
int status = 0;
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageUploadWizardPage.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageUploadWizardPage.java
index 794f37ba..400aab14 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageUploadWizardPage.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/wizards/UsageUploadWizardPage.java
@@ -55,7 +55,7 @@ public class UsageUploadWizardPage extends WizardPage {
setTitle("Usage Data Submission");
if (UiUsageMonitorPlugin.getDefault().getCustomizingPlugin() != null) {
String customizedTitle = UiUsageMonitorPlugin.getDefault().getStudyParameters().getTitle();
- if (!customizedTitle.equals("")) {
+ if (customizedTitle != null && !customizedTitle.equals("")) {
setTitle(customizedTitle + ": Usage Data Upload");
}
}
@@ -98,7 +98,7 @@ public class UsageUploadWizardPage extends WizardPage {
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
serverAddrText.setLayoutData(gd);
serverAddrText.setEditable(false);
- serverAddrText.setText(UiUsageMonitorPlugin.getDefault().getStudyParameters().getServletUrl());
+ serverAddrText.setText(UiUsageMonitorPlugin.getDefault().getStudyParameters().getUploadServletUrl());
label = new Label(topContainer, SWT.NULL);
label.setText("Usage file location:");

Back to the top