| /* |
| * Copyright 2000-2014 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.jf.smalidea.errorReporting; |
| |
| import com.intellij.errorreport.bean.ErrorBean; |
| import com.intellij.idea.IdeaLogger; |
| import com.intellij.openapi.application.Application; |
| import com.intellij.openapi.application.ApplicationManager; |
| import com.intellij.openapi.application.ApplicationNamesInfo; |
| import com.intellij.openapi.application.ex.ApplicationInfoEx; |
| import com.intellij.openapi.diagnostic.Attachment; |
| import com.intellij.openapi.updateSettings.impl.UpdateSettings; |
| import com.intellij.openapi.util.text.StringUtil; |
| import com.intellij.util.SystemProperties; |
| import com.intellij.util.containers.ContainerUtil; |
| |
| import java.util.Calendar; |
| import java.util.Map; |
| |
| /** |
| * @author stathik |
| * @since Aug 4, 2003 |
| */ |
| public class ITNProxy { |
| |
| public static Map<String, String> createParameters(ErrorBean error) { |
| Map<String, String> params = ContainerUtil.newLinkedHashMap(40); |
| |
| params.put("protocol.version", "1"); |
| |
| params.put("os.name", SystemProperties.getOsName()); |
| params.put("java.version", SystemProperties.getJavaVersion()); |
| params.put("java.vm.vendor", SystemProperties.getJavaVmVendor()); |
| |
| ApplicationInfoEx appInfo = ApplicationInfoEx.getInstanceEx(); |
| ApplicationNamesInfo namesInfo = ApplicationNamesInfo.getInstance(); |
| Application application = ApplicationManager.getApplication(); |
| params.put("app.name", namesInfo.getProductName()); |
| params.put("app.name.full", namesInfo.getFullProductName()); |
| params.put("app.name.version", appInfo.getVersionName()); |
| params.put("app.eap", Boolean.toString(appInfo.isEAP())); |
| params.put("app.internal", Boolean.toString(application.isInternal())); |
| params.put("app.build", appInfo.getBuild().asString()); |
| params.put("app.version.major", appInfo.getMajorVersion()); |
| params.put("app.version.minor", appInfo.getMinorVersion()); |
| params.put("app.build.date", format(appInfo.getBuildDate())); |
| params.put("app.build.date.release", format(appInfo.getMajorReleaseBuildDate())); |
| params.put("app.compilation.timestamp", IdeaLogger.getOurCompilationTimestamp()); |
| |
| UpdateSettings updateSettings = UpdateSettings.getInstance(); |
| params.put("update.channel.status", updateSettings.getSelectedChannelStatus().getCode()); |
| params.put("update.ignored.builds", StringUtil.join(updateSettings.getIgnoredBuildNumbers(), ",")); |
| |
| params.put("plugin.name", error.getPluginName()); |
| params.put("plugin.version", error.getPluginVersion()); |
| |
| params.put("last.action", error.getLastAction()); |
| params.put("previous.exception", error.getPreviousException() == null ? null : Integer.toString(error.getPreviousException())); |
| |
| params.put("error.message", error.getMessage()); |
| params.put("error.stacktrace", error.getStackTrace()); |
| params.put("error.description", error.getDescription()); |
| |
| params.put("assignee.id", error.getAssigneeId() == null ? null : Integer.toString(error.getAssigneeId())); |
| |
| for (Attachment attachment : error.getAttachments()) { |
| params.put("attachment.name", attachment.getName()); |
| params.put("attachment.value", attachment.getEncodedBytes()); |
| } |
| |
| return params; |
| } |
| |
| private static String format(Calendar calendar) { |
| return calendar == null ? null : Long.toString(calendar.getTime().getTime()); |
| } |
| } |