From a5a38cc722dc6d7736eddd4e7016ada150ca4830 Mon Sep 17 00:00:00 2001 From: Pavel Fatin Date: Wed, 7 Mar 2012 18:45:11 +0400 Subject: [PATCH] ITNProxy: report internal mode status, selected update channel status, ignored build numbers --- .../intellij/errorreport/itn/ITNProxy.java | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/errorreport/itn/ITNProxy.java b/platform/platform-impl/src/com/intellij/errorreport/itn/ITNProxy.java index 54b067212dc4..ee6342e77571 100644 --- a/platform/platform-impl/src/com/intellij/errorreport/itn/ITNProxy.java +++ b/platform/platform-impl/src/com/intellij/errorreport/itn/ITNProxy.java @@ -21,9 +21,12 @@ import com.intellij.errorreport.bean.ErrorBean; import com.intellij.errorreport.error.InternalEAPException; import com.intellij.errorreport.error.NoSuchEAPUserException; import com.intellij.errorreport.error.UpdateAvailableException; +import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationInfo; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.application.ex.ApplicationInfoEx; +import com.intellij.openapi.updateSettings.impl.UpdateSettings; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.SystemProperties; @@ -36,6 +39,7 @@ import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Iterator; import java.util.List; /** @@ -63,8 +67,10 @@ public class ITNProxy { password, error, compilationTimestamp, + ApplicationManager.getApplication(), (ApplicationInfoEx) ApplicationInfo.getInstance(), - ApplicationNamesInfo.getInstance()); + ApplicationNamesInfo.getInstance(), + UpdateSettings.getInstance()); HttpURLConnection connection = post(new URL(NEW_THREAD_URL), join(params)); int responseCode = connection.getResponseCode(); @@ -105,9 +111,9 @@ public class ITNProxy { private static List> createParametersFor(String login, String password, ErrorBean error, - String compilationTimestamp, - ApplicationInfoEx appInfo, - ApplicationNamesInfo namesInfo) { + String compilationTimestamp, Application application, ApplicationInfoEx appInfo, + ApplicationNamesInfo namesInfo, + UpdateSettings updateSettings) { @NonNls List> params = new ArrayList>(); params.add(Pair.create("protocol.version", "1")); @@ -124,6 +130,7 @@ public class ITNProxy { params.add(Pair.create("app.name.full", namesInfo.getFullProductName())); params.add(Pair.create("app.name.version", appInfo.getVersionName())); params.add(Pair.create("app.eap", Boolean.toString(appInfo.isEAP()))); + params.add(Pair.create("app.internal", Boolean.toString(application.isInternal()))); params.add(Pair.create("app.build", appInfo.getBuild().asString())); params.add(Pair.create("app.version.major", appInfo.getMajorVersion())); params.add(Pair.create("app.version.minor", appInfo.getMinorVersion())); @@ -132,6 +139,9 @@ public class ITNProxy { params.add(Pair.create("app.update.channel", appInfo.getDefaultUpdateChannel())); params.add(Pair.create("app.compilation.timestamp", compilationTimestamp)); + params.add(Pair.create("update.channel.status", updateSettings.getSelectedChannelStatus().getCode())); + params.add(Pair.create("update.ignored.builds", StringUtil.join(updateSettings.getIgnoredBuildNumbers(), ","))); + params.add(Pair.create("plugin.name", error.getPluginName())); params.add(Pair.create("plugin.version", error.getPluginVersion())); @@ -196,16 +206,23 @@ public class ITNProxy { } private static byte[] join(List> params) throws UnsupportedEncodingException { - StringBuilder buffer = new StringBuilder(); + StringBuilder builder = new StringBuilder(); + + Iterator> it = params.iterator(); + + while (it.hasNext()) { + Pair param = it.next(); - for (Pair param : params) { if (StringUtil.isEmpty(param.first)) throw new IllegalArgumentException(param.toString()); if (StringUtil.isNotEmpty(param.second)) - buffer.append(param.first + "=" + URLEncoder.encode(param.second, ENCODING) + POST_DELIMITER); + builder.append(param.first).append("=").append(URLEncoder.encode(param.second, ENCODING)); + + if (it.hasNext()) + builder.append(POST_DELIMITER); } - return buffer.toString().getBytes(); + return builder.toString().getBytes(); } }