@Override
  public boolean equals(@Nullable Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    PluginClassLoaderDef that = (PluginClassLoaderDef) o;
    return basePluginKey.equals(that.basePluginKey);
  }
@Test
  public void test_equals_and_hashCode() {
    PluginClassLoaderDef one = new PluginClassLoaderDef("one");
    PluginClassLoaderDef oneBis = new PluginClassLoaderDef("one");
    PluginClassLoaderDef two = new PluginClassLoaderDef("two");

    assertThat(one.equals(one)).isTrue();
    assertThat(one.equals(oneBis)).isTrue();
    assertThat(one)
      .hasSameHashCodeAs(one)
      .hasSameHashCodeAs(oneBis);

    assertThat(one.equals(two)).isFalse();
    assertThat(one.equals("one")).isFalse();
    assertThat(one.equals(null)).isFalse();
  }