Search in sources :

Example 1 with BeanProvider

use of com.google.gerrit.server.DynamicOptions.BeanProvider in project gerrit by GerritCodeReview.

the class PluginDefinedAttributesFactories method tryCreate.

private static void tryCreate(Collection<ChangeData> cds, BeanProvider beanProvider, String plugin, ChangePluginDefinedInfoFactory infoFactory, ImmutableListMultimap.Builder<Change.Id, PluginDefinedInfo> pluginInfosByChangeBuilder) {
    try {
        infoFactory.createPluginDefinedInfos(cds, beanProvider, plugin).forEach((id, pdi) -> {
            if (pdi != null) {
                pdi.name = plugin;
                pluginInfosByChangeBuilder.put(id, pdi);
            }
        });
    } catch (RuntimeException ex) {
        /* Propagate runtime exceptions as structured API data types so that queries don't fail. */
        logger.atWarning().atMostEvery(1, MINUTES).withCause(ex).log("error populating attribute on changes from plugin %s", plugin);
        PluginDefinedInfo errorInfo = new PluginDefinedInfo();
        errorInfo.name = plugin;
        errorInfo.message = "Something went wrong in plugin: " + plugin;
        cds.forEach(cd -> pluginInfosByChangeBuilder.put(cd.getId(), errorInfo));
    }
}
Also used : ChangeData(com.google.gerrit.server.query.change.ChangeData) Stream(java.util.stream.Stream) ImmutableListMultimap(com.google.common.collect.ImmutableListMultimap) Collection(java.util.Collection) MINUTES(java.util.concurrent.TimeUnit.MINUTES) Change(com.google.gerrit.entities.Change) FluentLogger(com.google.common.flogger.FluentLogger) Extension(com.google.gerrit.extensions.registration.Extension) PluginDefinedInfo(com.google.gerrit.extensions.common.PluginDefinedInfo) BeanProvider(com.google.gerrit.server.DynamicOptions.BeanProvider) PluginDefinedInfo(com.google.gerrit.extensions.common.PluginDefinedInfo)

Aggregations

ImmutableListMultimap (com.google.common.collect.ImmutableListMultimap)1 FluentLogger (com.google.common.flogger.FluentLogger)1 Change (com.google.gerrit.entities.Change)1 PluginDefinedInfo (com.google.gerrit.extensions.common.PluginDefinedInfo)1 Extension (com.google.gerrit.extensions.registration.Extension)1 BeanProvider (com.google.gerrit.server.DynamicOptions.BeanProvider)1 ChangeData (com.google.gerrit.server.query.change.ChangeData)1 Collection (java.util.Collection)1 MINUTES (java.util.concurrent.TimeUnit.MINUTES)1 Stream (java.util.stream.Stream)1