diff --git a/java/compiler/impl/intellij.java.compiler.impl.iml b/java/compiler/impl/intellij.java.compiler.impl.iml
index 9196878d9783..cb4d62302a70 100644
--- a/java/compiler/impl/intellij.java.compiler.impl.iml
+++ b/java/compiler/impl/intellij.java.compiler.impl.iml
@@ -42,7 +42,8 @@
-
+
+
diff --git a/java/compiler/impl/src/com/intellij/compiler/CompilerConfigurationSettings.kt b/java/compiler/impl/src/com/intellij/compiler/CompilerConfigurationSettings.kt
index 0ac77fab3d0a..5ec74fa134a4 100644
--- a/java/compiler/impl/src/com/intellij/compiler/CompilerConfigurationSettings.kt
+++ b/java/compiler/impl/src/com/intellij/compiler/CompilerConfigurationSettings.kt
@@ -15,8 +15,13 @@ class CompilerConfigurationSettings : SimplePersistentStateComponent authHeaders = CompilerCacheServerAuthUtil.getRequestHeaders(project, true);
if (authHeaders.isEmpty()) return null;
- Pair commit = getCommitToDownload(project);
+ Pair commit = getCommitToDownload(project, serverUrl);
if (commit == null) return null;
CmdlineRemoteProto.Message.ControllerMessage.CacheDownloadSettings.Builder builder =
@@ -52,8 +44,12 @@ public class CompilerCacheConfigurator {
return builder.build();
}
+ public static boolean isServerUrlConfigured(@NotNull Project project) {
+ return getServerUrl(project) != null;
+ }
+
@Nullable
- private Pair getCommitToDownload(@NotNull Project project) {
+ private static Pair getCommitToDownload(@NotNull Project project, @NotNull String serverUrl) {
Map> availableCommitsPerRemote = CompilerCachesServerClient.getCacheKeysPerRemote(project, serverUrl);
GitCommitsIterator commitsIterator = new GitCommitsIterator(project, INTELLIJ_REPO_NAME);
String latestDownloadedCommit = GitRepositoryUtil.getLatestDownloadedCommit();
@@ -102,4 +98,8 @@ public class CompilerCacheConfigurator {
}
return Pair.create(commitToDownload, commitsCountBetweenCompilation);
}
+
+ private static @Nullable String getServerUrl(@NotNull Project project) {
+ return CompilerConfigurationSettings.Companion.getInstance(project).getCacheServerUrl();
+ }
}
diff --git a/java/compiler/impl/src/com/intellij/compiler/cache/CompilerCacheStartupActivity.java b/java/compiler/impl/src/com/intellij/compiler/cache/CompilerCacheStartupActivity.java
index d019395e39a4..75d4265b6977 100644
--- a/java/compiler/impl/src/com/intellij/compiler/cache/CompilerCacheStartupActivity.java
+++ b/java/compiler/impl/src/com/intellij/compiler/cache/CompilerCacheStartupActivity.java
@@ -2,8 +2,6 @@ package com.intellij.compiler.cache;
import com.intellij.compiler.cache.client.JpsServerAuthExtension;
import com.intellij.compiler.cache.git.GitRepositoryUtil;
-import com.intellij.ide.browsers.BrowserLauncher;
-import com.intellij.notification.NotificationAction;
import com.intellij.notification.NotificationType;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.compiler.JavaCompilerBundle;
@@ -27,7 +25,7 @@ public final class CompilerCacheStartupActivity implements StartupActivity.Backg
LOG.debug("JPS Caches registry key is not enabled");
return;
}
- if (!GitRepositoryUtil.isIntelliJRepository(project)) {
+ if (!CompilerCacheConfigurator.isServerUrlConfigured(project)) {
LOG.debug("Not an Intellij project, JPS Caches will not be available");
return;
}
@@ -43,10 +41,8 @@ public final class CompilerCacheStartupActivity implements StartupActivity.Backg
lineEndingsConfiguredCorrectly = false;
ATTENTION
.createNotification(JavaCompilerBundle.message("notification.title.git.crlf.config"),
- JavaCompilerBundle.message("notification.content.git.crlf.config"),
+ JavaCompilerBundle.message("notification.content.git.crlf.config", "git config --global core.autocrlf input"),
NotificationType.WARNING)
- .addAction(NotificationAction.createSimple(JavaCompilerBundle.message("notification.action.git.crlf.config"),
- () -> BrowserLauncher.getInstance().open("https://confluence.jetbrains.com/pages/viewpage.action?title=Git+Repository&spaceKey=IDEA")))
.notify(project);
}
}
diff --git a/java/compiler/impl/src/com/intellij/compiler/cache/client/CompilerCachesServerClient.java b/java/compiler/impl/src/com/intellij/compiler/cache/client/CompilerCachesServerClient.java
index 24f08f3daaba..d41073d92c58 100644
--- a/java/compiler/impl/src/com/intellij/compiler/cache/client/CompilerCachesServerClient.java
+++ b/java/compiler/impl/src/com/intellij/compiler/cache/client/CompilerCachesServerClient.java
@@ -1,7 +1,8 @@
package com.intellij.compiler.cache.client;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.StreamUtil;
@@ -13,7 +14,6 @@ import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
@@ -22,7 +22,7 @@ import java.util.zip.GZIPInputStream;
public final class CompilerCachesServerClient {
private static final Logger LOG = Logger.getInstance(CompilerCachesServerClient.class);
- private static final Type GSON_MAPPER = new TypeToken