Skip to content

Commit

Permalink
Refactor TelemetryService and add initial unit tests (#81)
Browse files Browse the repository at this point in the history
  • Loading branch information
breedloj authored Oct 15, 2024
1 parent adf5a5e commit 64f3279
Show file tree
Hide file tree
Showing 13 changed files with 507 additions and 179 deletions.
12 changes: 9 additions & 3 deletions plugin/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,14 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.31.0",
org.eclipse.ui.workbench.texteditor;bundle-version="3.17.400",
org.eclipse.mylyn.commons.ui;bundle-version="4.2.0",
org.eclipse.jetty.server;bundle-version="12.0.9",
org.eclipse.jetty.util;bundle-version="12.0.9"
org.eclipse.jetty.util;bundle-version="12.0.9",
org.junit,
junit-jupiter-api
Bundle-Classpath: .,
target/dependency/animal-sniffer-annotations-1.9.jar,
target/dependency/annotations-2.25.33.jar,
target/dependency/apache-client-2.25.33.jar,
target/dependency/apiguardian-api-1.1.2.jar,
target/dependency/asm-9.7.jar,
target/dependency/asm-analysis-9.7.jar,
target/dependency/asm-commons-9.7.jar,
Expand Down Expand Up @@ -57,6 +60,7 @@ Bundle-Classpath: .,
target/dependency/failureaccess-1.0.2.jar,
target/dependency/gson-2.11.0.jar,
target/dependency/guava-33.2.0-jre.jar,
target/dependency/hamcrest-core-1.3.jar,
target/dependency/http-auth-2.25.33.jar,
target/dependency/http-auth-aws-2.25.33.jar,
target/dependency/http-auth-spi-2.25.33.jar,
Expand All @@ -71,6 +75,7 @@ Bundle-Classpath: .,
target/dependency/jackson-databind-2.17.1.jar,
target/dependency/jakarta.annotation-api-2.1.1.jar,
target/dependency/jakarta.inject-api-2.0.1.jar,
target/dependency/jcip-annotations-1.0-1.jar,
target/dependency/jetty-http-12.0.9.jar,
target/dependency/jetty-io-12.0.9.jar,
target/dependency/jetty-server-12.0.9.jar,
Expand All @@ -80,6 +85,7 @@ Bundle-Classpath: .,
target/dependency/jna-platform-5.14.0.jar,
target/dependency/json-utils-2.25.33.jar,
target/dependency/jsr305-3.0.2.jar,
target/dependency/junit-4.13.2.jar,
target/dependency/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar,
target/dependency/metrics-spi-2.25.33.jar,
target/dependency/netty-buffer-4.1.108.Final.jar,
Expand All @@ -93,7 +99,8 @@ Bundle-Classpath: .,
target/dependency/netty-transport-4.1.108.Final.jar,
target/dependency/netty-transport-classes-epoll-4.1.108.Final.jar,
target/dependency/netty-transport-native-unix-common-4.1.108.Final.jar,
target/dependency/nimbus-jose-jwt-9.11.jar,
target/dependency/nimbus-jose-jwt-9.37.2.jar,
target/dependency/opentest4j-1.3.0.jar,
target/dependency/org.apache.aries.spifly.dynamic.bundle-1.3.7.jar,
target/dependency/org.apache.felix.scr-2.2.10.jar,
target/dependency/org.eclipse.lsp4j-0.23.1.jar,
Expand All @@ -111,7 +118,6 @@ Bundle-Classpath: .,
target/dependency/reactive-streams-1.0.4.jar,
target/dependency/regions-2.25.33.jar,
target/dependency/sdk-core-2.25.33.jar,
target/dependency/slf4j-api-1.7.30.jar,
target/dependency/slf4j-api-2.0.13.jar,
target/dependency/third-party-jackson-core-2.25.33.jar,
target/dependency/utils-2.25.33.jar,
Expand Down
32 changes: 28 additions & 4 deletions plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,16 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>9.37.2</version>
</dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.14.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>9.37.2</version>
</dependency>
</dependencies>

<build>
Expand Down Expand Up @@ -193,6 +199,14 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<testSourceDirectory>${project.build.testSourceDirectory}</testSourceDirectory>
</configuration>
Expand Down Expand Up @@ -226,6 +240,7 @@
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<executions>
<execution>
Expand All @@ -250,16 +265,25 @@
</execution>
<execution>
<id>default-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<includes>
<include>software/aws/toolkits/eclipse/amazonq/**</include>
</includes>
</configuration>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<includes>
<include>software/aws/toolkits/eclipse/amazonq/**</include>
</includes>
<rules>
<rule>
<element>BUNDLE</element>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import software.aws.toolkits.eclipse.amazonq.lsp.model.TelemetryEvent;
import software.aws.toolkits.eclipse.amazonq.plugin.Activator;
import software.aws.toolkits.eclipse.amazonq.preferences.AmazonQPreferencePage;
import software.aws.toolkits.eclipse.amazonq.telemetry.TelemetryService;
import software.aws.toolkits.eclipse.amazonq.util.Constants;
import software.aws.toolkits.eclipse.amazonq.util.ObjectMapperFactory;
import software.aws.toolkits.eclipse.amazonq.views.model.Customization;
Expand Down Expand Up @@ -84,6 +83,6 @@ public final void notifyProgress(final ProgressParams params) {
@Override
public final void telemetryEvent(final Object event) {
TelemetryEvent telemetryEvent = ObjectMapperFactory.getInstance().convertValue(event, TelemetryEvent.class);
TelemetryService.emitMetric(telemetryEvent);
Activator.getTelemetryService().emitMetric(telemetryEvent);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

import software.aws.toolkits.eclipse.amazonq.lsp.model.AwsExtendedInitializeResult;
import software.aws.toolkits.eclipse.amazonq.providers.LspProvider;
import software.aws.toolkits.eclipse.amazonq.util.ClientMetadata;
import software.aws.toolkits.eclipse.amazonq.telemetry.metadata.ClientMetadata;
import software.aws.toolkits.eclipse.amazonq.telemetry.metadata.PluginClientMetadata;

public class AmazonQLspServerBuilder extends Builder<AmazonQLspServer> {

Expand All @@ -37,7 +38,8 @@ protected final MessageConsumer wrapMessageConsumer(final MessageConsumer consum
return super.wrapMessageConsumer((Message message) -> {
if (message instanceof RequestMessage && ((RequestMessage) message).getMethod().equals("initialize")) {
InitializeParams initParams = (InitializeParams) ((RequestMessage) message).getParams();
initParams.setClientInfo(new ClientInfo(ClientMetadata.getPluginName(), ClientMetadata.getPluginVersion()));
ClientMetadata metadata = PluginClientMetadata.getInstance();
initParams.setClientInfo(new ClientInfo(metadata.getPluginName(), metadata.getPluginVersion()));
}
if (message instanceof ResponseMessage && ((ResponseMessage) message).getResult() instanceof AwsExtendedInitializeResult) {
AwsExtendedInitializeResult result = (AwsExtendedInitializeResult) ((ResponseMessage) message).getResult();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

import software.aws.toolkits.eclipse.amazonq.telemetry.service.DefaultTelemetryService;
import software.aws.toolkits.eclipse.amazonq.telemetry.service.TelemetryService;

public class Activator extends AbstractUIPlugin {

public static final String PLUGIN_ID = "amazon-q-eclipse";
private static Activator plugin;
private static TelemetryService telemetryService;

public Activator() {
super();
plugin = this;
telemetryService = DefaultTelemetryService.builder().build();
}

@Override
Expand All @@ -26,4 +31,9 @@ public static Activator getDefault() {
return plugin;
}

// TODO: replace with proper injection pattern
public static TelemetryService getTelemetryService() {
return telemetryService;
}

}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.eclipse.amazonq.telemetry.metadata;

public interface ClientMetadata {
String getOSName();

String getOSVersion();

String getIdeName();

String getIdeVersion();

String getPluginName();

String getPluginVersion();

String getClientId();
}
Loading

0 comments on commit 64f3279

Please sign in to comment.