1
2
3
4
5
6
7
8
9
10
11
12
13
14 package com.addthis.codec.utils;
15
16 import java.util.concurrent.ExecutorService;
17 import java.util.concurrent.ScheduledExecutorService;
18 import java.util.concurrent.ThreadFactory;
19
20 import com.google.common.annotations.Beta;
21 import com.google.common.util.concurrent.ThreadFactoryBuilder;
22
23 import com.fasterxml.jackson.core.Version;
24 import com.fasterxml.jackson.databind.Module;
25 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
26 import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
27
28
29
30
31 @Beta
32 public class ExecutorsModule extends Module {
33
34 @Override public void setupModule(SetupContext context) {
35 context.setMixInAnnotations(ThreadFactory.class, ThreadFactoryMixer.class);
36 context.setMixInAnnotations(ThreadFactoryBuilder.class, ThreadFactoryBuilderMixer.class);
37 context.setMixInAnnotations(ExecutorService.class, ExecutorServiceBuilder.class);
38 context.setMixInAnnotations(ScheduledExecutorService.class, ScheduledExecutorServiceBuilder.class);
39 }
40
41 @Override public String getModuleName() {
42 return "jdk-executors";
43 }
44
45 @Override public Version version() {
46 return Version.unknownVersion();
47 }
48
49 @JsonDeserialize(builder = ThreadFactoryBuilder.class)
50 private static class ThreadFactoryMixer {}
51
52 @JsonPOJOBuilder(withPrefix = "set")
53 private static class ThreadFactoryBuilderMixer {}
54 }