View Javadoc

1   package com.atlassian.vcache.internal.core.metrics;
2   
3   import com.atlassian.json.marshal.Jsonable;
4   import com.atlassian.vcache.internal.JsonableFactory;
5   import com.atlassian.vcache.internal.RequestMetrics;
6   import com.google.gson.Gson;
7   import com.google.gson.GsonBuilder;
8   
9   /**
10   * Implementation of {@link JsonableFactory} that uses the Google Gson library.
11   *
12   * @since 1.0.0
13   */
14  public class GsonJsonableFactory implements JsonableFactory {
15      // Gson is multi-thread safe
16      private static final Gson GSON = new GsonBuilder().create();
17  
18      @Override
19      public Jsonable apply(final RequestMetrics requestMetrics) {
20          return writer -> writer.write(GSON.toJson(requestMetrics));
21      }
22  }