Skip to content

Commit

Permalink
Revert JNA exclusion, use UUID stored in persisted plugin state for i…
Browse files Browse the repository at this point in the history
…dentifying unique user.
  • Loading branch information
MarcinVaadin committed Jan 13, 2025
1 parent 579d87d commit 624a853
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
5 changes: 1 addition & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,7 @@ repositories {
dependencies {
implementation("com.amplitude:java-sdk:[1.8.0,2.0)")
implementation("org.json:json:20201115")
implementation("com.vaadin:license-checker:1.13.3") {
exclude(group = "net.java.dev.jna", module = "jna")
exclude(group = "net.java.dev.jna", module = "jna-platform")
}
implementation("com.vaadin:license-checker:1.13.3")

intellijPlatform {
intellijIdeaUltimate(buildVersion)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull
@State(name = "com.vaadin.plugin.ui.settings.VaadinSettings", storages = [Storage("VaadinSettings.xml")])
internal class VaadinSettings : PersistentStateComponent<VaadinSettings.State> {
internal class State {
var userId: String? = null
var sendUsageStatistics: Boolean = true
}

Expand Down
9 changes: 7 additions & 2 deletions src/main/kotlin/com/vaadin/plugin/utils/AmpliUtil.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.vaadin.plugin.utils

import ai.grazie.utils.mpp.UUID
import com.amplitude.ampli.Ampli
import com.amplitude.ampli.EventOptions
import com.amplitude.ampli.LoadOptions
Expand All @@ -10,9 +11,9 @@ import com.intellij.util.io.DigestUtil
import com.vaadin.plugin.copilot.CopilotPluginUtil
import com.vaadin.plugin.ui.settings.VaadinSettings
import com.vaadin.pro.licensechecker.LocalProKey
import com.vaadin.pro.licensechecker.MachineId
import com.vaadin.pro.licensechecker.ProKey
import java.nio.charset.Charset
import java.util.Objects

private val eventOptions =
EventOptions(
Expand All @@ -35,7 +36,11 @@ private fun getUserId(): String? {
if (proKey != null) {
"pro-${DigestUtil.sha256Hex(proKey.proKey.toByteArray(Charset.defaultCharset()))}"
} else {
MachineId.get()
val state: VaadinSettings.State = Objects.requireNonNull(VaadinSettings.instance.state)
if (state.userId == null) {
state.userId = "user-${UUID.random().text}"
}
state.userId
}
ampli.load(LoadOptions(Ampli.Environment.IDEPLUGINS))
ampli.identify(userId, eventOptions)
Expand Down

0 comments on commit 624a853

Please sign in to comment.