Skip to content

Commit bf4f459

Browse files
authored
Adopt TAS client (#959)
Signed-off-by: Sheng Chen <[email protected]>
1 parent d3c3a20 commit bf4f459

File tree

4 files changed

+75
-5
lines changed

4 files changed

+75
-5
lines changed

package-lock.json

Lines changed: 33 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,7 @@
786786
"lodash": "^4.17.20",
787787
"uuid": "^8.3.1",
788788
"vscode-extension-telemetry": "^0.1.6",
789-
"vscode-extension-telemetry-wrapper": "^0.8.0"
789+
"vscode-extension-telemetry-wrapper": "^0.9.0",
790+
"vscode-tas-client": "^0.1.17"
790791
}
791792
}

src/experimentationService.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
import * as vscode from "vscode";
5+
import { addContextProperty, sendInfo } from "vscode-extension-telemetry-wrapper";
6+
import { getExperimentationService, IExperimentationService, IExperimentationTelemetry, TargetPopulation } from "vscode-tas-client";
7+
8+
class ExperimentationTelemetry implements IExperimentationTelemetry {
9+
10+
public setSharedProperty(name: string, value: string): void {
11+
addContextProperty(name, value);
12+
}
13+
14+
public postEvent(eventName: string, props: Map<string, string>): void {
15+
const payload: any = { __event_name__: eventName };
16+
for (const [key, value] of props) {
17+
payload[key] = value;
18+
}
19+
20+
sendInfo("", payload);
21+
}
22+
}
23+
24+
let expService: IExperimentationService;
25+
26+
export function getExpService() {
27+
return expService;
28+
}
29+
30+
export function initExpService(context: vscode.ExtensionContext): void {
31+
const packageJson: {[key: string]: any} = require("../package.json");
32+
// tslint:disable: no-string-literal
33+
const extensionName = `${packageJson["publisher"]}.${packageJson["name"]}`;
34+
const extensionVersion = packageJson["version"];
35+
// tslint:enable: no-string-literal
36+
expService = getExperimentationService(extensionName, extensionVersion,
37+
TargetPopulation.Public, new ExperimentationTelemetry(), context.globalState);
38+
}

src/extension.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { JavaDebugConfigurationProvider } from "./configurationProvider";
1212
import { HCR_EVENT, JAVA_LANGID, USER_NOTIFICATION_EVENT } from "./constants";
1313
import { NotificationBar } from "./customWidget";
1414
import { initializeCodeLensProvider, startDebugging } from "./debugCodeLensProvider";
15+
import { initExpService } from "./experimentationService";
1516
import { handleHotCodeReplaceCustomEvent, initializeHotCodeReplace, NO_BUTTON, YES_BUTTON } from "./hotCodeReplace";
1617
import { JavaDebugAdapterDescriptorFactory } from "./javaDebugAdapterDescriptorFactory";
1718
import { logJavaException, logJavaInfo } from "./javaLogger";
@@ -36,6 +37,7 @@ function initializeExtension(_operationId: string, context: vscode.ExtensionCont
3637
// Deprecated
3738
logger.initialize(context, true);
3839

40+
initExpService(context);
3941
registerDebugEventListener(context);
4042
context.subscriptions.push(logger);
4143
context.subscriptions.push(vscode.window.registerTerminalLinkProvider(new JavaTerminalLinkProvder()));

0 commit comments

Comments
 (0)