1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.server.internal.api;
18
19 import static java.util.Objects.requireNonNull;
20
21 import java.util.concurrent.CompletableFuture;
22
23 import com.linecorp.armeria.server.annotation.JacksonRequestConverterFunction;
24 import com.linecorp.armeria.server.annotation.RequestConverter;
25 import com.linecorp.armeria.server.annotation.ResponseConverter;
26 import com.linecorp.centraldogma.server.command.Command;
27 import com.linecorp.centraldogma.server.command.CommandExecutor;
28 import com.linecorp.centraldogma.server.internal.api.converter.HttpApiRequestConverter;
29 import com.linecorp.centraldogma.server.internal.api.converter.HttpApiResponseConverter;
30
31
32
33
34 @RequestConverter(HttpApiRequestConverter.class)
35 @RequestConverter(JacksonRequestConverterFunction.class)
36
37 @ResponseConverter(HttpApiResponseConverter.class)
38 public class AbstractService {
39
40 private final CommandExecutor executor;
41
42 protected AbstractService(CommandExecutor executor) {
43 this.executor = requireNonNull(executor, "executor");
44 }
45
46 public final CommandExecutor executor() {
47 return executor;
48 }
49
50 public <T> CompletableFuture<T> execute(Command<T> command) {
51 return executor().execute(command);
52 }
53 }