We pass `null` for the class name here:

https://github.com/elastic/elasticsearch/blob/f086dd18ddc705bf84a1ff99d35196ec2498fd52/server/src/main/java/org/elasticsearch/plugins/PluginDescriptor.java#L261

However the class name is mandatory for the transport protocol today:

https://github.com/elastic/elasticsearch/blob/f086dd18ddc705bf84a1ff99d35196ec2498fd52/server/src/main/java/org/elasticsearch/plugins/PluginDescriptor.java#L156

This prevents various APIs from working in a cluster with stable plugins installed.
server/src/test/java/org/elasticsearch/plugins/PluginsServiceTests.java
var providers = MockPluginsService.createExtensions(TestService.class, fooPlugin, e -> false);
        assertThat(providers, allOf(hasSize(1), everyItem(instanceOf(BarTestService.class))));
    }
    public void testDeprecatedPluginInterface() throws Exception {
        final Path home = createTempDir();
        final Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), home).build();
        final Path plugins = home.resolve("plugins");
        final Path plugin = plugins.resolve("deprecated-plugin");
        Files.createDirectories(plugin);
        PluginTestUtil.writeSimplePluginDescriptor(plugin, "deprecated-plugin", "p.DeprecatedPlugin");
        Path jar = plugin.resolve("impl.jar");
        JarUtils.createJarWithEntries(jar, Map.of("p/DeprecatedPlugin.class", InMemoryJavaCompiler.compile("p.DeprecatedPlugin", """
            package p;
            import org.elasticsearch.plugins.*;
            public class DeprecatedPlugin extends Plugin implements NetworkPlugin {}
            """)));
        var pluginService = newPluginsService(settings);
        try {
            assertWarnings(
                "Plugin class p.DeprecatedPlugin from plugin deprecated-plugin implements "
                    + "deprecated plugin interface NetworkPlugin. "
                    + "This plugin interface will be removed in a future release."
            );
        } finally {
            closePluginLoaders(pluginService);
        }
    }
    public void testDeprecatedPluginMethod() throws Exception {
        final Path home = createTempDir();
        final Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), home).build();