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