@Override
  public void triggerFeatureUsed(@NotNull String featureId) {
    ProductivityFeaturesRegistry registry = ProductivityFeaturesRegistry.getInstance();
    FeatureDescriptor descriptor = registry == null ? null : registry.getFeatureDescriptor(featureId);
    if (descriptor == null) {
      // TODO: LOG.error("Feature '" + featureId +"' must be registered prior triggerFeatureUsed() is called");
      return;
    }

    descriptor.triggerUsed();

    Class<? extends ProductivityFeaturesProvider> provider = descriptor.getProvider();
    String id = provider == null || getPluginInfo(provider).isDevelopedByJetBrains() ? descriptor.getId() : "third.party";
    ProductivityUsageCollector.FEATURE_USED.log(id, StringUtil.notNullize(descriptor.getGroupId(), "unknown"),
                                                provider == null ? null : getPluginInfo(provider));

    ApplicationManager.getApplication().getMessageBus().syncPublisher(FeaturesRegistryListener.TOPIC).featureUsed(descriptor);
  }
@Override
  public void triggerFeatureUsed(@NotNull String featureId)