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/PluginsUtilsTests.java
)
        );
    }
    public void testStableIncompatibleElasticsearchVersion() throws Exception {
        PluginDescriptor info = getPluginDescriptorForVersion(Version.fromId(6000099), "1.8", true);
        IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> PluginsUtils.verifyCompatibility(info));
        assertThat(e.getMessage(), containsString("was built for Elasticsearch major version 6"));
    }
    public void testIncompatibleElasticsearchVersion() throws Exception {
        PluginDescriptor info = getPluginDescriptorForVersion(Version.fromId(6000099), "1.8", false);
        IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> PluginsUtils.verifyCompatibility(info));
        assertThat(e.getMessage(), containsString("was built for Elasticsearch version 6.0.0"));
    }
    public void testIncompatibleJavaVersion() throws Exception {
        PluginDescriptor info = getPluginDescriptorForVersion(Version.CURRENT, "1000", false);
        IllegalStateException e = expectThrows(IllegalStateException.class, () -> PluginsUtils.verifyCompatibility(info));
        assertThat(e.getMessage(), containsString("my_plugin requires Java"));
    }
    public void testFindPluginDirs() throws IOException {
        final Path plugins = createTempDir();
        final Path fake = plugins.resolve("fake");
        PluginTestUtil.writePluginProperties(
            fake,
            "description",
            "description",
            "name",
            "fake",
            "version",
            "1.0.0",
            "elasticsearch.version",