mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
FUS: don't send logs from IDE built from sources
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ public class EventLogExternalSettingsService extends SettingsConnectionService i
|
||||
@NotNull
|
||||
public LogEventFilter getEventFilter() {
|
||||
final Set<String> whitelist = getWhitelistedGroups();
|
||||
return new LogEventWhitelistFilter(whitelist);
|
||||
return new LogEventCompositeFilter(new LogEventWhitelistFilter(whitelist), LogEventSnapshotBuildFilter.INSTANCE);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+19
-4
@@ -1,18 +1,33 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.internal.statistic.eventLog
|
||||
|
||||
import com.intellij.openapi.util.BuildNumber
|
||||
|
||||
interface LogEventFilter {
|
||||
fun accepts(groupId: String) : Boolean
|
||||
fun accepts(event: LogEvent) : Boolean
|
||||
}
|
||||
|
||||
class LogEventWhitelistFilter(val whitelist: Set<String>) : LogEventFilter {
|
||||
override fun accepts(groupId: String): Boolean {
|
||||
return whitelist.contains(groupId)
|
||||
override fun accepts(event: LogEvent): Boolean {
|
||||
return whitelist.contains(event.group.id)
|
||||
}
|
||||
}
|
||||
|
||||
object LogEventSnapshotBuildFilter : LogEventFilter {
|
||||
override fun accepts(event: LogEvent): Boolean {
|
||||
val parts = BuildNumber.fromString(event.build).components
|
||||
return parts.size != 2 || parts[1] != 0
|
||||
}
|
||||
}
|
||||
|
||||
class LogEventCompositeFilter(vararg val filters : LogEventFilter) : LogEventFilter {
|
||||
override fun accepts(event: LogEvent): Boolean {
|
||||
return filters.all { filter -> filter.accepts(event) }
|
||||
}
|
||||
}
|
||||
|
||||
object LogEventTrueFilter : LogEventFilter {
|
||||
override fun accepts(groupId: String): Boolean {
|
||||
override fun accepts(event: LogEvent): Boolean {
|
||||
return true
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -61,7 +61,7 @@ class LogEventRecordRequest(val product : String, val user: String, val records:
|
||||
var line = firstLine
|
||||
while (line != null && recordSize + estimator.estimate(line) < maxRecordSize) {
|
||||
val event = LogEventSerializer.fromString(line)
|
||||
if (event != null && filter.accepts(event.group.id)) {
|
||||
if (event != null && filter.accepts(event)) {
|
||||
recordSize += estimator.estimate(line)
|
||||
events.add(event)
|
||||
}
|
||||
|
||||
+79
-6
@@ -144,7 +144,7 @@ class FeatureEventLogSerializationTest {
|
||||
all.add(newLogEvent("session-id", "999.9999", "-1", "recorder-id-1", "1", "second"))
|
||||
all.add(newLogEvent("session-id", "999.9999", "-1", "recorder-id-2", "1", "third"))
|
||||
|
||||
testWhitelist(HashSet(), all, ArrayList())
|
||||
testWhitelistFilter(HashSet(), all, ArrayList())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -163,7 +163,7 @@ class FeatureEventLogSerializationTest {
|
||||
|
||||
val whitelist = HashSet<String>()
|
||||
whitelist.add("recorder-id")
|
||||
testWhitelist(whitelist, all, filtered)
|
||||
testWhitelistFilter(whitelist, all, filtered)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -183,7 +183,7 @@ class FeatureEventLogSerializationTest {
|
||||
val whitelist = HashSet<String>()
|
||||
whitelist.add("recorder-id")
|
||||
whitelist.add("recorder-id-2")
|
||||
testWhitelist(whitelist, all, filtered)
|
||||
testWhitelistFilter(whitelist, all, filtered)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -205,7 +205,68 @@ class FeatureEventLogSerializationTest {
|
||||
whitelist.add("recorder-id")
|
||||
whitelist.add("recorder-id-1")
|
||||
whitelist.add("recorder-id-2")
|
||||
testWhitelist(whitelist, all, filtered)
|
||||
testWhitelistFilter(whitelist, all, filtered)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testPartialSnapshotBuildsFilter() {
|
||||
val first = newLogEvent("session-id", "999.9999", "-1", "recorder-id", "1", "first")
|
||||
val second = newLogEvent("session-id", "999.0", "-1", "recorder-id-1", "1", "second")
|
||||
val third = newLogEvent("session-id", "999.9999", "-1", "recorder-id", "1", "third")
|
||||
|
||||
val all = ArrayList<LogEvent>()
|
||||
all.add(first)
|
||||
all.add(second)
|
||||
all.add(third)
|
||||
val filtered = ArrayList<LogEvent>()
|
||||
filtered.add(first)
|
||||
filtered.add(third)
|
||||
|
||||
testSnapshotBuilderFilter(all, filtered)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testNoneSnapshotBuildsFilter() {
|
||||
val first = newLogEvent("session-id", "999.9999", "-1", "recorder-id", "1", "first")
|
||||
val second = newLogEvent("session-id", "999.01", "-1", "recorder-id-1", "1", "second")
|
||||
val third = newLogEvent("session-id", "999.9999", "-1", "recorder-id", "1", "third")
|
||||
|
||||
val all = ArrayList<LogEvent>()
|
||||
all.add(first)
|
||||
all.add(second)
|
||||
all.add(third)
|
||||
testSnapshotBuilderFilter(all, all)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAllSnapshotBuildsFilter() {
|
||||
val first = newLogEvent("session-id", "999.00", "-1", "recorder-id", "1", "first")
|
||||
val second = newLogEvent("session-id", "999.0", "-1", "recorder-id-1", "1", "second")
|
||||
val third = newLogEvent("session-id", "999.0", "-1", "recorder-id", "1", "third")
|
||||
|
||||
val all = ArrayList<LogEvent>()
|
||||
all.add(first)
|
||||
all.add(second)
|
||||
all.add(third)
|
||||
testSnapshotBuilderFilter(all, ArrayList())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSnapshotBuildsAndWhitelistFilter() {
|
||||
val first = newLogEvent("session-id", "999.9999", "-1", "recorder-id", "1", "first")
|
||||
val second = newLogEvent("session-id", "999.9999", "-1", "recorder-id-1", "1", "second")
|
||||
val third = newLogEvent("session-id", "999.0", "-1", "recorder-id", "1", "third")
|
||||
|
||||
val all = ArrayList<LogEvent>()
|
||||
all.add(first)
|
||||
all.add(second)
|
||||
all.add(third)
|
||||
val filtered = ArrayList<LogEvent>()
|
||||
filtered.add(first)
|
||||
|
||||
val whitelist = HashSet<String>()
|
||||
whitelist.add("recorder-id")
|
||||
testWhitelistAndSnapshotBuildFilter(whitelist, all, filtered)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -275,7 +336,19 @@ class FeatureEventLogSerializationTest {
|
||||
assertNull(deserialized)
|
||||
}
|
||||
|
||||
private fun testWhitelist(whitelist: Set<String>, all: List<LogEvent>, filtered: List<LogEvent>) {
|
||||
private fun testWhitelistFilter(whitelist: Set<String>, all: List<LogEvent>, filtered: List<LogEvent>) {
|
||||
testEventLogFilter(all, filtered, LogEventWhitelistFilter(whitelist))
|
||||
}
|
||||
|
||||
private fun testWhitelistAndSnapshotBuildFilter(whitelist: Set<String>, all: List<LogEvent>, filtered: List<LogEvent>) {
|
||||
testEventLogFilter(all, filtered, LogEventCompositeFilter(LogEventWhitelistFilter(whitelist), LogEventSnapshotBuildFilter))
|
||||
}
|
||||
|
||||
private fun testSnapshotBuilderFilter(all: List<LogEvent>, filtered: List<LogEvent>) {
|
||||
testEventLogFilter(all, filtered, LogEventSnapshotBuildFilter)
|
||||
}
|
||||
|
||||
private fun testEventLogFilter(all: List<LogEvent>, filtered: List<LogEvent>, filter : LogEventFilter) {
|
||||
val records = ArrayList<LogEventRecord>()
|
||||
if (!filtered.isEmpty()) {
|
||||
records.add(LogEventRecord(filtered))
|
||||
@@ -289,7 +362,7 @@ class FeatureEventLogSerializationTest {
|
||||
out.append(LogEventSerializer.toString(event)).append("\n")
|
||||
}
|
||||
FileUtil.writeToFile(log, out.toString())
|
||||
val actual = LogEventRecordRequest.create(log, "IU", "user-id", 600, LogEventWhitelistFilter(whitelist))
|
||||
val actual = LogEventRecordRequest.create(log, "IU", "user-id", 600, filter)
|
||||
assertEquals(expected, actual)
|
||||
}
|
||||
finally {
|
||||
|
||||
Reference in New Issue
Block a user