diff --git a/libraries/grpc-netty-shaded/BUILD.bazel b/libraries/grpc-netty-shaded/BUILD.bazel
index 6221db966c38..82694ced578a 100644
--- a/libraries/grpc-netty-shaded/BUILD.bazel
+++ b/libraries/grpc-netty-shaded/BUILD.bazel
@@ -9,12 +9,17 @@ jvm_resources(
jvm_library(
name = "grpc-netty-shaded",
+ module_name = "intellij.libraries.grpc.netty.shaded",
visibility = ["//visibility:public"],
- srcs = glob([], allow_empty = True),
- exports = ["@lib//:grpc-netty-shaded"],
- runtime_deps = [
- ":grpc-netty-shaded_resources",
+ srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True),
+ deps = [
"@lib//:grpc-netty-shaded",
- ]
+ "@lib//:kotlin-stdlib",
+ "//platform/util",
+ "//platform/core-api:core",
+ "//libraries/grpc",
+ ],
+ exports = ["@lib//:grpc-netty-shaded"],
+ runtime_deps = [":grpc-netty-shaded_resources"]
)
### auto-generated section `build intellij.libraries.grpc.netty.shaded` end
\ No newline at end of file
diff --git a/libraries/grpc-netty-shaded/intellij.libraries.grpc.netty.shaded.iml b/libraries/grpc-netty-shaded/intellij.libraries.grpc.netty.shaded.iml
index f8bf1e684985..4d83f9f70a52 100644
--- a/libraries/grpc-netty-shaded/intellij.libraries.grpc.netty.shaded.iml
+++ b/libraries/grpc-netty-shaded/intellij.libraries.grpc.netty.shaded.iml
@@ -4,9 +4,14 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/grpc-netty-shaded/src/com/intellij/libraries/grpc/netty/shaded/NettyChannelProviderRegistrationService.kt b/libraries/grpc-netty-shaded/src/com/intellij/libraries/grpc/netty/shaded/NettyChannelProviderRegistrationService.kt
new file mode 100644
index 000000000000..5e676855301c
--- /dev/null
+++ b/libraries/grpc-netty-shaded/src/com/intellij/libraries/grpc/netty/shaded/NettyChannelProviderRegistrationService.kt
@@ -0,0 +1,35 @@
+package com.intellij.libraries.grpc.netty.shaded
+
+import com.intellij.openapi.Disposable
+import com.intellij.openapi.components.Service
+import com.intellij.openapi.components.service
+import io.grpc.ManagedChannelRegistry
+import io.grpc.netty.shaded.io.grpc.netty.NettyChannelProvider
+import org.jetbrains.annotations.ApiStatus
+
+/**
+ * [ManagedChannelRegistry.getDefaultRegistry] has the ability to discover available [io.grpc.ManagedChannelProvider] subclasses.
+ * However, [ManagedChannelRegistry] uses a classloader that has no access to [NettyChannelProvider],
+ * because intellij.libraries.grpc module does not depend on intellij.libraries.grpc.netty.shaded,
+ * so automatic discovery fails.
+ */
+@Service(Service.Level.APP)
+@ApiStatus.Experimental
+class NettyChannelProviderRegistrationService : Disposable {
+ private val registry = ManagedChannelRegistry.getDefaultRegistry()
+ private val channelProvider = NettyChannelProvider()
+
+ init {
+ registry.register(channelProvider)
+ }
+
+ override fun dispose() {
+ registry.deregister(channelProvider)
+ }
+
+ companion object {
+ fun ensureChannelProviderRegistered() {
+ service()
+ }
+ }
+}
diff --git a/platform/execution-process-mediator/client/src/com/intellij/execution/process/mediator/client/launcher/ProcessMediatorConnection.kt b/platform/execution-process-mediator/client/src/com/intellij/execution/process/mediator/client/launcher/ProcessMediatorConnection.kt
index 5d1d3b1d16b2..95bce6ecc6a8 100644
--- a/platform/execution-process-mediator/client/src/com/intellij/execution/process/mediator/client/launcher/ProcessMediatorConnection.kt
+++ b/platform/execution-process-mediator/client/src/com/intellij/execution/process/mediator/client/launcher/ProcessMediatorConnection.kt
@@ -4,17 +4,13 @@ package com.intellij.execution.process.mediator.client.launcher
import com.intellij.execution.process.mediator.client.ProcessMediatorClient
import com.intellij.execution.process.mediator.common.DaemonClientCredentials
import com.intellij.execution.process.mediator.daemon.ProcessMediatorServerDaemon
-import com.intellij.openapi.Disposable
-import com.intellij.openapi.components.Service
-import com.intellij.openapi.components.service
+import com.intellij.libraries.grpc.netty.shaded.NettyChannelProviderRegistrationService
import com.intellij.util.io.MultiCloseable
import com.intellij.util.io.runClosingOnFailure
import io.grpc.ManagedChannel
import io.grpc.ManagedChannelBuilder
-import io.grpc.ManagedChannelRegistry
import io.grpc.inprocess.InProcessChannelBuilder
import io.grpc.inprocess.InProcessServerBuilder
-import io.grpc.netty.shaded.io.grpc.netty.NettyChannelProvider
import io.grpc.stub.MetadataUtils
import kotlinx.coroutines.CoroutineScope
import java.io.Closeable
@@ -80,30 +76,3 @@ private class ConnectionImpl(
) : ProcessMediatorConnection, Closeable, AutoCloseable by cleanup {
override fun toString(): String = "Connection(client=$client)"
}
-
-/**
- * [ManagedChannelRegistry.getDefaultRegistry] has the ability to discover available [io.grpc.ManagedChannelProvider] subclasses.
- * However, [ManagedChannelRegistry]
- * uses a classloader that has no access to [NettyChannelProvider],
- * because intellij.libraries.grpc module does not depend on intellij.libraries.grpc.netty.shaded,
- * so automatic discovery fails.
- */
-@Service(Service.Level.APP)
-private class NettyChannelProviderRegistrationService : Disposable {
- private val registry = ManagedChannelRegistry.getDefaultRegistry()
- private val channelProvider = NettyChannelProvider()
-
- init {
- registry.register(channelProvider)
- }
-
- override fun dispose() {
- registry.deregister(channelProvider)
- }
-
- companion object {
- fun ensureChannelProviderRegistered() {
- service()
- }
- }
-}
diff --git a/platform/platform-resources/src/META-INF/common-ide-modules.xml b/platform/platform-resources/src/META-INF/common-ide-modules.xml
index 8f0891028cf1..0c2d4ee5b1a9 100644
--- a/platform/platform-resources/src/META-INF/common-ide-modules.xml
+++ b/platform/platform-resources/src/META-INF/common-ide-modules.xml
@@ -56,6 +56,9 @@
+
+
+
diff --git a/platform/platform-resources/src/META-INF/elevation-modules.xml b/platform/platform-resources/src/META-INF/elevation-modules.xml
index 366f1fb29d81..67f67a91dd51 100644
--- a/platform/platform-resources/src/META-INF/elevation-modules.xml
+++ b/platform/platform-resources/src/META-INF/elevation-modules.xml
@@ -1,7 +1,5 @@
-
-
diff --git a/plugins/grazie/plugin-content.yaml b/plugins/grazie/plugin-content.yaml
index ea3b8b70bc90..4fc688a9458d 100644
--- a/plugins/grazie/plugin-content.yaml
+++ b/plugins/grazie/plugin-content.yaml
@@ -46,28 +46,6 @@
- name: intellij.grazie.properties
- name: intellij.grazie.xml
- name: intellij.grazie.yaml
-- name: lib/grpc-core.jar
- library: grpc-core
- files:
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-core/1/grpc-core-1.jar
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-api/1/grpc-api-1.jar
- - name: $MAVEN_REPOSITORY$/com/google/android/annotations/4/annotations-4.jar
- - name: $MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1/animal-sniffer-annotations-1.jar
- - name: $MAVEN_REPOSITORY$/io/perfmark/perfmark-api/0/perfmark-api-0.jar
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-context/1/grpc-context-1.jar
- reason: <- intellij.grazie.core
-- name: lib/grpc-protobuf.jar
- library: grpc-protobuf
- files:
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-protobuf/1/grpc-protobuf-1.jar
- - name: $MAVEN_REPOSITORY$/com/google/api/grpc/proto-google-common-protos/2/proto-google-common-protos-2.jar
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-protobuf-lite/1/grpc-protobuf-lite-1.jar
- reason: <- intellij.grazie.core
-- name: lib/grpc-stub.jar
- library: grpc-stub
- files:
- - name: $MAVEN_REPOSITORY$/io/grpc/grpc-stub/1/grpc-stub-1.jar
- reason: <- intellij.grazie.core
- name: lib/javax.measure-unit-api.jar
library: javax.measure:unit-api:1.0
module: intellij.grazie.core
diff --git a/plugins/grazie/resources/META-INF/plugin.xml b/plugins/grazie/resources/META-INF/plugin.xml
index 689ad883ae70..1409c1f4816f 100644
--- a/plugins/grazie/resources/META-INF/plugin.xml
+++ b/plugins/grazie/resources/META-INF/plugin.xml
@@ -28,6 +28,7 @@
+
diff --git a/plugins/grazie/src/BUILD.bazel b/plugins/grazie/src/BUILD.bazel
index b38aaba68ca4..539b847f88ef 100644
--- a/plugins/grazie/src/BUILD.bazel
+++ b/plugins/grazie/src/BUILD.bazel
@@ -73,6 +73,7 @@ jvm_library(
"//platform/util/coroutines",
"//platform/util/progress",
"//platform/util/text-matching",
+ "//libraries/grpc",
],
exports = [
"@lib//:grazie-core-org-jetbrains-intellij-deps-languagetool-languagetool-core",
@@ -86,9 +87,6 @@ jvm_library(
"@lib//:guava",
"@lib//:jetbrains-annotations",
"@lib//:commons-lang3",
- "@lib//:grpc-core",
- "@lib//:grpc-protobuf",
- "@lib//:grpc-stub",
]
)
### auto-generated section `build intellij.grazie.core` end
\ No newline at end of file
diff --git a/plugins/grazie/src/intellij.grazie.core.iml b/plugins/grazie/src/intellij.grazie.core.iml
index 6d8c727c897f..4ae7bf5925ab 100644
--- a/plugins/grazie/src/intellij.grazie.core.iml
+++ b/plugins/grazie/src/intellij.grazie.core.iml
@@ -407,10 +407,8 @@
-
-
-
+
\ No newline at end of file