diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e09131..4ce931c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,6 @@ # CodeClocker Changelog -## [Unreleased] +## 1.0.2 ### Added -- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template) +- Support IntelliJ Platform 2024.3.5 diff --git a/README.md b/README.md index 3953baa..2e6c4f7 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # CodeClocker – IntelliJ Plugin for Tracking Developer Activity ![Build](https://github.com/codeclocker/codeclocker-intellij-plugin/actions/workflows/gradle.yml/badge.svg) -[![Version](https://img.shields.io/jetbrains/plugin/v/MARKETPLACE_ID.svg)](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID) -[![Downloads](https://img.shields.io/jetbrains/plugin/d/MARKETPLACE_ID.svg)](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID) +[![Version](https://img.shields.io/jetbrains/plugin/v/MARKETPLACE_ID.svg)](https://plugins.jetbrains.com/plugin/26962) +[![Downloads](https://img.shields.io/jetbrains/plugin/d/MARKETPLACE_ID.svg)](https://plugins.jetbrains.com/plugin/26962) @@ -29,9 +29,9 @@ CodeClocker automatically tracks coding activity and visualizes it on web dashbo - Using JetBrains Marketplace: - Go to [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID) and install it by clicking the Install to ... button in case your IDE is running. + Go to [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/26962) and install it by clicking the Install to ... button in case your IDE is running. - You can also download the [latest release](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID/versions) from JetBrains Marketplace and install it manually using + You can also download the [latest release](https://plugins.jetbrains.com/plugin/26962/versions) from JetBrains Marketplace and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk... - Manually: diff --git a/build.gradle.kts b/build.gradle.kts index 376dc16..62dc125 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ version = providers.gradleProperty("pluginVersion").get() // Set the JVM language level used to build the project. kotlin { - jvmToolchain(17) + jvmToolchain(21) } // Configure project's dependencies @@ -33,6 +33,7 @@ repositories { // Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog dependencies { testImplementation(libs.junit) + testImplementation(libs.opentest4j) // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html intellijPlatform { @@ -44,8 +45,6 @@ dependencies { // Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace. plugins(providers.gradleProperty("platformPlugins").map { it.split(',') }) - pluginVerifier() - zipSigner() testFramework(TestFrameworkType.Platform) } } @@ -53,6 +52,7 @@ dependencies { // Configure IntelliJ Platform Gradle Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-extension.html intellijPlatform { pluginConfiguration { + name = providers.gradleProperty("pluginName") version = providers.gradleProperty("pluginVersion") // Extract the section from README.md and provide for the plugin's manifest diff --git a/gradle.properties b/gradle.properties index 72e2ea3..88ed5f9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,24 +4,24 @@ pluginGroup = com.codeclocker pluginName = CodeClocker - IntelliJ IDEA Activity Tracker pluginRepositoryUrl = https://github.com/codeclocker/codeclocker-intellij-plugin # SemVer format -> https://semver.org -pluginVersion = 1.0.0 +pluginVersion = 1.0.2 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html -pluginSinceBuild = 233 -pluginUntilBuild = 242.* +pluginSinceBuild = 242 +pluginUntilBuild = 252.* # IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension platformType = IC -platformVersion = 2023.3.8 +platformVersion = 2024.2.5 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP platformPlugins = # Example: platformBundledPlugins = com.intellij.java -platformBundledPlugins = com.intellij.java +platformBundledPlugins = # Gradle Releases -> https://github.com/gradle/gradle/releases -gradleVersion = 8.10.2 +gradleVersion = 8.13 # Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib kotlin.stdlib.default.dependency = false @@ -30,4 +30,4 @@ kotlin.stdlib.default.dependency = false org.gradle.configuration-cache = true # Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html -org.gradle.caching = true +org.gradle.caching = true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3baa4f9..1fd5723 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,16 +1,18 @@ [versions] # libraries junit = "4.13.2" +opentest4j = "1.3.0" # plugins changelog = "2.2.1" -intelliJPlatform = "2.3.0" -kotlin = "1.9.25" -kover = "0.8.3" -qodana = "2024.2.3" +intelliJPlatform = "2.5.0" +kotlin = "2.1.20" +kover = "0.9.1" +qodana = "2024.3.4" [libraries] junit = { group = "junit", name = "junit", version.ref = "junit" } +opentest4j = { group = "org.opentest4j", name = "opentest4j", version.ref = "opentest4j" } [plugins] changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" } diff --git a/gradlew b/gradlew index f5feea6..faf9300 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/src/main/java/com/codeclocker/plugin/intellij/HubHost.java b/src/main/java/com/codeclocker/plugin/intellij/HubHost.java index 640d4b8..10bd3ae 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/HubHost.java +++ b/src/main/java/com/codeclocker/plugin/intellij/HubHost.java @@ -5,5 +5,5 @@ public class HubHost { public static final String HUB_UI_HOST = "https://hub.codeclocker.com"; public static final String HUB_API_HOST = "https://hub.codeclocker.com"; // public static final String HUB_UI_HOST = "http://localhost:5173"; - // public static final String HUB_API_HOST = "http://localhost:8080"; + // public static final String HUB_API_HOST = "http://localhost:8080"; } diff --git a/src/main/java/com/codeclocker/plugin/intellij/apikey/ApiKeyActivationCheckerTask.java b/src/main/java/com/codeclocker/plugin/intellij/apikey/ApiKeyActivationCheckerTask.java index 3a773ee..cbf65dc 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/apikey/ApiKeyActivationCheckerTask.java +++ b/src/main/java/com/codeclocker/plugin/intellij/apikey/ApiKeyActivationCheckerTask.java @@ -55,7 +55,7 @@ private void checkApiKeyState() { cancelTask(); } } catch (Exception ex) { - LOG.error("Failed to check API key state: {}", ex.getMessage()); + LOG.debug("Failed to check API key state: {}", ex.getMessage()); } } diff --git a/src/main/java/com/codeclocker/plugin/intellij/apikey/CheckApiKeyStateHttpClient.java b/src/main/java/com/codeclocker/plugin/intellij/apikey/CheckApiKeyStateHttpClient.java index a9cd605..783dfa2 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/apikey/CheckApiKeyStateHttpClient.java +++ b/src/main/java/com/codeclocker/plugin/intellij/apikey/CheckApiKeyStateHttpClient.java @@ -3,11 +3,9 @@ import static com.codeclocker.plugin.intellij.HubHost.HUB_API_HOST; import static com.codeclocker.plugin.intellij.Timeouts.CONNECT_TIMEOUT; import static com.codeclocker.plugin.intellij.Timeouts.READ_TIMEOUT; -import static com.codeclocker.plugin.intellij.http.HttpResponseReader.readResponse; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.util.net.HttpConfigurable; -import java.net.HttpURLConnection; +import com.intellij.util.io.HttpRequests; import org.jetbrains.annotations.Nullable; public class CheckApiKeyStateHttpClient { @@ -18,20 +16,13 @@ public class CheckApiKeyStateHttpClient { public String check(String apiKey) { LOG.debug("Checking subscription state by API Key: {}", apiKey); try { - HttpURLConnection connection = - (HttpURLConnection) - HttpConfigurable.getInstance() - .openConnection(HUB_API_HOST + "/api/v1/subscriptions/state-by-api-key"); - connection.setConnectTimeout(CONNECT_TIMEOUT); - connection.setReadTimeout(READ_TIMEOUT); - connection.setRequestMethod("GET"); - connection.setRequestProperty("X-codeclocker-api-key", apiKey); - connection.setDoOutput(true); - - LOG.debug("HTTP Response Code: " + connection.getResponseCode()); - return readResponse(connection); + return HttpRequests.request(HUB_API_HOST + "/api/v1/subscriptions/state-by-api-key") + .connectTimeout(CONNECT_TIMEOUT) + .readTimeout(READ_TIMEOUT) + .tuner(connection -> connection.setRequestProperty("X-codeclocker-api-key", apiKey)) + .readString(); } catch (Exception ex) { - LOG.error("Error checking subscription state: {}", ex.getMessage()); + LOG.debug("Error checking subscription state: {}", ex.getMessage()); return null; } } diff --git a/src/main/java/com/codeclocker/plugin/intellij/config/ConfigProvider.java b/src/main/java/com/codeclocker/plugin/intellij/config/ConfigProvider.java index 7f2a6ab..9a3d739 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/config/ConfigProvider.java +++ b/src/main/java/com/codeclocker/plugin/intellij/config/ConfigProvider.java @@ -21,11 +21,11 @@ public class ConfigProvider { private static final String NEXT_CONFIG_LOAD_TIMESTAMP = "com.codeclocker.config.next-config-load-timestamp"; - private final PluginConfigClient pluginConfigClient; + private final PluginConfigHttpClient pluginConfigHttpClient; public ConfigProvider() { - this.pluginConfigClient = - ApplicationManager.getApplication().getService(PluginConfigClient.class); + this.pluginConfigHttpClient = + ApplicationManager.getApplication().getService(PluginConfigHttpClient.class); long nextConfigLoadTimestamp = PropertiesComponent.getInstance().getLong(NEXT_CONFIG_LOAD_TIMESTAMP, -1); long now = System.currentTimeMillis(); @@ -57,9 +57,9 @@ private static int getProperty(String property) { private void loadConfig() { try { String apiKey = ApiKeyLifecycle.getActiveApiKey(); - PluginConfigDto config = pluginConfigClient.getConfig(apiKey); + PluginConfigDto config = pluginConfigHttpClient.getConfig(apiKey); if (config == null) { - LOG.error("Failed to load plugin config"); + LOG.debug("Failed to load plugin config"); return; } @@ -77,7 +77,7 @@ private void loadConfig() { propertiesComponent.setValue( NEXT_CONFIG_LOAD_TIMESTAMP, String.valueOf(nextConfigLoadTimestamp.toMillis())); } catch (Exception e) { - LOG.error("Error loading config from hub: {}", e.getMessage()); + LOG.debug("Error loading config from hub: {}", e.getMessage()); } } } diff --git a/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigClient.java b/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigClient.java deleted file mode 100644 index 83f0e35..0000000 --- a/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigClient.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.codeclocker.plugin.intellij.config; - -import static com.codeclocker.plugin.intellij.HubHost.HUB_API_HOST; -import static com.codeclocker.plugin.intellij.JsonMapper.OBJECT_MAPPER; -import static com.codeclocker.plugin.intellij.Timeouts.CONNECT_TIMEOUT; -import static com.codeclocker.plugin.intellij.Timeouts.READ_TIMEOUT; -import static com.codeclocker.plugin.intellij.http.HttpResponseReader.readResponse; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.util.net.HttpConfigurable; -import java.net.HttpURLConnection; -import org.jetbrains.annotations.Nullable; - -public class PluginConfigClient { - - private static final Logger LOG = Logger.getInstance(PluginConfigClient.class); - - @Nullable - public PluginConfigDto getConfig(String apiKey) { - LOG.debug("Getting plugin config with API Key: {}", apiKey); - try { - HttpURLConnection connection = - (HttpURLConnection) - HttpConfigurable.getInstance() - .openConnection(HUB_API_HOST + "/api/v1/plugin-configs"); - connection.setConnectTimeout(CONNECT_TIMEOUT); - connection.setReadTimeout(READ_TIMEOUT); - connection.setRequestMethod("GET"); - connection.setRequestProperty("X-codeclocker-api-key", apiKey); - connection.setDoOutput(true); - - LOG.debug("HTTP Response Code: " + connection.getResponseCode()); - String response = readResponse(connection); - if (response != null) { - return OBJECT_MAPPER.readValue(response, PluginConfigDto.class); - } - } catch (Exception ex) { - LOG.error("Error getting plugin config: {}", ex.getMessage()); - } - - return null; - } -} diff --git a/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigHttpClient.java b/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigHttpClient.java new file mode 100644 index 0000000..25f192e --- /dev/null +++ b/src/main/java/com/codeclocker/plugin/intellij/config/PluginConfigHttpClient.java @@ -0,0 +1,40 @@ +package com.codeclocker.plugin.intellij.config; + +import static com.codeclocker.plugin.intellij.HubHost.HUB_API_HOST; +import static com.codeclocker.plugin.intellij.JsonMapper.OBJECT_MAPPER; +import static com.codeclocker.plugin.intellij.Timeouts.CONNECT_TIMEOUT; +import static com.codeclocker.plugin.intellij.Timeouts.READ_TIMEOUT; +import static org.apache.commons.lang3.StringUtils.isNotBlank; + +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.util.io.HttpRequests; +import org.jetbrains.annotations.Nullable; + +public class PluginConfigHttpClient { + + private static final Logger LOG = Logger.getInstance(PluginConfigHttpClient.class); + + @Nullable + public PluginConfigDto getConfig(String apiKey) { + LOG.debug("Getting plugin config with API Key: {}", apiKey); + try { + String response = + HttpRequests.request(HUB_API_HOST + "/api/v1/plugin-configs") + .connectTimeout(CONNECT_TIMEOUT) + .readTimeout(READ_TIMEOUT) + .tuner( + connection -> { + if (isNotBlank(apiKey)) { + connection.setRequestProperty("X-codeclocker-api-key", apiKey); + } + }) + .readString(); + + return OBJECT_MAPPER.readValue(response, PluginConfigDto.class); + } catch (Exception ex) { + LOG.debug("Error getting plugin config: " + ex.getMessage()); + } + + return null; + } +} diff --git a/src/main/java/com/codeclocker/plugin/intellij/http/HttpResponseReader.java b/src/main/java/com/codeclocker/plugin/intellij/http/HttpResponseReader.java deleted file mode 100644 index ee61bf5..0000000 --- a/src/main/java/com/codeclocker/plugin/intellij/http/HttpResponseReader.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.codeclocker.plugin.intellij.http; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.apache.commons.lang3.StringUtils.isNotBlank; - -import com.intellij.openapi.diagnostic.Logger; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import org.jetbrains.annotations.Nullable; - -public class HttpResponseReader { - - private static final Logger LOG = Logger.getInstance(HttpResponseReader.class); - - @Nullable - public static String readResponse(HttpURLConnection connection) { - try (InputStream stream = - connection.getErrorStream() != null - ? connection.getErrorStream() - : connection.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(stream, UTF_8))) { - - StringBuilder response = new StringBuilder(); - String line; - while ((line = reader.readLine()) != null) { - response.append(line); - } - - String responseString = response.toString(); - if (isNotBlank(responseString)) { - LOG.debug("Read response: {}", responseString); - } - - return responseString; - } catch (IOException e) { - LOG.error("Error reading response body: {}", e.getMessage()); - return null; - } - } -} diff --git a/src/main/java/com/codeclocker/plugin/intellij/listeners/FocusListener.java b/src/main/java/com/codeclocker/plugin/intellij/listeners/FocusListener.java index 26e71f0..494a926 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/listeners/FocusListener.java +++ b/src/main/java/com/codeclocker/plugin/intellij/listeners/FocusListener.java @@ -43,7 +43,7 @@ public void eventDispatched(AWTEvent event) { Project project = getProject(component); if (project == null) { - LOG.error("Project is null. Doing nothing"); + LOG.debug("Project is null. Doing nothing"); return; } diff --git a/src/main/java/com/codeclocker/plugin/intellij/reporting/ActivitySampleHttpClient.java b/src/main/java/com/codeclocker/plugin/intellij/reporting/ActivitySampleHttpClient.java index 08d7d4c..130ddb5 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/reporting/ActivitySampleHttpClient.java +++ b/src/main/java/com/codeclocker/plugin/intellij/reporting/ActivitySampleHttpClient.java @@ -3,18 +3,16 @@ import static com.codeclocker.plugin.intellij.HubHost.HUB_API_HOST; import static com.codeclocker.plugin.intellij.Timeouts.CONNECT_TIMEOUT; import static com.codeclocker.plugin.intellij.Timeouts.READ_TIMEOUT; -import static com.codeclocker.plugin.intellij.http.HttpResponseReader.readResponse; import static com.codeclocker.plugin.intellij.reporting.SentStatus.ERROR; import static com.codeclocker.plugin.intellij.reporting.SentStatus.OK; +import static com.intellij.util.io.HttpRequests.JSON_CONTENT_TYPE; import static java.nio.charset.StandardCharsets.UTF_8; import com.codeclocker.plugin.intellij.apikey.ApiKeyLifecycle; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.util.net.HttpConfigurable; +import com.intellij.util.io.HttpRequests; import java.io.IOException; -import java.io.OutputStream; -import java.net.HttpURLConnection; public class ActivitySampleHttpClient { @@ -37,42 +35,23 @@ public SentStatus sendChangesSample(String apiKey, String jsonData) { private SentStatus send(String path, String apiKey, String jsonData) { try { LOG.debug("Posting data: {}", jsonData); - HttpURLConnection connection = - (HttpURLConnection) HttpConfigurable.getInstance().openConnection(HUB_API_HOST + path); - connection.setConnectTimeout(CONNECT_TIMEOUT); - connection.setReadTimeout(READ_TIMEOUT); - connection.setRequestMethod("POST"); - connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); - connection.setRequestProperty("X-codeclocker-api-key", apiKey); - connection.setDoOutput(true); + String response = + HttpRequests.post(HUB_API_HOST + path, JSON_CONTENT_TYPE) + .connectTimeout(CONNECT_TIMEOUT) + .readTimeout(READ_TIMEOUT) + .tuner(connection -> connection.setRequestProperty("X-codeclocker-api-key", apiKey)) + .connect( + request -> { + request.write(jsonData.getBytes(UTF_8)); + return request.readString(); + }); - try (OutputStream os = connection.getOutputStream()) { - byte[] input = jsonData.getBytes(UTF_8); - os.write(input, 0, input.length); - } - - int responseCode = connection.getResponseCode(); - LOG.debug("HTTP Response Code: " + responseCode); - processResponse(connection); - - if (responseCode != 200) { - return ERROR; - } + apiKeyLifecycle.processHubErrorResponse(response); return OK; } catch (IOException ex) { - LOG.error("Error sending activity sample: {}", ex.getMessage()); - } - - return ERROR; - } - - private void processResponse(HttpURLConnection connection) { - try { - String response = readResponse(connection); - apiKeyLifecycle.processHubErrorResponse(response); - } catch (Exception ex) { - LOG.error("Failed to process response: {}", ex.getMessage()); + LOG.debug("Error sending activity sample: " + ex.getMessage()); + return ERROR; } } } diff --git a/src/main/java/com/codeclocker/plugin/intellij/reporting/DataReportingTask.java b/src/main/java/com/codeclocker/plugin/intellij/reporting/DataReportingTask.java index 909bc7d..0c19494 100644 --- a/src/main/java/com/codeclocker/plugin/intellij/reporting/DataReportingTask.java +++ b/src/main/java/com/codeclocker/plugin/intellij/reporting/DataReportingTask.java @@ -66,14 +66,14 @@ private void sendActivitySampleToServer() { SentStatus unpublishedSamplesPublishStatus = publishUnpublishedSamples(apiKey); if (unpublishedSamplesPublishStatus == ERROR) { - LOG.error("Failed to publish unpublished samples"); + LOG.debug("Failed to publish unpublished samples"); return; } publishTimeSpentSample(apiKey); publishChangesSample(apiKey); } catch (Exception ex) { - LOG.error("Error sending activity sample: {}", ex.getMessage()); + LOG.debug("Error sending activity sample: {}", ex.getMessage()); } } @@ -89,7 +89,7 @@ private void publishTimeSpentSample(String apiKey) { SentStatus status = activitySampleHttpClient.sendTimeSpentSample(apiKey, json); if (status == ERROR) { - LOG.error("Error sending time spent sample. Caching it for future retries"); + LOG.debug("Error sending time spent sample. Caching it for future retries"); unpublishedTimeSpentSamples.add(json); } } @@ -106,7 +106,7 @@ private void publishChangesSample(String apiKey) { SentStatus status = activitySampleHttpClient.sendChangesSample(apiKey, json); if (status == ERROR) { - LOG.error("Error sending changes sample. Caching it for future retries"); + LOG.debug("Error sending changes sample. Caching it for future retries"); unpublishedChangesSamples.add(json); } } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 6fae580..0a5b5c9 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -19,7 +19,7 @@ - +